[U-Boot] [PATCH] sunxi: allow CONFIG_DEFAULT_FDT_FILE override

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 mkelly@xevo.com --- include/configs/sunxi-common.h | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h index 9d9e9ce173..cfd0b1d8c6 100644 --- a/include/configs/sunxi-common.h +++ b/include/configs/sunxi-common.h @@ -501,12 +501,18 @@ extern int soft_i2c_gpio_scl; CONSOLE_STDIN_SETTINGS \ CONSOLE_STDOUT_SETTINGS
+#ifdef CONFIG_DEFAULT_FDT_FILE +#define FDTFILE CONFIG_DEFAULT_FDT_FILE ".dtb" +#else /* ifndef CONFIG_DEFAULT_FDT_FILE */ + #ifdef CONFIG_ARM64 #define FDTFILE "allwinner/" CONFIG_DEFAULT_DEVICE_TREE ".dtb" #else #define FDTFILE CONFIG_DEFAULT_DEVICE_TREE ".dtb" #endif
+#endif /* ifdef CONFIG_DEFAULT_FDT_FILE */ + #define CONFIG_EXTRA_ENV_SETTINGS \ CONSOLE_ENV_SETTINGS \ MEM_LAYOUT_ENV_SETTINGS \

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 mkelly@xevo.com
Acked-by: Maxime Ripard maxime.ripard@bootlin.com
Maxime

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 mkelly@xevo.com
Acked-by: Maxime Ripard maxime.ripard@bootlin.com
Maxime
(ping)

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 mkelly@xevo.com
Acked-by: Maxime Ripard maxime.ripard@bootlin.com
Maxime
(ping)
(ping again)
Can we get this patch merged?

Hi Martin,
On 31.05.2018, at 19:49, Martin Kelly mkelly@xevo.com 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 mkelly@xevo.com
Acked-by: Maxime Ripard maxime.ripard@bootlin.com
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.

On 05/31/2018 11:15 AM, klaus.goger@theobroma-systems.com wrote:
Hi Martin,
On 31.05.2018, at 19:49, Martin Kelly mkelly@xevo.com 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 mkelly@xevo.com
Acked-by: Maxime Ripard maxime.ripard@bootlin.com
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-symb...).
(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.

On 31.05.2018, at 21:48, Martin Kelly mkelly@xevo.com wrote:
On 05/31/2018 11:15 AM, klaus.goger@theobroma-systems.com wrote:
Hi Martin,
On 31.05.2018, at 19:49, Martin Kelly mkelly@xevo.com 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 mkelly@xevo.com
Acked-by: Maxime Ripard maxime.ripard@bootlin.com
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-symb...).
(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).

On 05/31/2018 12:58 PM, klaus.goger@theobroma-systems.com wrote:
On 31.05.2018, at 21:48, Martin Kelly mkelly@xevo.com wrote:
On 05/31/2018 11:15 AM, klaus.goger@theobroma-systems.com wrote:
Hi Martin,
On 31.05.2018, at 19:49, Martin Kelly mkelly@xevo.com 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 mkelly@xevo.com
Acked-by: Maxime Ripard maxime.ripard@bootlin.com
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-symb...).
(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).
Thanks, I'll go ahead with that solution and issue a follow-up patch.
Jagan, should I make the patch against this one, or against master?

On Fri, Jun 1, 2018 at 1:32 AM, Martin Kelly mkelly@xevo.com wrote:
On 05/31/2018 12:58 PM, klaus.goger@theobroma-systems.com wrote:
[snip]
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).
Thanks, I'll go ahead with that solution and issue a follow-up patch.
Jagan, should I make the patch against this one, or against master?
on master

On Thu, May 17, 2018 at 5:31 PM, Maxime Ripard maxime.ripard@bootlin.com 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 mkelly@xevo.com
Acked-by: Maxime Ripard maxime.ripard@bootlin.com
Applied to u-boot-sunxi/master

On 05/31/2018 11:13 AM, Jagan Teki wrote:
On Thu, May 17, 2018 at 5:31 PM, Maxime Ripard maxime.ripard@bootlin.com 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 mkelly@xevo.com
Acked-by: Maxime Ripard maxime.ripard@bootlin.com
Applied to u-boot-sunxi/master
Thanks!
participants (4)
-
Jagan Teki
-
klaus.goger@theobroma-systems.com
-
Martin Kelly
-
Maxime Ripard