How should I set load_address for fdt in the .its file...

Chan Kim ckim at etri.re.kr
Mon Jan 3 10:09:37 CET 2022


Hello all,

For my question below, I later found I didn't load enough bytes for the FIT
image (that's why it could find the configuration node).
Now because our FPGA board has only 8MB fake RAM for now, I loaded FIT
(about 5.7MB. containing kernel Image, fdt and initramfs.cpio.gz) to
0x8000_0000 (start of fake RAM ). I'm using 'boot from RAM' method(using
CONFIG_SPL_RAM_DEVICE, CONFIG_SPL_OS_BOOT).
The spl tried to copy the kernel to another location, so I skipped the
kernel memcpy to use the kernel image as is inside the FIT image.
And I made the fdt to be copied to a location above FIT image. Now I see
'Jumping to Linux' message.
I have three questions here..(sorry for asking too many questions at once)

1. I wish linux could start with the kernel image inside FIT as is. But the
start address of the kernel image is 0x800000bc, a weird address, and I
guess there was a certain requirement for the kernel image alignment (like
16KB?). So can this(using kernel image as in the FIT image, not aligned
nicely to 4KB) work?
2. In my spl_image_info struct, the 'void *arg' value is set to NULL. How
should I set the value?
(I have already CONFIG_BOOT_ARGS=y and CONFIG_BOOTARGS has values for
passing the console and earlycon, but I don't know how to fill the
spl_image_info's arg value)
3. Another question is, in this method, can linux recognize the
initramfs.cpio.gz file? (I guessed so because using qemu, it worked)

Any comment will be appreciated.
Happy new year!

Chan Kim

> -----Original Message-----
> From: U-Boot <u-boot-bounces at lists.denx.de> On Behalf Of ckim at etri.re.kr
> Sent: Thursday, December 23, 2021 6:49 PM
> To: 'U-Boot Mailing List' <u-boot at lists.denx.de>
> Subject: How should I set load_address for fdt in the .its file...
> 
> Hello all,
> 
> I saw https://www.thegoodpenguin.co.uk/blog/u-boot-fit-image-overview/ and
> used it to make .itb file (FIT image).
> 
> (see the its sample right below the line saying : Let's try this out by
> creating an image tree source file (.its): )
> 
> I was doing the experiment and found the load address of fdt was set wrong
> and changed it to the next address after the linux kernel (but 8 byte
> aligned).
> 
> But the SPL program complains it can't find the 'configurations' node. So
> I'm curious about how I should set the address.
> 
> But I'm not sure how to set the 'load_address' and 'entry_address' for
fdt.
> Should I set it so that fdt is just placed some place above the linux
> Image?
> 
> And why doesn't initrd image node have those 'load_address' and
> 'entry_address'?
> 
> Thanks for reading.
> 
> Chan Kim
> 
> 
> 
> 
> 






More information about the U-Boot mailing list