[U-Boot] [PATCH v2] imximage: Remove overwriting of flash_offset

Dirk Behme dirk.behme at de.bosch.com
Thu Feb 23 15:44:11 CET 2012


On 23.02.2012 14:10, Stefano Babic wrote:
> On 23/02/2012 09:50, Dirk Behme wrote:
>> The flash header supports different flash offsets for different
>> boot devices. E.g. parallel NOR or OneNAND use a different offset
>> than FLASH_OFFSET_STANDARD (== 0x400).
>>
>> The flash offset is correctly read from the configuration in
>> parse_cfg_cmd(). But is then overwritten wrongly in set_imx_hdr_v1/2().
>>
>> Fix this by removing this overwriting. Use the flash offset
>> correctly read from the configuration, instead.
>>
>> If there is no flash_offset read from the configuration file, i.e.
>> the BOOT_FROM tag is missing, exit with an error message.
>>
>> Signed-off-by: Dirk Behme <dirk.behme at de.bosch.com>
>> CC: Jason Liu <liu.h.jason at gmail.com>
>> CC: Stefano Babic <sbabic at denx.de>
>> ---
> 
> Tested on ima-mx53 with MX53 (header V2), booting from NOR.
> 
> Tested-by: Stefano Babic <sbabic at denx.de>
> 
> 
> Dirk,
> 
> apart this patch that fixes in any case a wrong offset in header, I have
> investigated in more detail this issue. The bug sets a wrong value in
> the boot_data.start field that inform the processor which is the start
> address of the image to be copied into the RAM. All other fields are
> still correct.
> 
> However, if we boot from NOR we have a XIP device and we do not need
> this first copy into the RAM. We could skip it if we set
> CONFIG_SYS_TEXT_BASE to point to a region in the NOR flash, as it is
> usually done when booting from NOR (see for example PowerPc boards).
> I understand that this is the reason why my board has always booted,
> while yours not. Is it right ?

Ah, XIP. Yes, this does make sense! :)

> Where do you set CONFIG_SYS_TEXT_BASE ?

To main memory, i.e. no XIP.

We just took the configuration as it is in mainline and normally is used 
to start from SD card: Initialize the main memory using the DCD data. 
And then copy the image to main memory, e.g. 0x17800000, and jump to it. 
And this jump fails if boot_data.start is wrong.

Many thanks for this update!

Best regards

Dirk


More information about the U-Boot mailing list