dm: core: Add an option to support SPL in read-only memory
Some systems (e.g. x86 APL) run SPL from read-only memory. The device instances created by dtoc are therefore not writeable. To make things work we would need to copy the devices to read/write memory. To avoid this, add an option to use a separate runtime struct for devices, just as is done for drivers. This can be used to hold information that changes at runtime, avoiding the need for a copy. Also add a Kconfig option for read-only SPL, which selects this feature. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
22
dts/Kconfig
22
dts/Kconfig
@@ -380,6 +380,17 @@ config SPL_OF_PLATDATA_NO_BIND
|
||||
some code space in U-Boot. This can be disabled if binding is needed,
|
||||
at the code of some code size increase.
|
||||
|
||||
config SPL_OF_PLATDATA_RT
|
||||
bool "Use a separate struct for device runtime data"
|
||||
depends on SPL_OF_PLATDATA_INST
|
||||
default y
|
||||
help
|
||||
For systems running SPL from read-only memory it is convenient to
|
||||
separate out the runtime information, so that the devices don't need
|
||||
to be copied before being used. This moves the read-write parts of
|
||||
struct udevice (at present just the flags) into a separate struct,
|
||||
which is allocated at runtime.
|
||||
|
||||
endif
|
||||
|
||||
config TPL_OF_PLATDATA
|
||||
@@ -429,6 +440,17 @@ config TPL_OF_PLATDATA_NO_BIND
|
||||
some code space in U-Boot. This can be disabled if binding is needed,
|
||||
at the code of some code size increase.
|
||||
|
||||
config TPL_OF_PLATDATA_RT
|
||||
bool "Use a separate struct for device runtime data"
|
||||
depends on TPL_OF_PLATDATA_INST
|
||||
default y
|
||||
help
|
||||
For systems running TPL from read-only memory it is convenient to
|
||||
separate out the runtime information, so that the devices don't need
|
||||
to be copied before being used. This moves the read-write parts of
|
||||
struct udevice (at present just the flags) into a separate struct,
|
||||
which is allocated at runtime.
|
||||
|
||||
endif
|
||||
|
||||
endmenu
|
||||
|
||||
Reference in New Issue
Block a user