[U-Boot] [PATCH] jetson-tk1: Set fdtfile environment variable

Alexander Graf
2016-04-13T15:51:53Z

On 04/13/2016 05:31 PM, Stephen Warren wrote:
> On 04/13/2016 06:55 AM, Andreas F?rber wrote:
>> Am 13.04.2016 um 14:48 schrieb Andreas F?rber:
>>> The 4.5.0 kernel cannot cope with U-Boot's internal device tree, and
>>> the
>>> distro boot commands are looking for $fdtfile, so provide it to avoid
>>> having users supply a dumb boot.scr doing a setenv fdtfile ...; boot,
>>> defeating the purpose of generic EFI boot.
>>>
>>> Cc: Stephen Warren <swarren@nvidia.com>
>>> Cc: Alexander Graf <agraf@suse.de>
>>> Signed-off-by: Andreas F?rber <afaerber@suse.de>
>>> ---
>>> include/configs/jetson-tk1.h | 4 ++++
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/include/configs/jetson-tk1.h
>>> b/include/configs/jetson-tk1.h
>>> index 59dbb20..82a4be4 100644
>>> --- a/include/configs/jetson-tk1.h
>>> +++ b/include/configs/jetson-tk1.h
>>> @@ -63,6 +63,10 @@
>>> /* General networking support */
>>> #define CONFIG_CMD_DHCP
>>>
>>> +#define BOARD_EXTRA_ENV_SETTINGS \
>>> + "fdtfile=tegra124-jetson-tk1.dtb\0" \
>>> + ""
>>
>> Is there any more intelligent solution than doing this for each board?
>
> Yes, the distro boot scripts shouldn't be using $fdtfile
> unconditionally since it's not guaranteed to be set. The model is that
> boot scripts determine the FDT filename, and $fdtfile is an optional
> override.

The point of all of the efi magic is that we can completely get rid of
boot scripts. Boards use the distro scripts, everything else gets
implicitly detected and executed. The way other boards deal with common
code mapping into separate boards is to either implement a "findfdt"
scriptlet or directly write the fdtfile variable (e.g. beaglebone) in
board init (e.g. rpi).

> It looks like the hard-coded use of $fdtfile was added into the EFI
> path, which I didn't get to review, and which shouldn't be enabled by
> default but unfortunately is.

s/un// :)

Just imagine a world where people don't have to worry about bootloaders
anymore. Things would "just work". You plug in a usb stick, it comes up,
boots Linux, everthing goes without anyone touching boot scripts,
downloading board specific files, etc. You could get a random
distribution from a common download page from somewhere and just run it.

Well, you can also just look at any random x86 system. They get at least
that part pretty right these days.

Alex