[U-Boot] [PATCH] sunxi: use CONFIG_DEFAULT_FDT_FILE everywhere
Martin Kelly
mkelly at xevo.com
Fri Jun 1 17:16:07 UTC 2018
On 05/31/2018 07:45 PM, klaus.goger at theobroma-systems.com wrote:
>
>
>> 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.
>
Good point. I might as well change that to avoid unnecessary churn when
you run savedefconfig.
More information about the U-Boot
mailing list