[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