recommended method of netbooting kernel/dtb in u-boot?
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]
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=
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
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
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