Skip to contentSkip to conversation

recommended method of netbooting kernel/dtb in u-boot?

DISCUSSION Chris Friesen 3 participants 5 messages Apr 11, 2013

lore
Share & tools
lore
#0 lore raw

Hi all,

We've got a powerpc system that uses u-boot. In our environment on bootup u-boot does a DHCP to get networking info, then uses TFTP to get the kernel, which then does DHCP again and NFS-mounts the initial root filesystem.

What's the standard practice for this sort of thing when using device tree blobs? Do most people use multi-file images or do they TFTP scripts to load and execute separate kernel/dtb files?

For multi-part images is there an in-kernel way of generating a file containing a kernel and dtb combined? I saw a patch proposed in 2008 to add a uImage.<dt> build target but it was shot down because it used the legacy multi-file format. Is there an equivalent build target that uses the FIT format?

Chris

Signature · 8 lines
Chris Friesen
Software Designer

500 Palladium Drive, Suite 2100
Ottawa, Ontario K2N 1C2, Canada
www.genband.com
office:+1.343.883.2717
[email protected]
#1 lore raw
Quoted 4 lines · Chris Friesen

=20
Hi all,
=20
We've got a powerpc system that uses u-boot. In our environment on =

bootup u-boot does a DHCP to get networking info, then uses TFTP to get = the kernel, which then does DHCP again and NFS-mounts the initial root = filesystem.

Quoted 2 lines

=20
What's the standard practice for this sort of thing when using device =

tree blobs? Do most people use multi-file images or do they TFTP = scripts to load and execute separate kernel/dtb files?

Quoted 2 lines

=20
For multi-part images is there an in-kernel way of generating a file =

containing a kernel and dtb combined? I saw a patch proposed in 2008 to = add a uImage.<dt> build target but it was shot down because it used the = legacy multi-file format. Is there an equivalent build target that uses = the FIT format?

We've normally just done multiple tftp fetches and one grabs dtb and one = grabs kernel.

- k=

#2 lore raw
Quoted 11 lines · Kumar Gala
Quoted 8 lines · Chris Friesen

Hi all,

We've got a powerpc system that uses u-boot. In our environment on bootup u-boot does a DHCP to get networking info, then uses TFTP to get the kernel, which then does DHCP again and NFS-mounts the initial root filesystem.

Quoted 6 lines
Quoted 3 lines

What's the standard practice for this sort of thing when using device tree blobs? Do most people use multi-file images or do they TFTP scripts to load and execute separate kernel/dtb files?

We've normally just done multiple tftp fetches and one grabs dtb and one grabs kernel.

Do you hardcode the path to the file in the firmware? Or do you upload a script that knows the path to the file?

In our case the path to the boot file(s) depends on which slot the card being booted has been inserted in. The DHCP server knows what the path is, so it can set dhcpd.conf appropriately, but we need to get that information to the firmware on the card being booted.

Chris

#3 lore raw
Quoted 19 lines · Chris Friesen
Quoted 11 lines · Kumar Gala
Quoted 8 lines · Chris Friesen

Hi all,

We've got a powerpc system that uses u-boot. In our environment on bootup u-boot does a DHCP to get networking info, then uses TFTP to get the kernel, which then does DHCP again and NFS-mounts the initial root filesystem.

Quoted 6 lines
Quoted 3 lines

What's the standard practice for this sort of thing when using device tree blobs? Do most people use multi-file images or do they TFTP scripts to load and execute separate kernel/dtb files?

We've normally just done multiple tftp fetches and one grabs dtb and one grabs kernel.

Quoted 8 lines

Do you hardcode the path to the file in the firmware? Or do you upload a script that knows the path to the file?

In our case the path to the boot file(s) depends on which slot the card being booted has been inserted in. The DHCP server knows what the path is, so it can set dhcpd.conf appropriately, but we need to get that information to the firmware on the card being booted.

Hello Chris,

I use a hardware setup which sounds similar to yours. The DHCP server controls which file is sent to each card.

I use the FIT image format to combine a kernel, dtb, and initrd in one package. Then the U-Boot command "dhcp $address" sets up the network and tftp's the filename sent by the DHCP server. You don't need to invoke the U-Boot command "tftp" if you only have one image. "dhcp" is enough.

I used the U-Boot doc/uImage.FIT/*.its examples to get started, and wrote my own custom .its file for my board. I don't use anything other than the vmlinux.bin.gz provided by the kernel build.

Hope it helps,
Ira

#4 lore raw
Quoted 11 lines · Ira W. Snyder

I use a hardware setup which sounds similar to yours. The DHCP server controls which file is sent to each card.

I use the FIT image format to combine a kernel, dtb, and initrd in one package.

<snip>

I used the U-Boot doc/uImage.FIT/*.its examples to get started, and wrote my own custom .its file for my board. I don't use anything other than the vmlinux.bin.gz provided by the kernel build.

Okay, that's a good data point, thanks.

Chris