From mboxrd@z Thu Jan 1 00:00:00 1970 From: klaus.goger at theobroma-systems.com Date: Thu, 31 May 2018 21:58:00 +0200 Subject: [U-Boot] [PATCH] sunxi: allow CONFIG_DEFAULT_FDT_FILE override In-Reply-To: <391f7591-308d-1bf6-d724-1513644aca08@xevo.com> References: <20180502004641.13415-1-mkelly@xevo.com> <20180517120118.vd6apamndc4i6ux2@flea> <09689eb8-9451-9508-319d-23aafba36e3b@xevo.com> <13fb068e-2397-a8d4-0272-0749c0316c6f@xevo.com> <8378D51C-2DE2-4735-9223-DD270C409BF3@theobroma-systems.com> <391f7591-308d-1bf6-d724-1513644aca08@xevo.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: u-boot@lists.denx.de > On 31.05.2018, at 21:48, Martin Kelly wrote: > > On 05/31/2018 11:15 AM, klaus.goger at theobroma-systems.com wrote: >> Hi Martin, >>> On 31.05.2018, at 19:49, Martin Kelly wrote: >>> >>> On 05/23/2018 11:34 AM, Martin Kelly wrote: >>>> On 05/17/2018 05:01 AM, Maxime Ripard wrote: >>>>> On Tue, May 01, 2018 at 05:46:41PM -0700, Martin Kelly 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. >>>>>> >>>>>> Add logic in sunxi-common.h to respect CONFIG_DEFAULT_FDT_FILE, if set, >>>>>> and default to the values it currently uses. >>>>>> >>>>>> Signed-off-by: Martin Kelly >>>>> >>>>> Acked-by: Maxime Ripard >>>>> >>>>> Maxime >>>>> >>>> (ping) >>> >>> (ping again) >>> >>> Can we get this patch merged? >> The else branch will never be selected. >> CONFIG_DEFAULT_FDT_FILE will be set to “” if not set by your defconfig. > > Thanks for noticing this; unfortunately you are right. I thought I tested this, but it was in the context of a larger build and I missed it. > > It looks like we have two options: > > (a) Test for empty string in preprocessor language. This is quite ugly and has some gotchas but should be doable (e.g. https://stackoverflow.com/questions/3781520/how-to-test-if-preprocessor-symbol-is-defined-but-has-no-value). > > (b) Always use the value of CONFIG_DEFAULT_FDT_FILE and stop using CONFIG_DEFAULT_DEVICE_TREE as a default. In each board file, explicitly set CONFIG_DEFAULT_FDT_FILE to its current default. This is what other boards are doing. > > I favor (b). If others are in favor, I'll submit a patch for it. I run into the same issue for the rockchip architecture[1]. After giving up on finding a rock-solid solution for detecting the emtpy string I decided to go with your option (b). Another solution would be to hide CONFIG_DEFAULT_DEVICE_TREE behind a Kconfig bool so it would not be defined until something like CONFIG_FDT_FILE is selected. But in favour of having U-Boot devicetree decoupled from any OS fdt I still prefer option (b). [1] https://patchwork.ozlabs.org/patch/920785/