
Hi Bin,
-----Original Message----- From: U-Boot [mailto:u-boot-bounces@lists.denx.de] On Behalf Of Bin Meng Sent: Tuesday, July 3, 2018 8:11 PM To: Prabhakar Kushwaha prabhakar.kushwaha@nxp.com Cc: u-boot@lists.denx.de Subject: Re: [U-Boot] Support of device-tree for PowerPC platform: Query
Hi Prabhakar,
On Mon, Jul 2, 2018 at 11:27 PM, Prabhakar Kushwaha prabhakar.kushwaha@nxp.com wrote:
Dear Bin,
Coming back to x86 example.
-----Original Message----- From: Bin Meng [mailto:bmeng.cn@gmail.com] Sent: Friday, June 29, 2018 7:03 AM To: York Sun york.sun@nxp.com Cc: Simon Glass sjg@chromium.org; Prabhakar Kushwaha prabhakar.kushwaha@nxp.com; u-boot@lists.denx.de Subject: Re: [U-Boot] Support of device-tree for PowerPC platform: Query
Hi York,
On Thu, Jun 28, 2018 at 11:32 PM, York Sun york.sun@nxp.com wrote:
On 06/27/2018 10:53 PM, Bin Meng wrote:
<snip> > >> Can the DT perhaps go before U-Boot in the flash? We would need a >> way to find it though. >> > > I don't see any issue that DT go after U-Boot in the flash. x86 > does this way, and its reset vector is also the last address of flash. >
Big issue. e500 runs from the last address of the flash. We cannot put DT after U-Boot.
Looks you did not get it. I know e500 reset vector is the last 4 bytes below
4G.
This is similar to x86. DTB can be put after the u-boot image without reset vector. You may check how x86 does this.
I tried to search thing for x86 but did not succeed ☹
You can test x86 build easily with QEMU.
$ make qemu-x86_defconfig $ make V=1
This way you can see how u-boot.rom image is built.
I request you to help me with sample code and boot flow. I will try to understand and see how it can help PowerPC.
Please see the sample build flow below:
- objcopy --gap-fill=0xff -O binary -R .start16 -R .resetvec u-boot u-boot-
nodtb.bin
.start16 and .resetvec is the x86 boot vector. This is similar to PPC BookE's reset vector. These two sections are removed to generate a new u-boot-nodtb binary.
- cat arch/x86/dts/qemu-x86_i440fx.dtb > dts/dt.dtb cat u-boot-nodtb.bin dts/dt.dtb > u-boot-dtb.bin
Append dtb to the end of the u-boot-nodtb binary and get a new u-boot-dtb binary.
- cp dts/dt.dtb u-boot.dtb objcopy --gap-fill=0xff -O binary -j .start16 -j .resetvec u-boot u-boot-x86-
16bit.bin
Create a binary which contains the reset vector.
- ./tools/binman/binman -d u-boot.dtb -O . -I . -I
./board/emulation/qemu-x86 u-boot-x86-16bit.bin
Use binman to assemble the final u-boot.rom image.
Wouldn't it be similar to CONFIG_OF_EMBED as dtb is embedded in final binary(before start and resetvec sections)?
Thanks, Jagdish