diff options
| author | Simon Glass <sjg@chromium.org> | 2011-10-24 19:15:34 +0000 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2011-10-26 21:40:16 +0200 | 
| commit | eea63e05d0b7f54e7aa39725015483972c71cb3c (patch) | |
| tree | 6efe7cc0f7dc4eea53b04fc1ac02e35b552af8d4 | |
| parent | f5437ad141e13ff03dccb24707e8100d2b0295fd (diff) | |
| download | olio-uboot-2014.01-eea63e05d0b7f54e7aa39725015483972c71cb3c.tar.xz olio-uboot-2014.01-eea63e05d0b7f54e7aa39725015483972c71cb3c.zip | |
fdt: ARM: Add fdtcontroladdr to set device tree address in environment
This adds support for a new environment variable called 'fdtcontroladdr'. If
defined, the hex address is used as the address of the control fdt for U-Boot.
Note: I have not changed CONFIG_PRAM section as I already have an
outstanding patch on that.
Signed-off-by: Simon Glass <sjg@chromium.org>
| -rw-r--r-- | README | 4 | ||||
| -rw-r--r-- | arch/arm/lib/board.c | 3 | ||||
| -rw-r--r-- | doc/README.fdt-control | 12 | 
3 files changed, 19 insertions, 0 deletions
| @@ -3499,6 +3499,10 @@ List of environment variables (most likely not complete):  		  add the information it needs into it, and the memory  		  must be accessible by the kernel. +  fdtcontroladdr- if set this is the address of the control flattened +		  device tree used by U-Boot when CONFIG_OF_CONTROL is +		  defined. +    i2cfast	- (PPC405GP|PPC405EP only)  		  if set to 'y' configures Linux I2C driver for fast  		  mode (400kHZ). This environment variable is used in diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c index bd6d4e319..bae289237 100644 --- a/arch/arm/lib/board.c +++ b/arch/arm/lib/board.c @@ -286,6 +286,9 @@ void board_init_f(ulong bootflag)  	/* FDT is at end of image */  	gd->fdt_blob = (void *)(_end_ofs + _TEXT_BASE);  #endif +	/* Allow the early environment to override the fdt address */ +	gd->fdt_blob = (void *)getenv_ulong("fdtcontroladdr", 16, +						(uintptr_t)gd->fdt_blob);  	for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {  		if ((*init_fnc_ptr)() != 0) { diff --git a/doc/README.fdt-control b/doc/README.fdt-control index 3f8bb5a67..85bda0350 100644 --- a/doc/README.fdt-control +++ b/doc/README.fdt-control @@ -144,6 +144,18 @@ and then flash image.bin onto your board.  You cannot use both of these options at the same time. +If you wish to put the fdt at a different address in memory, you can +define the "fdtcontroladdr" environment variable. This is the hex +address of the fdt binary blob, and will override either of the options. +Be aware that this environment variable is checked prior to relocation, +when only the compiled-in environment is available. Therefore it is not +possible to define this variable in the saved SPI/NAND flash +environment, for example (it will be ignored). + +To use this, put something like this in your board header file: + +#define CONFIG_EXTRA_ENV_SETTINGS	"fdtcontroladdr=10000\0" +  Limitations  ----------- |