
On Tue, 2015-08-25 at 19:34 -0600, Stephen Warren wrote:
On 08/21/2015 03:47 AM, Guillaume Gardet wrote:
Le 19/08/2015 05:14, Stephen Warren a écrit :
On 08/18/2015 08:03 AM, Guillaume GARDET wrote:
Add CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG support to set 'board_rev' and 'board_name' envs.
That states what the patch does rather than why its useful to do it. Can you expand on why it's useful to set these variables?
Using boot scripts you may need to get the board version / revision infos, for example to select the right DTB since u-boot DTB names and kernel DTB files do not match.
The fix here isn't to craft all kinds of complex scripts in U-Boot based on a slew of extra variables. Rather, the set of DT files in the kernel should be expanded so that there is one DT per board design, i.e. so the filenames in the kernel match the filenames that U-Boot expects.
You speak of "the kernel" as if there were only one. FreeBSD also uses dtb files, and we often have to do local patches to u-boot source to make it emit identifying info such as soc type/model/rev and board rev so that we can choose the right dtb file.
The way we handle dtb files is nothing like what linux does, but we use the same dts source and dtb files as linux. In some cases we need u-boot to load those files, in other cases we just need some u-boot script code to set fdt_file to the right name, then our next-stage kernel loader handles the actual loading of the file. Who does the loading isn't as important as being able to choose the right file to load, given an sdcard image that contains a single kernel that works for a variety of related boards, but multiple dtb files, one per board.
-- Ian