[U-Boot] [PATCH] sunxi: use CONFIG_DEFAULT_FDT_FILE everywhere
klaus.goger at theobroma-systems.com
klaus.goger at theobroma-systems.com
Fri Jun 1 02:45:53 UTC 2018
> On 01.06.2018, at 02:59, Martin Kelly <mkelly at xevo.com> wrote:
>
> Currently, sunxi-common.h ignores CONFIG_DEFAULT_FDT_FILE and assumes
> the kernel fdtfile and the u-boot devicetree names are the same.
> Although this is typically the case, sometimes you might want to
> customize one of these differently, so it's useful to allow them to be
> different.
>
> Fix this to use only CONFIG_DEFAULT_FDT_FILE as other boards do, and set
> CONFIG_DEFAULT_FDT_FILE in board files to be the same as the current
> fdtfile= setting.
>
> Signed-off-by: Martin Kelly <mkelly at xevo.com>
> ---
> This patch is against u-boot master and thus conflicts with u-boot sunxi patch
> 31510b41f6b736fd03e2779a2585f85df39e667f ("sunxi: allow CONFIG_DEFAULT_FDT_FILE
> override"). If you would like me to apply this against the sunxi tree instead, I
> would be happy to do so and resend it.
>
> Obviously, I cannot test a change like this on every board. Here's the tests I
> did:
>
> - Booted on the nanopi neo plus2 (the board I do have).
> - Compile-tested every affected config.
> - To avoid missing anything I generated the config changes with the following
> Python script. This script mimics what the preprocessor was doing, but encodes
> it explicitly in the config. Reviewing the script is probably easier than
> reviewing each individual file:
>
> #!/usr/bin/python3
>
> import os
>
> root = '/home/martin/u-boot/configs'
> for name in os.listdir(root):
> path = os.path.join(root, name)
> with open(path, 'r') as f:
> contents = f.read()
> if 'CONFIG_ARCH_SUNXI=y' not in contents:
> continue
> if 'CONFIG_DEFAULT_FDT_FILE=' in contents:
> # Make the script idempotent.
> continue
>
> if 'CONFIG_MACH_SUN50I=y' in contents or 'CONFIG_MACH_SUN50I_H5=y' in contents:
> arm64 = True
> else:
> arm64 = False
>
> lines = []
> for line in contents.split('\n'):
> if line.startswith('CONFIG_DEFAULT_DEVICE_TREE='):
> split = line.split('=')
> assert(len(split) == 2)
> dtb = split[1]
>
> if dtb[0] == '"' and dtb[-1] == '"':
> # Dequotify.
> dtb = dtb[1:-1]
>
> dtb = '%s.dtb' % dtb
> if arm64:
> dtb = 'allwinner/%s' % dtb
>
> lines.append('CONFIG_DEFAULT_FDT_FILE="%s"' % dtb)
> lines.append(line)
>
> with open(path, 'w') as f:
> f.write('\n'.join(lines))
>
> [end script]
Looks fine to me.
My only note would be that your script adds CONFIG_DEFAULT_FDT_FILE at a different
line as when generated by savedefconfig.
More information about the U-Boot
mailing list