public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] bootm command: is there any load address limitation for fdt?
@ 2008-12-10 23:00 Richard Retanubun
  2008-12-11  0:20 ` Wolfgang Denk
  0 siblings, 1 reply; 4+ messages in thread
From: Richard Retanubun @ 2008-12-10 23:00 UTC (permalink / raw)
  To: u-boot

Hi,

I am using u-boot version 2008.10 + git commit 13d36ec849785453953d00220b2c7dc66644a3c2

The board is a custom MPC8360E, similar to MPC8360EMDS from freescale.

My DDR-SDRAM is at address 0x0 - 0x1FFFFFFF

I am trying to limit the amount of memory needed to load and boot a linux kernel (2.6.26)

to do this I loaded my fdt at address 0x20_0000 and uImage at 0x_30_0000

When I run bootm, I both the kernel and fdt passed their checksum tests, and then I got this error.

ERROR: image is not a fdt - must RESET the board to recover.

However, if I loaded my fdt at address 0x40_0000 and uImage at 0x50_0000, bootm works fine.

Is there a reason why fdt must be loaded at a specific offset from the start of RAM?

Thank you for all your time

- Richard Retanubun.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] bootm command: is there any load address limitation for fdt?
  2008-12-10 23:00 [U-Boot] bootm command: is there any load address limitation for fdt? Richard Retanubun
@ 2008-12-11  0:20 ` Wolfgang Denk
  2008-12-11 12:04   ` Jerry Van Baren
  0 siblings, 1 reply; 4+ messages in thread
From: Wolfgang Denk @ 2008-12-11  0:20 UTC (permalink / raw)
  To: u-boot

Dear Richard Retanubun,

In message <49404A1C.1070801@RuggedCom.com> you wrote:
> 
> I am trying to limit the amount of memory needed to load and boot a linux kernel (2.6.26)
> to do this I loaded my fdt at address 0x20_0000 and uImage at 0x_30_0000
> 
> When I run bootm, I both the kernel and fdt passed their checksum tests, and then I got this error.
> ERROR: image is not a fdt - must RESET the board to recover.

...so the uncompressed Linux kernel image was written on top of your
FDT image, corrupting it.

> However, if I loaded my fdt at address 0x40_0000 and uImage at 0x50_0000, bootm works fine.

Makes sense.

> Is there a reason why fdt must be loaded at a specific offset from the start of RAM?

Yes, there is - you need free space to load  the  uncompressed  Linux
kernel to low memory.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Dealing with failure is easy: work hard to improve. Success  is  also
easy  to  handle:  you've  solved  the  wrong  problem.  Work hard to
improve.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] bootm command: is there any load address limitation for fdt?
  2008-12-11  0:20 ` Wolfgang Denk
@ 2008-12-11 12:04   ` Jerry Van Baren
  2008-12-11 14:36     ` Richard Retanubun
  0 siblings, 1 reply; 4+ messages in thread
From: Jerry Van Baren @ 2008-12-11 12:04 UTC (permalink / raw)
  To: u-boot

Wolfgang Denk wrote:
> Dear Richard Retanubun,
> 
> In message <49404A1C.1070801@RuggedCom.com> you wrote:
>> I am trying to limit the amount of memory needed to load and boot a linux kernel (2.6.26)
>> to do this I loaded my fdt at address 0x20_0000 and uImage at 0x_30_0000

FWIIW, your FDT blob should be a whole lot less than 1MB, like 4K-16K. 
I've taken to loading it 0x8000 (32K) before my linux image.

[snip Wolfgang's diagnosis of the overwrite problem]

Best regards,
gvb

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] bootm command: is there any load address limitation for fdt?
  2008-12-11 12:04   ` Jerry Van Baren
@ 2008-12-11 14:36     ` Richard Retanubun
  0 siblings, 0 replies; 4+ messages in thread
From: Richard Retanubun @ 2008-12-11 14:36 UTC (permalink / raw)
  To: u-boot

Jerry Van Baren wrote:

> Wolfgang Denk wrote:
>> Dear Richard Retanubun,
>>
>> In message <49404A1C.1070801@RuggedCom.com> you wrote:
>>> I am trying to limit the amount of memory needed to load and boot a linux kernel (2.6.26)
>>> to do this I loaded my fdt at address 0x20_0000 and uImage at 0x_30_0000
>
> FWIIW, your FDT blob should be a whole lot less than 1MB, like 4K-16K. 
> I've taken to loading it 0x8000 (32K) before my linux image.
>
> [snip Wolfgang's diagnosis of the overwrite problem]
Dear Wolfgang and Jerry,

D'oh! I forgot that my uImage is compressed. Thank you for the prompt diagnosis.

My FDT blob is a whole lot less than 1MB, thanks for the 32K recommendation.

- Richard Retanubun.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-12-11 14:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-10 23:00 [U-Boot] bootm command: is there any load address limitation for fdt? Richard Retanubun
2008-12-11  0:20 ` Wolfgang Denk
2008-12-11 12:04   ` Jerry Van Baren
2008-12-11 14:36     ` Richard Retanubun

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox