[U-Boot] u-boot - raspberry pi

dh at synoia.com dh at synoia.com
Sat Aug 27 18:45:22 CEST 2016


Thanks for the response. We like what you do with u-boot, we believe it is a better solution.

We've reviewed the PI netboot project and have come to the conclusion that even with modifications it will not provide the flexibility of u-boot, due to the proprietary nature of the PI firmware.

With the current PI implementation we have to configure the hardware on each and every PI, and cannot ship them and the sd card to a customer and have them installed. There is the extra step of configuring the hardware.
After configuring the hardware a customer has the potential of having two identical devices which work differently, non-netboot and netboot, with no visible way to tell the difference.
Back to what it would take for u-boot to fill this need?
The u-boot portion of the kernel parms needs to be appended to the firmware portion of the kernel pams which are in the directory: 

/proc/device-tree/chosen/bootargs
 where device-tree is a link to
/sys/firmware/devicetree/base
it appears the parsing requirement may be limited, although I do not know how these files are written, by firmware or by the kernel.
How can we get your help?
Thanks

Duncan Hare

714 931 7952

      From: Stephen Warren <swarren at wwwdotorg.org>
 To: Simon Glass <sjg at chromium.org>; dh at synoia.com 
Cc: "u-boot at lists.denx.de" <u-boot at lists.denx.de>; Stephen Warren <swarren at nvidia.com>
 Sent: Friday, August 26, 2016 9:00 AM
 Subject: Re: [U-Boot] u-boot - raspberry pi
   
On 08/26/2016 08:39 AM, Simon Glass wrote:
> +Stephen
>
> On 25 August 2016 at 22:12,  <dh at synoia.com> wrote:
>>  We have u-boot working on a raspberry pi, but need to append our kernel
>>  parms to those built by the firmware.
>>
>> is there a version of u-boot for the pi 3, with this support, and some doc
>> (the variable name for the firmware built kernel parms), a github link would
>> be perfect.
>>
>> We have an order of 400 PIs for a hospital in S America, and want to supply
>> net boot, including kernels. Duncan Hare

The current port of U-Boot to the Pi is intended to replace the 
operations that the binary FW performs rather than add to them. As such, 
there's currently no easy way to do what you need with U-Boot.

Two potential options exist:

1) Update U-Boot so that it saves the DTB pointer the binary FW passes 
at boot, parses this DTB, and exposes various properties (its address, 
the command-line embodied within it) as environment variables. U-Boot 
scripts could then use those environment variables as they see fit (e.g. 
ignore them to be compatible with current U-Boot behaviour, or set 
$bootargs by appending the extracted cmdline to whatever you want to add).

2) The binary FW recently grew a network boot feature itself. Perhaps 
this will fulfil your network boot needs by itself, so you don't need to 
use U-Boot.

> https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/net.md

I haven't tried this yet, but it sounds good.


   


More information about the U-Boot mailing list