Add macros to ease our life with independent CONFIGs between U-Boot and SPL
Subsystems (18)
cover Add macros to ease our life with independent CONFIGs between U-Boot and SPL
Refer to Simon's question, too:
http://lists.denx.de/pipermail/u-boot/2015-July/219598.html
Since U-boot introduced SPL (not since Kconfig),
enabling features for U-boot and SPL independently is always a PITA.
- decide if each feature should be supported for SPL or not
- Add CONFIG_SPL_FRED_SUPPORT into Makefile.spl
- Add #undef include/config_uncmd_spl.h to disable features
we do not want to support on SPL
- Add "ifdef CONFIG_SPL_BUILD ... endif" here and there to adjust things
- Add "#ifdef CONFIG_SPL_BUILD ... #endif" here and there to fix things up
Things are getting more and more crappy.
When U-boot switched to Kconfig, first I introduced separate .config (.config, spl/.config, tpl/.config) to clean up them.
But it turned out to be a pain.
So, I believe the current single .config is much better. But I also admit we need something systematic to subdue our PITA.
One possibility is to support "spl-y" in makefiles. (This idea is cribbed from barebox.)
obj-$(CONFIG_FOO) += foo.o spl-$(CONFIG_SPL_FOO) += foo.o
is cleaner than
ifdef CONFIG_SPL_BUILD
obj-$(CONFIG_SPL_FOO) += foo.o
else
obj-$(CONFIG_FOO) += foo.o
endifIt is a nice improvement in makefile side.
But we still need to do something with C files.
Another option is something like
CONFIG_FOO=yyn (yes for U-boot, yes for SPL, no for TPL)
To achieve this, I think a big operation is needed in Kconfig core. I cannot do that.
(Of course, Patches are welcome if someone else can do that.)
So, I was thinking of something different.
My idea was inspired by IS_ENABLED() macro in include/linux/kconfig.h.
Linux defines different macros for built-in and module, and it is possible to write
#if IS_ENABLED(CONFIG_FOO)
...#endif
instead of
#if defined(CONFIG_FOO) || defined(CONFIG_FOO_MODULE)
...
#endifSo, I'd like to propose new macros to write code like
#if CONFIG_IS_ENABLED(FOO)
...
#endifinstead of
#if (!defined(CONFIG_SPL_BUILD) && defined(CONFIG_FOO)) || \
(defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_FOO))
...
#endifI hope this series will make our life easier.
Masahiro Yamada (16):
ARM: remove vpac270 board support
kbuild: fixdep: optimize code slightly
kbuild: add a makefile macro useful with per-image config options linux/kconfig.h: add CPP macros useful for per-image config options
spl: move SPL driver entries to driver/Makefile
dm: unify obj-$(CONFIG_DM) and obj-$(CONFIG_SPL_DM) entries
clk: rename CONFIG_SPL_CLK_SUPPORT to CONFIG_SPL_CLK
clk: unify obj-$(CONFIG_CLK) and obj-$(CONFIG_SPL_CLK) entries
ram: rename CONFIG_SPL_RAM_SUPPORT to CONFIG_SPL_RAM
ram: unify obj-$(CONFIG_RAM) and obj-$(CONFIG_SPL_RAM) entries
led: rename CONFIG_SPL_LED_SUPPORT to CONFIG_SPL_LED
led: unify obj-$(CONFIG_LED) and obj-$(CONFIG_SPL_LED) entries
dm: drop CONFIG_DM_DEVICE_REMOVE from uncmd list
fdtdec: fix OF_CONTROL switch
of: flip CONFIG_SPL_DISABLE_OF_CONTROL into CONFIG_SPL_OF_CONTROL
of: clean up OF_CONTROL ifdef conditionals
arch/arm/Kconfig | 10 - arch/arm/cpu/armv7/am33xx/board.c | 2 +- arch/arm/cpu/armv7/exynos/Kconfig | 8 - arch/arm/cpu/armv7/exynos/pinmux.c | 2 +- arch/arm/cpu/armv7/s5pc1xx/Kconfig | 2 - arch/arm/include/asm/arch-exynos/dwmmc.h | 2 - arch/arm/include/asm/arch-exynos/mipi_dsim.h | 2 - arch/arm/include/asm/arch-exynos/mmc.h | 2 - arch/arm/mach-tegra/clock.c | 4 +- arch/arm/mach-tegra/tegra114/clock.c | 4 +- arch/arm/mach-tegra/tegra124/clock.c | 4 +- arch/arm/mach-tegra/tegra20/clock.c | 4 +- arch/arm/mach-tegra/tegra30/clock.c | 4 +- board/vpac270/Kconfig | 9 - board/vpac270/MAINTAINERS | 8 - board/vpac270/Makefile | 13 - board/vpac270/onenand.c | 46 --- board/vpac270/u-boot-spl.lds | 81 ----- board/vpac270/vpac270.c | 126 -------- .../xilinx/microblaze-generic/microblaze-generic.c | 2 +- board/xilinx/zynq/board.c | 2 +- common/cli.c | 4 +- common/spl/spl.c | 3 +- configs/am335x_boneblack_vboot_defconfig | 1 - configs/arches_defconfig | 1 - configs/canyonlands_defconfig | 1 - configs/galileo_defconfig | 1 - configs/microblaze-generic_defconfig | 1 - configs/odroid_defconfig | 1 - configs/origen_defconfig | 1 - configs/s5pc210_universal_defconfig | 1 - configs/socfpga_socrates_defconfig | 1 - configs/trats2_defconfig | 1 - configs/trats_defconfig | 1 - configs/vpac270_nor_128_defconfig | 5 - configs/vpac270_nor_256_defconfig | 5 - configs/vpac270_ond_256_defconfig | 7 - doc/README.scrapyard | 1 + drivers/Makefile | 41 ++- drivers/clk/Kconfig | 2 +- drivers/core/Makefile | 8 +- drivers/core/device.c | 10 +- drivers/core/lists.c | 2 +- drivers/core/root.c | 6 +- drivers/core/uclass.c | 4 +- drivers/gpio/mxc_gpio.c | 2 +- drivers/gpio/vybrid_gpio.c | 2 +- drivers/i2c/s3c24x0_i2c.c | 4 +- drivers/input/Makefile | 3 +- drivers/input/tegra-kbc.c | 2 +- drivers/led/Kconfig | 2 +- drivers/mmc/exynos_dw_mmc.c | 2 +- drivers/mmc/s5p_sdhci.c | 2 +- drivers/mmc/tegra_mmc.c | 2 +- drivers/mmc/zynq_sdhci.c | 2 +- drivers/mtd/spi/sf_probe.c | 6 +- drivers/net/xilinx_emaclite.c | 2 +- drivers/net/zynq_gem.c | 2 +- drivers/power/exynos-tmu.c | 2 +- drivers/power/pmic/pmic_max77686.c | 4 +- drivers/ram/Kconfig | 2 +- drivers/serial/ns16550.c | 2 +- drivers/serial/serial-uclass.c | 4 +- drivers/serial/serial_omap.c | 2 +- drivers/serial/serial_pl01x.c | 2 +- drivers/serial/serial_tegra.c | 4 +- drivers/serial/serial_uniphier.c | 2 +- drivers/serial/serial_zynq.c | 2 +- drivers/sound/max98095.c | 2 +- drivers/sound/wm8994.c | 2 +- drivers/tpm/tpm_tis_i2c.c | 2 +- drivers/video/exynos_dp.c | 4 +- drivers/video/exynos_dp_lowlevel.c | 2 +- drivers/video/exynos_fb.c | 8 +- drivers/video/exynos_fimd.c | 4 +- drivers/video/exynos_mipi_dsi.c | 4 +- drivers/video/tegra.c | 2 +- dts/Kconfig | 6 +- include/cli.h | 2 +- include/config_uncmd_spl.h | 4 - include/configs/microblaze-generic.h | 3 +- include/configs/socfpga_common.h | 2 +- include/configs/vpac270.h | 326 --------------------- include/dm/device-internal.h | 10 +- include/dm/device.h | 4 +- include/dm/uclass-internal.h | 4 +- include/fdtdec.h | 10 - include/linux/kconfig.h | 48 +++ lib/Makefile | 13 +- lib/fdtdec.c | 4 +- scripts/Kbuild.include | 6 + scripts/Makefile.spl | 30 +- scripts/Makefile.uncmd_spl | 5 - scripts/basic/fixdep.c | 33 ++- 94 files changed, 227 insertions(+), 818 deletions(-) delete mode 100644 board/vpac270/Kconfig delete mode 100644 board/vpac270/MAINTAINERS delete mode 100644 board/vpac270/Makefile delete mode 100644 board/vpac270/onenand.c delete mode 100644 board/vpac270/u-boot-spl.lds delete mode 100644 board/vpac270/vpac270.c delete mode 100644 configs/vpac270_nor_128_defconfig delete mode 100644 configs/vpac270_nor_256_defconfig delete mode 100644 configs/vpac270_ond_256_defconfig delete mode 100644 include/configs/vpac270.h
Signature · 1 line
1.9.1
PATCH 1/16 ARM: remove vpac270 board support
The board-specific linker script board/vpac270/u-boot-spl.lds obstructs further cleanup. This board has not been converted to Generic Board yet in spite of the long-term warning. Remove.
---
Marek,
If you want to keep this board:
- Please convert it to Generic Board
- Please use arch-common linker script
arch/arm/Kconfig | 6 - board/vpac270/Kconfig | 9 -- board/vpac270/MAINTAINERS | 8 - board/vpac270/Makefile | 13 -- board/vpac270/onenand.c | 46 ------ board/vpac270/u-boot-spl.lds | 81 ---------- board/vpac270/vpac270.c | 126 --------------- configs/vpac270_nor_128_defconfig | 5 - configs/vpac270_nor_256_defconfig | 5 - configs/vpac270_ond_256_defconfig | 7 - doc/README.scrapyard | 1 + include/configs/vpac270.h | 326 -------------------------------------- 12 files changed, 1 insertion(+), 632 deletions(-) delete mode 100644 board/vpac270/Kconfig delete mode 100644 board/vpac270/MAINTAINERS delete mode 100644 board/vpac270/Makefile delete mode 100644 board/vpac270/onenand.c delete mode 100644 board/vpac270/u-boot-spl.lds delete mode 100644 board/vpac270/vpac270.c delete mode 100644 configs/vpac270_nor_128_defconfig delete mode 100644 configs/vpac270_nor_256_defconfig delete mode 100644 configs/vpac270_ond_256_defconfig delete mode 100644 include/configs/vpac270.h
arch/arm/Kconfig +0 -6
@@ -777,11 +777,6 @@ config TARGET_TRIZEPSIV bool "Support trizepsiv" select CPU_PXA -config TARGET_VPAC270 - bool "Support vpac270" - select CPU_PXA - select SUPPORT_SPL - config TARGET_XAENIAX bool "Support xaeniax" select CPU_PXA
@@ -978,7 +973,6 @@ source "board/toradex/colibri_vf/Kconfig" source "board/trizepsiv/Kconfig" source "board/ttcontrol/vision2/Kconfig" source "board/udoo/Kconfig" -source "board/vpac270/Kconfig" source "board/vscom/baltos/Kconfig" source "board/wandboard/Kconfig" source "board/warp/Kconfig"
board/vpac270/Kconfig deleted +0 -9
@@ -1,9 +0,0 @@ -if TARGET_VPAC270 - -config SYS_BOARD - default "vpac270" - -config SYS_CONFIG_NAME - default "vpac270" - -endif
board/vpac270/MAINTAINERS deleted +0 -8
@@ -1,8 +0,0 @@ -VPAC270 BOARD -M: Marek Vasut <[email protected]> -S: Maintained -F: board/vpac270/ -F: include/configs/vpac270.h -F: configs/vpac270_nor_128_defconfig -F: configs/vpac270_nor_256_defconfig -F: configs/vpac270_ond_256_defconfig
board/vpac270/Makefile deleted +0 -13
@@ -1,13 +0,0 @@ -# -# Voipac PXA270 Support -# -# Copyright (C) 2010 Marek Vasut <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -ifndef CONFIG_SPL_BUILD -obj-y := vpac270.o -else -obj-y := onenand.o -endif
board/vpac270/onenand.c deleted +0 -46
46 lines not on this page · raw message
board/vpac270/u-boot-spl.lds deleted +0 -81
81 lines not on this page · raw message
board/vpac270/vpac270.c deleted +0 -126
126 lines not on this page · raw message
configs/vpac270_nor_128_defconfig deleted +0 -5
@@ -1,5 +0,0 @@ -CONFIG_ARM=y -CONFIG_TARGET_VPAC270=y -CONFIG_SYS_EXTRA_OPTIONS="NOR,RAM_128M" -# CONFIG_CMD_IMLS is not set -# CONFIG_CMD_SETEXPR is not set
configs/vpac270_nor_256_defconfig deleted +0 -5
@@ -1,5 +0,0 @@ -CONFIG_ARM=y -CONFIG_TARGET_VPAC270=y -CONFIG_SYS_EXTRA_OPTIONS="NOR,RAM_256M" -# CONFIG_CMD_IMLS is not set -# CONFIG_CMD_SETEXPR is not set
configs/vpac270_ond_256_defconfig deleted +0 -7
@@ -1,7 +0,0 @@ -CONFIG_ARM=y -CONFIG_TARGET_VPAC270=y -CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="ONENAND,RAM_256M" -# CONFIG_CMD_IMLS is not set -# CONFIG_CMD_FLASH is not set -# CONFIG_CMD_SETEXPR is not set
doc/README.scrapyard +1 -0
@@ -12,6 +12,7 @@ The list should be sorted in reverse chronological order. Board Arch CPU Commit Removed Last known maintainer/contact ================================================================================================= +vpac270 arm pxa - - Marek Vasut <[email protected]> atstk1003 avr32 - e5354b8a 2015-06-10 Haavard Skinnemoen <[email protected]> atstk1004 avr32 - e5354b8a 2015-06-10 Haavard Skinnemoen <[email protected]> atstk1006 avr32 - e5354b8a 2015-06-10 Haavard Skinnemoen <[email protected]>
include/configs/vpac270.h deleted +0 -326
326 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH 1/16 ARM: remove vpac270 board support
Quoted 6 lines · Masahiro Yamada
The board-specific linker script
board/vpac270/u-boot-spl.ldsobstructs further cleanup. This board has not been converted to Generic Board yet in spite of the long-term warning. Remove.Signed-off-by Masahiro Yamada <[email protected]>---
Hi!
Quoted 5 lines
Marek,
If you want to keep this board:
- Please convert it to Generic Board
- Please use arch-common linker script
Yeah, I want to keep this board, but please give me a bit of time to do this. This one and the zipitz2 are the two PXA boards which I have and want to keep.
I recall the u-boot-spl.lds was really needed to keep the size of the SPL under 1kiB ; without this the board was unbootable when using the OneNAND.
Best regards,
Marek Vasut
PATCH 1/16 ARM: remove vpac270 board support
Hi Marek,
2015-07-26 17:49 GMT+09:00 Marek Vasut <[email protected]>:
Quoted 16 lines · Masahiro Yamada
Quoted 6 lines
The board-specific linker script
board/vpac270/u-boot-spl.ldsobstructs further cleanup. This board has not been converted to Generic Board yet in spite of the long-term warning. Remove.Signed-off-by Masahiro Yamada <[email protected]>---
Hi!
Quoted 5 lines
Marek,
If you want to keep this board:
- Please convert it to Generic Board
- Please use arch-common linker script
Quoted 8 lines
Yeah, I want to keep this board, but please give me a bit of time to do this. This one and the zipitz2 are the two PXA boards which I have and want to keep.
I recall the
u-boot-spl.ldswas really needed to keep the size of the SPL under 1kiB ; without this the board was unbootable when using the OneNAND.
So, you worked around your problem in a wrong way.
I imagine this linker script means:
We build many objects for SPL, but do not want link them.
To keep the SPL size under 1kiB, only 4 objects should be
linked into the SPL.
The correct way of doing this is to disable CONFIGs for SPL,
by Kconfig or by include/configs/vpac270.h, but it is troubulesome (or tedious, or impossible at all?), so this weird linker script is needed...
I'd say having per-board linker scripts is a mistake of U-boot. They should be deprecated in the long-run.
Is it possible to replace
drivers/mtd/onenand/built-in.o
with
drivers/built-in.o
Given that any other drivers should be disabled for SPL, this should work.
And it should be enough for my series.
Signature · 2 lines
Best Regards Masahiro Yamada
PATCH 1/16 ARM: remove vpac270 board support
In reply to Marek Vasut2015-07-26 17:49 GMT+09:00 Marek Vasut <[email protected]>:
Quoted 16 lines · Masahiro Yamada
Quoted 6 lines
The board-specific linker script
board/vpac270/u-boot-spl.ldsobstructs further cleanup. This board has not been converted to Generic Board yet in spite of the long-term warning. Remove.Signed-off-by Masahiro Yamada <[email protected]>---
Hi!
Quoted 5 lines
Marek,
If you want to keep this board:
- Please convert it to Generic Board
- Please use arch-common linker script
Quoted 8 lines
Yeah, I want to keep this board, but please give me a bit of time to do this. This one and the zipitz2 are the two PXA boards which I have and want to keep.
I recall the
u-boot-spl.ldswas really needed to keep the size of the SPL under 1kiB ; without this the board was unbootable when using the OneNAND.
I will drop this patch when I send v2.
BTW, I tried building vpac270 ONENAND. It is already over 1kiB.
$ git describe v2015.07-307-g2647394 $ make vpac270_ond_256_defconfig # # configuration written to .config # $ make -s CROSS_COMPILE=arm-unknown-linux-gnueabi- ===================== WARNING ====================== Please convert this board to generic board. Otherwise it will be removed by the end of 2014. See doc/README.generic-board for further information ==================================================== $ ls -l spl/u-boot-spl.bin -rwxrwxr-x 1 masahiro masahiro 2828 Jul 28 00:53 spl/u-boot-spl.bin
It is over 2KB.
Signature · 2 lines
Best Regards Masahiro Yamada
PATCH 1/16 ARM: remove vpac270 board support
Quoted 51 lines · Masahiro Yamada
2015-07-26 17:49 GMT+09:00 Marek Vasut <[email protected]>:
Quoted 16 lines · Masahiro Yamada
Quoted 6 lines
The board-specific linker script
board/vpac270/u-boot-spl.ldsobstructs further cleanup. This board has not been converted to Generic Board yet in spite of the long-term warning. Remove.Signed-off-by Masahiro Yamada <[email protected]>---
Hi!
Quoted 5 lines
Marek,
If you want to keep this board:
- Please convert it to Generic Board
- Please use arch-common linker scriptQuoted 7 lines
Yeah, I want to keep this board, but please give me a bit of time to do this. This one and the zipitz2 are the two PXA boards which I have and want to keep.
I recall the
u-boot-spl.ldswas really needed to keep the size of the SPL under 1kiB ; without this the board was unbootable when using the OneNAND.I will drop this patch when I send v2.
BTW, I tried building vpac270 ONENAND. It is already over 1kiB.
$ git describe v2015.07-307-g2647394 $ make vpac270_ond_256_defconfig # # configuration written to .config # $ make -s CROSS_COMPILE=arm-unknown-linux-gnueabi- ===================== WARNING ====================== Please convert this board to generic board. Otherwise it will be removed by the end of 2014. See doc/README.generic-board for further information ==================================================== $ ls -l spl/u-boot-spl.bin -rwxrwxr-x 1 masahiro masahiro 2828 Jul 28 00:53 spl/u-boot-spl.bin
Quoted 1 line
It is over 2KB.
So the hardware spilt already? Aww :-(
I wonder, maybe converting this to TPL might be the correct solution ?
Best regards,
Marek Vasut
PATCH 1/16 ARM: remove vpac270 board support
2015-07-28 7:31 GMT+09:00 Marek Vasut <[email protected]>:
Quoted 52 lines · Masahiro Yamada
Quoted 51 lines
2015-07-26 17:49 GMT+09:00 Marek Vasut <[email protected]>:
Quoted 16 lines · Masahiro Yamada
Quoted 6 lines
The board-specific linker script
board/vpac270/u-boot-spl.ldsobstructs further cleanup. This board has not been converted to Generic Board yet in spite of the long-term warning. Remove.Signed-off-by Masahiro Yamada <[email protected]>---
Hi!
Quoted 5 lines
Marek,
If you want to keep this board:
- Please convert it to Generic Board
- Please use arch-common linker scriptQuoted 7 lines
Yeah, I want to keep this board, but please give me a bit of time to do this. This one and the zipitz2 are the two PXA boards which I have and want to keep.
I recall the
u-boot-spl.ldswas really needed to keep the size of the SPL under 1kiB ; without this the board was unbootable when using the OneNAND.I will drop this patch when I send v2.
BTW, I tried building vpac270 ONENAND. It is already over 1kiB.
$ git describe v2015.07-307-g2647394 $ make vpac270_ond_256_defconfig # # configuration written to .config # $ make -s CROSS_COMPILE=arm-unknown-linux-gnueabi- ===================== WARNING ====================== Please convert this board to generic board. Otherwise it will be removed by the end of 2014. See doc/README.generic-board for further information ==================================================== $ ls -l spl/u-boot-spl.bin -rwxrwxr-x 1 masahiro masahiro 2828 Jul 28 00:53 spl/u-boot-spl.bin
Quoted 5 lines
Quoted 1 line
It is over 2KB.
So the hardware spilt already? Aww :-(
I wonder, maybe converting this to TPL might be the correct solution ?
Maybe, if you could split it into two images.
Signature · 2 lines
Best Regards Masahiro Yamada
PATCH 1/16 ARM: remove vpac270 board support
On Tuesday, July 28, 2015 at 05:53:10 PM, Masahiro Yamada wrote:
[...]
Quoted 17 lines
Quoted 17 lines
Quoted 17 lines
$ git describe v2015.07-307-g2647394 $ make vpac270_ond_256_defconfig # # configuration written to .config # $ make -s CROSS_COMPILE=arm-unknown-linux-gnueabi- ===================== WARNING ====================== Please convert this board to generic board. Otherwise it will be removed by the end of 2014. See doc/README.generic-board for further information ==================================================== $ ls -l spl/u-boot-spl.bin -rwxrwxr-x 1 masahiro masahiro 2828 Jul 28 00:53 spl/u-boot-spl.bin
Quoted 7 lines
Quoted 5 lines
Quoted 1 line
It is over 2KB.
So the hardware spilt already? Aww :-(
I wonder, maybe converting this to TPL might be the correct solution ?
Maybe, if you could split it into two images.
I think I might need TPL and SPL:
TPL: Load the SDRAM init code into CPU's SRAM from the OneNAND
SPL: Load big U-Boot from OneNAND into the main SDRAM
... or maybe we should just sacrifice the machine in the name of progress and be done with it. I don't know when I might have time to fix it afterall.
Best regards,
Marek Vasut
PATCH 1/16 ARM: remove vpac270 board support
Hi Marek,
Quoted 29 lines · Marek Vasut
On Tuesday, July 28, 2015 at 05:53:10 PM, Masahiro Yamada wrote:
[...]
Quoted 17 lines
Quoted 17 lines
Quoted 17 lines
$ git describe v2015.07-307-g2647394 $ make vpac270_ond_256_defconfig # # configuration written to .config # $ make -s CROSS_COMPILE=arm-unknown-linux-gnueabi- ===================== WARNING ====================== Please convert this board to generic board. Otherwise it will be removed by the end of 2014. See doc/README.generic-board for further information ==================================================== $ ls -l spl/u-boot-spl.bin -rwxrwxr-x 1 masahiro masahiro 2828 Jul 28 00:53 spl/u-boot-spl.binQuoted 7 lines
Quoted 5 lines
Quoted 1 line
It is over 2KB.
So the hardware spilt already? Aww :-(
I wonder, maybe converting this to TPL might be the correct solution ?
Maybe, if you could split it into two images.
Quoted 7 lines
I think I might need TPL and SPL:
TPL: Load the SDRAM init code into CPU's SRAM from the OneNAND
SPL: Load big U-Boot from OneNAND into the main SDRAM... or maybe we should just sacrifice the machine in the name of progress and be done with it. I don't know when I might have time to fix it afterall.
Well it sounds like it is already broken. It worries me that SPL has somehow got larger though - any reason for that?
Regards,
Simon
PATCH 1/16 ARM: remove vpac270 board support
Quoted 1 line · Simon Glass
Hi Marek,
Hi!
Quoted 35 lines · Marek Vasut
Quoted 34 lines · Masahiro Yamada
[...]
Quoted 17 lines
Quoted 17 lines
Quoted 17 lines
$ git describe v2015.07-307-g2647394 $ make vpac270_ond_256_defconfig # # configuration written to .config # $ make -s CROSS_COMPILE=arm-unknown-linux-gnueabi- ===================== WARNING ====================== Please convert this board to generic board. Otherwise it will be removed by the end of 2014. See doc/README.generic-board for further information ==================================================== $ ls -l spl/u-boot-spl.bin -rwxrwxr-x 1 masahiro masahiro 2828 Jul 28 00:53 spl/u-boot-spl.binQuoted 7 lines
Quoted 5 lines
Quoted 1 line
It is over 2KB.
So the hardware spilt already? Aww :-(
I wonder, maybe converting this to TPL might be the correct solution ?
Maybe, if you could split it into two images.
I think I might need TPL and SPL:
TPL: Load the SDRAM init code into CPU's SRAM from the OneNAND
SPL: Load big U-Boot from OneNAND into the main SDRAM
Quoted 6 lines
Quoted 3 lines
... or maybe we should just sacrifice the machine in the name of progress and be done with it. I don't know when I might have time to fix it afterall.
Well it sounds like it is already broken. It worries me that SPL has somehow got larger though - any reason for that?
I think the machine was always quite borderline and stuffing the SPL into it was always a bit hackish. The changes to the SPL probably just exposed this hackishness.
Best regards,
Marek Vasut
PATCH 2/16 kbuild: fixdep: optimize code slightly
In reply to Masahiro YamadaIf the target string matches "CONFIG_", move the pointer p forward. This saves several 7-chars adjustments.
---
scripts/basic/fixdep.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
scripts/basic/fixdep.c +4 -3
@@ -251,7 +251,8 @@ static void parse_config_file(const char *map, size_t len)continue ;if (memcmp (p,"CONFIG_" ,7 ))continue ; -for (q = p +7 ; q < map + len; q++) { + p +=7 ; +for (q = p; q < map + len; q++) {if (!(isalnum (*q) || *q =='_' )) goto found; }
@@ -260,9 +261,9 @@ static void parse_config_file(const char *map, size_t len) found:if (!memcmp (q -7 ,"_MODULE" ,7 )) q -=7 ; -if ( (q-p-7 ) <0 ) +if (q - p <0 )continue ; -use_config (p+7 , q-p-7 ); +use_config (p, q - p); } }
Signature · 1 line
1.9.1
PATCH 3/16 kbuild: add a makefile macro useful with per-image config options
In reply to Masahiro YamadaCommit e02ee2548afe ("kconfig: switch to single .config configuration") made the configuration itself pretty simple, instead, we lost the way to systematically enable/disable config options for each image independently.
Our current strategy is, put entries into Makefile.spl for options we need separate enabling, or once enable the options globally in Kconfig and then undef them in Makefile.uncmd_spl if we do not want to compile the features for SPL at all. Things are getting really messy. Besides, "ifdef CONFIG_SPL_BUILD" are sprinkled everywhere in makefiles.
This commit adds a variable to help describe makefile simpler.
$(SPL_) evaluates to "SPL_" during the SPL build, while to an empty string during building U-boot proper.
So, you can write
obj-$(CONFIG_$(SPL_)FOO) += foo.o
instead of
ifdef CONFIG_SPL_BUILD obj-$(CONFIG_SPL_FOO) += foo.o else obj-$(CONFIG_FOO) += foo.o endif
If CONFIG_SPL_FOO does not exist in Kconfig, it is equivalent to
ifndef CONFIG_SPL_BUILD obj-$(CONFIG_SPL_FOO) += foo.o endif
This is the pattern we often see in our current makefiles.
To take advantage of this macro, we should prefix SPL_ for the SPL version of the option when we need independent control between U-boot and SPL. With this naming scheme, I hope our makefiles will be much simplified.
It means we want to rename existing config options as follows in the long run:
CONFIG_SPL_SERIAL_SUPPORT -> CONFIG_SPL_SERIAL CONFIG_SPL_I2C_SUPPORT -> CONFIG_SPL_I2C CONFIG_SPL_GPIO_SUPPORT -> CONFIG_SPL_GPIO CONFIG_SPL_SPI_SUPPORT -> CONFIG_SPL_SPI
CONFIG_SPL_DISABLE_OF_CONTROL -> CONFIG_SPL_OF_CONTROL
(inverting the logic)
Then drivers/Makefile would be re-worked as follows:
obj-$(CONFIG_$(SPL_)SERIAL) += serial/
obj-$(CONFIG_$(SPL_)I2C) += i2c/
obj-$(CONFIG_$(SPL_)GPIO) += gpio/
obj-$(CONFIG_$(SPL_)SPI) += spi/
...Eventually, SPL-specialized entries in Makefile.spl would go away.
---
scripts/Kbuild.include | 6 ++++++ 1 file changed, 6 insertions(+)
scripts/Kbuild.include +6 -0
@@ -294,3 +294,9 @@ why = \ echo-why = $(call escsq, $(strip $(why))) endif + +ifdef CONFIG_SPL_BUILD +SPL_ := SPL_ +else +SPL_ := +endif
Signature · 1 line
1.9.1
PATCH 4/16 linux/kconfig.h: add CPP macros useful for per-image config options
In reply to Masahiro YamadaThe previous commit introduced a useful macro used in makefiles, in order to reference to different variables (CONFIG_... or CONFIG_SPL_...) depending on the build context.
Per-image config option control is a PITA in C sources, too. Here are some macros useful in C/CPP expressions.
CONFIG_IS_ENABLED(FOO) can be used as a shorthand for
(!defined(CONFIG_SPL_BUILD) && defined(CONFIG_FOO)) || \ (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_FOO))
For example, it is useful to describe C code as follows,
#if CONFIG_IS_ENABLED(OF_CONTROL)
(device tree code)
#else
(board file code)
#endifThe ifdef conditional above is switched by CONFIG_OF_CONTROL during the U-Boot proper building (CONFIG_SPL_BUILD is not defined), and by CONFIG_SPL_OF_CONTROL during SPL building (CONFIG_SPL_BUILD is defined).
The macro can be used in C context as well, so you can also write the equivalent code as follows:
if (CONFIG_IS_ENABLED(OF_CONTROL)) {
(device tree code)
} else {
(board file code)
}Another useful macro is CONFIG_VALUE().CONFIG_VALUE(FOO) is expanded into CONFIG_FOO if CONFIG_SPL_BUILD is undefined, and into CONFIG_SPL_FOO if CONFIG_SPL_BUILD is defined.
You can write as follows:
text_base = CONFIG_VALUE(TEXT_BASE);
instead of:
#ifdef CONFIG_SPL_BUILD
text_base = CONFIG_SPL_TEXT_BASE;
#else
text_base = CONFIG_TEXT_BASE;
#endifThis commit also adds slight hacking on fixdep so that it can output a correct list of fixed dependencies.
If the fixdep finds CONFIG_IS_ENABLED(FOO) in a source file, we want
$(wildcard include/config/foo.h)
in the U-boot proper building context, while we want
$(wildcard include/config/spl/foo.h)in the SPL build context.
---
include/linux/kconfig.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ scripts/basic/fixdep.c | 26 ++++++++++++++++++++++++++ 2 files changed, 74 insertions(+)
include/linux/kconfig.h +48 -0
@@ -43,4 +43,52 @@*/ #define IS_MODULE (option) config_enabled(option##_MODULE) +/* +* U-Boot add-on: Helper macros to reference to different macros +* (CONFIG_ or CONFIG_SPL_ prefixed), depending on the build context. +*/ +#ifdef CONFIG_SPL_BUILD +#define _IS_SPL 1 +#endif + +#define config_val (cfg) _config_val(_IS_SPL, cfg) +#define _config_val (x, cfg) __config_val(x, cfg) +#define __config_val (x, cfg) ___config_val(__ARG_PLACEHOLDER_##x, cfg) +#define ___config_val (arg1_or_junk, cfg) \ + ____config_val(arg1_or_junk CONFIG_SPL_##cfg, CONFIG_##cfg) +#define ____config_val (__ignored, val, ...) val + +/* +* CONFIG_VAL(FOO) evaluates to the value of +* CONFIG_FOO if CONFIG_SPL_BUILD is undefined, +* CONFIG_SPL_FOO if CONFIG_SPL_BUILD is defined. +*/ +#define CONFIG_VAL (option) config_val(option) + +/* +* CONFIG_IS_ENABLED(FOO) evaluates to +* 1 if CONFIG_SPL_BUILD is undefined and CONFIG_FOO is set to 'y' or 'm', +* 1 if CONFIG_SPL_BUILD is defined and CONFIG_SPL_FOO is set to 'y' or 'm', +* 0 otherwise. +*/ +#define CONFIG_IS_ENABLED (option) \ + (config_enabled(CONFIG_VAL(option)) || \ + config_enabled(CONFIG_VAL(option##_MODULE))) + +/* +* CONFIG_IS_BUILTIN(FOO) evaluates to +* 1 if CONFIG_SPL_BUILD is undefined and CONFIG_FOO is set to 'y', +* 1 if CONFIG_SPL_BUILD is defined and CONFIG_SPL_FOO is set to 'y', +* 0 otherwise. +*/ +#define CONFIG_IS_BUILTIN (option) config_enabled(CONFIG_VAL(option)) + +/* +* CONFIG_IS_MODULE(FOO) evaluates to +* 1 if CONFIG_SPL_BUILD is undefined and CONFIG_FOO is set to 'm', +* 1 if CONFIG_SPL_BUILD is defined and CONFIG_SPL_FOO is set to 'm', +* 0 otherwise. +*/ +#define CONFIG_IS_MODULE (option) config_enabled(CONFIG_VAL(option##_MODULE)) +#endif /* __LINUX_KCONFIG_H */
scripts/basic/fixdep.c +26 -0
@@ -123,6 +123,7 @@char *target;char *depfile;char *cmdline; +int is_spl_build =0 ;/* hack for U-boot */ static void usage (void ) {
@@ -239,6 +240,7 @@ static void parse_config_file(const char *map, size_t len)/* start at +1, so that p can never be < map */ const int *m = (const int *) map +1 ;const char *p, *q; +char tmp_buf[256 ] ="SPL_" ;/* hack for U-Boot */ for (; m < end; m++) {if (*m ==INT_CONF ) { p = (char *) m ; goto conf; }
@@ -263,6 +265,26 @@ static void parse_config_file(const char *map, size_t len) q -=7 ;if (q - p <0 )continue ; + +/* U-Boot also handles CONFIG_IS_{ENABLED/BUILTIN/MODULE} */ +if ((q - p ==10 && !memcmp (p,"IS_ENABLED(" ,11 )) || + (q - p ==10 && !memcmp (p,"IS_BUILTIN(" ,11 )) || + (q - p ==9 && !memcmp (p,"IS_MODULE(" ,10 ))) { + p = q +1 ; +for (q = p; q < map + len; q++) +if (*q ==')' ) + goto found2; +continue ; + + found2: +if (is_spl_build) { +memcpy (tmp_buf +4 , p, q - p); + q = tmp_buf +4 + (q - p); + p = tmp_buf; + } + } +/* end U-Boot hack */ +use_config (p, q - p); } }
@@ -456,6 +478,10 @@ int main(int argc, char *argv[]) target = argv[2 ]; cmdline = argv[3 ]; +/* hack for U-boot */ +if (!strncmp (target,"spl/" ,4 ) || !strncmp (target,"tpl/" ,4 )) + is_spl_build =1 ; +print_cmdline ();print_deps ();
Signature · 1 line
1.9.1
PATCH 5/16 spl: move SPL driver entries to driver/Makefile
In reply to Masahiro YamadaNothing special has happened yet. Just preparing for upcoming cleaning.
---
drivers/Makefile | 36 ++++++++++++++++++++++++++++++++++++ scripts/Makefile.spl | 30 +----------------------------- 2 files changed, 37 insertions(+), 29 deletions(-)
drivers/Makefile +36 -0
@@ -1,3 +1,37 @@ +ifdef CONFIG_SPL_BUILD + +obj-$(CONFIG_SPL_CLK_SUPPORT) += clk/ +obj-$(CONFIG_SPL_DM) += core/ +obj-$(CONFIG_SPL_I2C_SUPPORT) += i2c/ +obj-$(CONFIG_SPL_GPIO_SUPPORT) += gpio/ +obj-$(CONFIG_SPL_MMC_SUPPORT) += mmc/ +obj-$(CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT) += ddr/fsl/ +obj-$(CONFIG_SYS_MVEBU_DDR_A38X) += ddr/marvell/a38x/ +obj-$(CONFIG_SYS_MVEBU_DDR_AXP) += ddr/marvell/axp/ +obj-$(CONFIG_SPL_SERIAL_SUPPORT) += serial/ +obj-$(CONFIG_SPL_SPI_FLASH_SUPPORT) += mtd/spi/ +obj-$(CONFIG_SPL_SPI_SUPPORT) += spi/ +obj-$(CONFIG_SPL_LED_SUPPORT) += led/ +obj-$(CONFIG_SPL_POWER_SUPPORT) += power/ power/pmic/ +obj-$(CONFIG_SPL_POWER_SUPPORT) += power/regulator/ +obj-$(CONFIG_SPL_MTD_SUPPORT) += mtd/ +obj-$(CONFIG_SPL_NAND_SUPPORT) += mtd/nand/ +obj-$(CONFIG_SPL_DRIVERS_MISC_SUPPORT) += misc/ +obj-$(CONFIG_SPL_ONENAND_SUPPORT) += mtd/onenand/ +obj-$(CONFIG_SPL_DMA_SUPPORT) += dma/ +obj-$(CONFIG_SPL_ETH_SUPPORT) += net/ +obj-$(CONFIG_SPL_ETH_SUPPORT) += net/phy/ +obj-$(CONFIG_SPL_USBETH_SUPPORT) += net/phy/ +obj-$(CONFIG_SPL_RAM_SUPPORT) += ram/ +obj-$(CONFIG_SPL_MUSB_NEW_SUPPORT) += usb/musb-new/ +obj-$(CONFIG_SPL_USBETH_SUPPORT) += usb/gadget/ +obj-$(CONFIG_SPL_WATCHDOG_SUPPORT) += watchdog/ +obj-$(CONFIG_SPL_USB_HOST_SUPPORT) += usb/host/ +obj-$(CONFIG_OMAP_USB_PHY) += usb/phy/ +obj-$(CONFIG_SPL_SATA_SUPPORT) += block/ + +else + obj-$(CONFIG_CLK) += clk/ obj-$(CONFIG_DM) += core/ obj-$(CONFIG_DM_DEMO) += demo/
@@ -27,3 +61,5 @@ obj-y += input/ # SOC specific infrastructure drivers. obj-y += soc/ obj-y += thermal/ + +endif
scripts/Makefile.spl +1 -29
@@ -54,39 +54,11 @@ libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/ libs-$(CONFIG_SPL_FRAMEWORK) += common/spl/ libs-$(CONFIG_SPL_LIBCOMMON_SUPPORT) += common/ libs-$(CONFIG_SPL_LIBDISK_SUPPORT) += disk/ -libs-$(CONFIG_SPL_CLK_SUPPORT) += drivers/clk/ -libs-$(CONFIG_SPL_DM) += drivers/core/ -libs-$(CONFIG_SPL_I2C_SUPPORT) += drivers/i2c/ -libs-$(CONFIG_SPL_GPIO_SUPPORT) += drivers/gpio/ -libs-$(CONFIG_SPL_MMC_SUPPORT) += drivers/mmc/ -libs-$(CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT) += drivers/ddr/fsl/ -libs-$(CONFIG_SYS_MVEBU_DDR_A38X) += drivers/ddr/marvell/a38x/ -libs-$(CONFIG_SYS_MVEBU_DDR_AXP) += drivers/ddr/marvell/axp/ -libs-$(CONFIG_SPL_SERIAL_SUPPORT) += drivers/serial/ -libs-$(CONFIG_SPL_SPI_FLASH_SUPPORT) += drivers/mtd/spi/ -libs-$(CONFIG_SPL_SPI_SUPPORT) += drivers/spi/ +libs-y += drivers/ libs-y += fs/ -libs-$(CONFIG_SPL_LED_SUPPORT) += drivers/led/ libs-$(CONFIG_SPL_LIBGENERIC_SUPPORT) += lib/ -libs-$(CONFIG_SPL_POWER_SUPPORT) += drivers/power/ drivers/power/pmic/ -libs-$(CONFIG_SPL_POWER_SUPPORT) += drivers/power/regulator/ -libs-$(CONFIG_SPL_MTD_SUPPORT) += drivers/mtd/ -libs-$(CONFIG_SPL_NAND_SUPPORT) += drivers/mtd/nand/ -libs-$(CONFIG_SPL_DRIVERS_MISC_SUPPORT) += drivers/misc/ -libs-$(CONFIG_SPL_ONENAND_SUPPORT) += drivers/mtd/onenand/ -libs-$(CONFIG_SPL_DMA_SUPPORT) += drivers/dma/ libs-$(CONFIG_SPL_POST_MEM_SUPPORT) += post/drivers/ libs-$(CONFIG_SPL_NET_SUPPORT) += net/ -libs-$(CONFIG_SPL_ETH_SUPPORT) += drivers/net/ -libs-$(CONFIG_SPL_ETH_SUPPORT) += drivers/net/phy/ -libs-$(CONFIG_SPL_USBETH_SUPPORT) += drivers/net/phy/ -libs-$(CONFIG_SPL_RAM_SUPPORT) += drivers/ram/ -libs-$(CONFIG_SPL_MUSB_NEW_SUPPORT) += drivers/usb/musb-new/ -libs-$(CONFIG_SPL_USBETH_SUPPORT) += drivers/usb/gadget/ -libs-$(CONFIG_SPL_WATCHDOG_SUPPORT) += drivers/watchdog/ -libs-$(CONFIG_SPL_USB_HOST_SUPPORT) += drivers/usb/host/ -libs-$(CONFIG_OMAP_USB_PHY) += drivers/usb/phy/ -libs-$(CONFIG_SPL_SATA_SUPPORT) += drivers/block/ head-y := $(addprefix $(obj)/,$(head-y)) libs-y := $(addprefix $(obj)/,$(libs-y))
Signature · 1 line
1.9.1
PATCH 6/16 dm: unify obj-$(CONFIG_DM) and obj-$(CONFIG_SPL_DM) entries
In reply to Masahiro Yamada---
drivers/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/Makefile +2 -2
@@ -1,7 +1,8 @@ +obj-$(CONFIG_$(SPL_)DM) += core/ + ifdef CONFIG_SPL_BUILD obj-$(CONFIG_SPL_CLK_SUPPORT) += clk/ -obj-$(CONFIG_SPL_DM) += core/ obj-$(CONFIG_SPL_I2C_SUPPORT) += i2c/ obj-$(CONFIG_SPL_GPIO_SUPPORT) += gpio/ obj-$(CONFIG_SPL_MMC_SUPPORT) += mmc/
@@ -33,7 +34,6 @@ obj-$(CONFIG_SPL_SATA_SUPPORT) += block/ else obj-$(CONFIG_CLK) += clk/ -obj-$(CONFIG_DM) += core/ obj-$(CONFIG_DM_DEMO) += demo/ obj-$(CONFIG_BIOSEMU) += bios_emulator/ obj-y += block/
Signature · 1 line
1.9.1
PATCH 7/16 clk: rename CONFIG_SPL_CLK_SUPPORT to CONFIG_SPL_CLK
In reply to Masahiro Yamada---
drivers/Makefile | 2 +- drivers/clk/Kconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/Makefile +1 -1
@@ -2,7 +2,7 @@ obj-$(CONFIG_$(SPL_)DM) += core/ ifdef CONFIG_SPL_BUILD -obj-$(CONFIG_SPL_CLK_SUPPORT) += clk/ +obj-$(CONFIG_SPL_CLK) += clk/ obj-$(CONFIG_SPL_I2C_SUPPORT) += i2c/ obj-$(CONFIG_SPL_GPIO_SUPPORT) += gpio/ obj-$(CONFIG_SPL_MMC_SUPPORT) += mmc/
drivers/clk/Kconfig +1 -1
@@ -8,7 +8,7 @@ config CLK feed into other clocks in a tree structure, with multiplexers to choose the source for each clock. -config SPL_CLK_SUPPORT +config SPL_CLK bool "Enable clock support in SPL" depends on CLK help
Signature · 1 line
1.9.1
PATCH 8/16 clk: unify obj-$(CONFIG_CLK) and obj-$(CONFIG_SPL_CLK) entries
In reply to Masahiro Yamada---
drivers/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/Makefile +1 -2
@@ -1,8 +1,8 @@ obj-$(CONFIG_$(SPL_)DM) += core/ +obj-$(CONFIG_$(SPL_)CLK) += clk/ ifdef CONFIG_SPL_BUILD -obj-$(CONFIG_SPL_CLK) += clk/ obj-$(CONFIG_SPL_I2C_SUPPORT) += i2c/ obj-$(CONFIG_SPL_GPIO_SUPPORT) += gpio/ obj-$(CONFIG_SPL_MMC_SUPPORT) += mmc/
@@ -33,7 +33,6 @@ obj-$(CONFIG_SPL_SATA_SUPPORT) += block/ else -obj-$(CONFIG_CLK) += clk/ obj-$(CONFIG_DM_DEMO) += demo/ obj-$(CONFIG_BIOSEMU) += bios_emulator/ obj-y += block/
Signature · 1 line
1.9.1
PATCH 9/16 ram: rename CONFIG_SPL_RAM_SUPPORT to CONFIG_SPL_RAM
In reply to Masahiro Yamada---
drivers/Makefile | 2 +- drivers/ram/Kconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/Makefile +1 -1
@@ -23,7 +23,7 @@ obj-$(CONFIG_SPL_DMA_SUPPORT) += dma/ obj-$(CONFIG_SPL_ETH_SUPPORT) += net/ obj-$(CONFIG_SPL_ETH_SUPPORT) += net/phy/ obj-$(CONFIG_SPL_USBETH_SUPPORT) += net/phy/ -obj-$(CONFIG_SPL_RAM_SUPPORT) += ram/ +obj-$(CONFIG_SPL_RAM) += ram/ obj-$(CONFIG_SPL_MUSB_NEW_SUPPORT) += usb/musb-new/ obj-$(CONFIG_SPL_USBETH_SUPPORT) += usb/gadget/ obj-$(CONFIG_SPL_WATCHDOG_SUPPORT) += watchdog/
drivers/ram/Kconfig +1 -1
@@ -8,7 +8,7 @@ config RAM the RAM size can either be statically defined or dynamically detected. -config SPL_RAM_SUPPORT +config SPL_RAM bool "Enable RAM support in SPL" depends on RAM help
Signature · 1 line
1.9.1
PATCH 10/16 ram: unify obj-$(CONFIG_RAM) and obj-$(CONFIG_SPL_RAM) entries
In reply to Masahiro Yamada---
drivers/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/Makefile +1 -2
@@ -1,5 +1,6 @@ obj-$(CONFIG_$(SPL_)DM) += core/ obj-$(CONFIG_$(SPL_)CLK) += clk/ +obj-$(CONFIG_$(SPL_)RAM) += ram/ ifdef CONFIG_SPL_BUILD
@@ -23,7 +24,6 @@ obj-$(CONFIG_SPL_DMA_SUPPORT) += dma/ obj-$(CONFIG_SPL_ETH_SUPPORT) += net/ obj-$(CONFIG_SPL_ETH_SUPPORT) += net/phy/ obj-$(CONFIG_SPL_USBETH_SUPPORT) += net/phy/ -obj-$(CONFIG_SPL_RAM) += ram/ obj-$(CONFIG_SPL_MUSB_NEW_SUPPORT) += usb/musb-new/ obj-$(CONFIG_SPL_USBETH_SUPPORT) += usb/gadget/ obj-$(CONFIG_SPL_WATCHDOG_SUPPORT) += watchdog/
@@ -45,7 +45,6 @@ obj-$(CONFIG_LED) += led/ obj-y += misc/ obj-y += pcmcia/ obj-y += dfu/ -obj-$(CONFIG_RAM) += ram/ obj-y += rtc/ obj-y += sound/ obj-y += tpm/
Signature · 1 line
1.9.1
PATCH 11/16 led: rename CONFIG_SPL_LED_SUPPORT to CONFIG_SPL_LED
In reply to Masahiro Yamada---
drivers/Makefile | 2 +- drivers/led/Kconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/Makefile +1 -1
@@ -13,7 +13,7 @@ obj-$(CONFIG_SYS_MVEBU_DDR_AXP) += ddr/marvell/axp/ obj-$(CONFIG_SPL_SERIAL_SUPPORT) += serial/ obj-$(CONFIG_SPL_SPI_FLASH_SUPPORT) += mtd/spi/ obj-$(CONFIG_SPL_SPI_SUPPORT) += spi/ -obj-$(CONFIG_SPL_LED_SUPPORT) += led/ +obj-$(CONFIG_SPL_LED) += led/ obj-$(CONFIG_SPL_POWER_SUPPORT) += power/ power/pmic/ obj-$(CONFIG_SPL_POWER_SUPPORT) += power/regulator/ obj-$(CONFIG_SPL_MTD_SUPPORT) += mtd/
drivers/led/Kconfig +1 -1
@@ -7,7 +7,7 @@ config LED can provide access to board-specific LEDs. Use of the device tree for configuration is encouraged. -config SPL_LED_SUPPORT +config SPL_LED bool "Enable LED support in SPL" depends on LED help
Signature · 1 line
1.9.1
PATCH 12/16 led: unify obj-$(CONFIG_LED) and obj-$(CONFIG_SPL_LED) entries
In reply to Masahiro Yamada---
drivers/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/Makefile +1 -2
@@ -1,5 +1,6 @@ obj-$(CONFIG_$(SPL_)DM) += core/ obj-$(CONFIG_$(SPL_)CLK) += clk/ +obj-$(CONFIG_$(SPL_)LED) += led/ obj-$(CONFIG_$(SPL_)RAM) += ram/ ifdef CONFIG_SPL_BUILD
@@ -13,7 +14,6 @@ obj-$(CONFIG_SYS_MVEBU_DDR_AXP) += ddr/marvell/axp/ obj-$(CONFIG_SPL_SERIAL_SUPPORT) += serial/ obj-$(CONFIG_SPL_SPI_FLASH_SUPPORT) += mtd/spi/ obj-$(CONFIG_SPL_SPI_SUPPORT) += spi/ -obj-$(CONFIG_SPL_LED) += led/ obj-$(CONFIG_SPL_POWER_SUPPORT) += power/ power/pmic/ obj-$(CONFIG_SPL_POWER_SUPPORT) += power/regulator/ obj-$(CONFIG_SPL_MTD_SUPPORT) += mtd/
@@ -41,7 +41,6 @@ obj-$(CONFIG_CPU) += cpu/ obj-y += crypto/ obj-$(CONFIG_FPGA) += fpga/ obj-y += hwmon/ -obj-$(CONFIG_LED) += led/ obj-y += misc/ obj-y += pcmcia/ obj-y += dfu/
Signature · 1 line
1.9.1
PATCH 13/16 dm: drop CONFIG_DM_DEVICE_REMOVE from uncmd list
In reply to Masahiro YamadaWe do not want to compile the DM remove code for SPL. Currently, we undef it in include/config_uncmd_spl.h (for C files) and in scripts/Makefile.uncmd_spl (for Makefiles). This is really ugly.
This commit demonstrates how we can deprecate those two files.
Use $(SPL_) for the entry in the Makfile and CONFIG_IS_ENABLED() in C files.
---
drivers/core/Makefile | 2 +- drivers/core/device.c | 6 +++--- drivers/core/uclass.c | 4 ++-- include/config_uncmd_spl.h | 1 - include/dm/device-internal.h | 10 +++++----- include/dm/uclass-internal.h | 4 ++-- scripts/Makefile.uncmd_spl | 2 -- 7 files changed, 13 insertions(+), 16 deletions(-)
drivers/core/Makefile +1 -1
@@ -9,7 +9,7 @@ obj-$(CONFIG_DEVRES) += devres.o ifndef CONFIG_SPL_BUILD obj-$(CONFIG_OF_CONTROL) += simple-bus.o endif -obj-$(CONFIG_DM_DEVICE_REMOVE) += device-remove.o +obj-$(CONFIG_$(SPL_)DM_DEVICE_REMOVE) += device-remove.o obj-$(CONFIG_DM) += dump.o obj-$(CONFIG_OF_CONTROL) += regmap.o obj-$(CONFIG_OF_CONTROL) += syscon-uclass.o
drivers/core/device.c +3 -3
@@ -140,7 +140,7 @@ int device_bind(struct udevice *parent, const struct driver *drv,return 0 ; fail_child_post_bind: -if (IS_ENABLED (CONFIG_DM_DEVICE_REMOVE )) { +if (CONFIG_IS_ENABLED (DM_DEVICE_REMOVE )) {if (drv->unbind && drv->unbind (dev)) {dm_warn ("unbind() method failed on dev '%s' on error path\n" , dev->name);
@@ -148,14 +148,14 @@ fail_child_post_bind: } fail_bind: -if (IS_ENABLED (CONFIG_DM_DEVICE_REMOVE )) { +if (CONFIG_IS_ENABLED (DM_DEVICE_REMOVE )) {if (uclass_unbind_device (dev)) {dm_warn ("Failed to unbind dev '%s' on error path\n" , dev->name); } } fail_uclass_bind: -if (IS_ENABLED (CONFIG_DM_DEVICE_REMOVE )) { +if (CONFIG_IS_ENABLED (DM_DEVICE_REMOVE )) {list_del (&dev->sibling_node);if (dev->flags &DM_FLAG_ALLOC_PARENT_PDATA ) {free (dev->parent_platdata);
drivers/core/uclass.c +2 -2
@@ -391,7 +391,7 @@ err:return ret; } -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED (DM_DEVICE_REMOVE )int uclass_unbind_device (struct udevice *dev) {struct uclass *uc;
@@ -471,7 +471,7 @@ int uclass_post_probe_device(struct udevice *dev)return 0 ; } -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED (DM_DEVICE_REMOVE )int uclass_pre_remove_device (struct udevice *dev) {struct uclass_driver *uc_drv;
include/config_uncmd_spl.h +0 -1
@@ -32,7 +32,6 @@#endif #undef CONFIG_DM_WARN -#undef CONFIG_DM_DEVICE_REMOVE#undef CONFIG_DM_SEQ_ALIAS#undef CONFIG_DM_STDIO
include/dm/device-internal.h +5 -5
@@ -87,7 +87,7 @@ int device_probe_child(struct udevice *dev, void *parent_priv);* @dev: Pointer to device to remove * @return 0 if OK, -ve on error (an error here is normally a very bad thing) */ -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED (DM_DEVICE_REMOVE )int device_remove (struct udevice *dev);#else static inline int device_remove (struct udevice *dev) {return 0 ; }
@@ -101,7 +101,7 @@ static inline int device_remove(struct udevice *dev) { return 0; }* @dev: Pointer to device to unbind * @return 0 if OK, -ve on error */ -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED (DM_DEVICE_REMOVE )int device_unbind (struct udevice *dev);#else static inline int device_unbind (struct udevice *dev) {return 0 ; }
@@ -112,7 +112,7 @@ static inline int device_unbind(struct udevice *dev) { return 0; }* @dev: The device whose children are to be removed * @return 0 on success, -ve on error */ -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED (DM_DEVICE_REMOVE )int device_remove_children (struct udevice *dev);#else static inline int device_remove_children (struct udevice *dev) {return 0 ; }
@@ -127,13 +127,13 @@ static inline int device_remove_children(struct udevice *dev) { return 0; }* @dev: The device that is to be stripped of its children * @return 0 on success, -ve on error */ -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED (DM_DEVICE_REMOVE )int device_unbind_children (struct udevice *dev);#else static inline int device_unbind_children (struct udevice *dev) {return 0 ; }#endif -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED (DM_DEVICE_REMOVE )void device_free (struct udevice *dev);#else static inline void device_free (struct udevice *dev) {}
include/dm/uclass-internal.h +2 -2
@@ -116,7 +116,7 @@ int uclass_bind_device(struct udevice *dev);* @dev: Pointer to the device * #return 0 on success, -ve on error */ -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED (DM_DEVICE_REMOVE )int uclass_unbind_device (struct udevice *dev);#else static inline int uclass_unbind_device (struct udevice *dev) {return 0 ; }
@@ -153,7 +153,7 @@ int uclass_post_probe_device(struct udevice *dev);* @dev: Pointer to the device * #return 0 on success, -ve on error */ -#ifdef CONFIG_DM_DEVICE_REMOVE +#if CONFIG_IS_ENABLED (DM_DEVICE_REMOVE )int uclass_pre_remove_device (struct udevice *dev);#else static inline int uclass_pre_remove_device (struct udevice *dev) {return 0 ; }
scripts/Makefile.uncmd_spl +0 -2
@@ -15,6 +15,4 @@ CONFIG_DM_SPI= CONFIG_DM_SPI_FLASH= endif -CONFIG_DM_DEVICE_REMOVE= - endif
Signature · 1 line
1.9.1
PATCH 14/16 fdtdec: fix OF_CONTROL switch
In reply to Masahiro YamadaThere is no case where defined(SPL_DISABLE_OF_CONTROL) is true.
---
include/fdtdec.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/fdtdec.h +1 -1
@@ -48,7 +48,7 @@ struct fdt_memory {#endif #ifdef CONFIG_OF_CONTROL -# if defined(CONFIG_SPL_BUILD ) && defined(SPL_DISABLE_OF_CONTROL ) +# if defined(CONFIG_SPL_BUILD ) && defined(CONFIG_SPL_DISABLE_OF_CONTROL )# define OF_CONTROL 0# else # define OF_CONTROL 1
Signature · 1 line
1.9.1
PATCH 15/16 of: flip CONFIG_SPL_DISABLE_OF_CONTROL into CONFIG_SPL_OF_CONTROL
In reply to Masahiro YamadaAs we discussed a couple of times, negative CONFIG options make our life difficult; CONFIG_SYS_NO_FLASH, CONFIG_SYS_DCACHE_OFF, ... and here is another one.
Now, there are actually two boards enabling OF_CONTROL on SPL:
- socfpga_arria5_defconfig
- socfpga_cyclone5_defconfig
But they were enabled by mistake.
Commit 47a785a9dd97 ("dts: Disable device tree for SPL on all boards") missed to add CONFIG_SPL_DISABLE_OF_CONTROL on those two boards. They were silently enabled with OF_CONTROL on SPL without notifying their maintainers.
After all, there exist no boards to support it in a justified process.
Before being too late, delete all the defines in defconfig files and 'select's in Kconfig, and invert the logic.
---
arch/arm/Kconfig | 4 ---- arch/arm/cpu/armv7/exynos/Kconfig | 8 -------- arch/arm/cpu/armv7/s5pc1xx/Kconfig | 2 -- common/spl/spl.c | 2 +- configs/am335x_boneblack_vboot_defconfig | 1 - configs/arches_defconfig | 1 - configs/canyonlands_defconfig | 1 - configs/galileo_defconfig | 1 - configs/microblaze-generic_defconfig | 1 - configs/odroid_defconfig | 1 - configs/origen_defconfig | 1 - configs/s5pc210_universal_defconfig | 1 - configs/socfpga_socrates_defconfig | 1 - configs/trats2_defconfig | 1 - configs/trats_defconfig | 1 - dts/Kconfig | 6 +++--- include/config_uncmd_spl.h | 2 +- include/fdtdec.h | 2 +- lib/Makefile | 8 +++++++- scripts/Makefile.uncmd_spl | 2 +- 20 files changed, 14 insertions(+), 33 deletions(-)
arch/arm/Kconfig +0 -4
@@ -647,7 +647,6 @@ config ARCH_SUNXI select DM_GPIO select OF_CONTROL select OF_SEPARATE - select SPL_DISABLE_OF_CONTROL config TARGET_SNOWBALL bool "Support snowball"
@@ -670,7 +669,6 @@ config ARCH_ZYNQ select CPU_V7 select SUPPORT_SPL select OF_CONTROL - select SPL_DISABLE_OF_CONTROL select DM select DM_SPI select DM_SPI_FLASH
@@ -684,7 +682,6 @@ config TEGRA select SUPPORT_SPL select SPL select OF_CONTROL - select SPL_DISABLE_OF_CONTROL select CPU_V7 select DM select DM_SPI_FLASH
@@ -806,7 +803,6 @@ config ARCH_UNIPHIER select DM select DM_SERIAL select DM_I2C - select SPL_DISABLE_OF_CONTROL help Support for UniPhier SoC family developed by Socionext Inc. (formerly, System LSI Business Division of Panasonic Corporation)
arch/arm/cpu/armv7/exynos/Kconfig +0 -8
@@ -8,7 +8,6 @@ config TARGET_SMDKV310 select SUPPORT_SPL bool "Exynos4210 SMDKV310 board" select OF_CONTROL - select SPL_DISABLE_OF_CONTROL config TARGET_TRATS bool "Exynos4210 Trats board"
@@ -29,7 +28,6 @@ config TARGET_ODROID config TARGET_ODROID_XU3 bool "Exynos5422 Odroid board" select OF_CONTROL - select SPL_DISABLE_OF_CONTROL config TARGET_ARNDALE bool "Exynos5250 Arndale board"
@@ -37,37 +35,31 @@ config TARGET_ARNDALE select CPU_V7_HAS_VIRT select SUPPORT_SPL select OF_CONTROL - select SPL_DISABLE_OF_CONTROL config TARGET_SMDK5250 bool "SMDK5250 board" select SUPPORT_SPL select OF_CONTROL - select SPL_DISABLE_OF_CONTROL config TARGET_SNOW bool "Snow board" select SUPPORT_SPL select OF_CONTROL - select SPL_DISABLE_OF_CONTROL config TARGET_SMDK5420 bool "SMDK5420 board" select SUPPORT_SPL select OF_CONTROL - select SPL_DISABLE_OF_CONTROL config TARGET_PEACH_PI bool "Peach Pi board" select SUPPORT_SPL select OF_CONTROL - select SPL_DISABLE_OF_CONTROL config TARGET_PEACH_PIT bool "Peach Pit board" select SUPPORT_SPL select OF_CONTROL - select SPL_DISABLE_OF_CONTROL endchoice
arch/arm/cpu/armv7/s5pc1xx/Kconfig +0 -2
@@ -7,12 +7,10 @@ choice config TARGET_S5P_GONI bool "S5P Goni board" select OF_CONTROL - select SPL_DISABLE_OF_CONTROL config TARGET_SMDKC100 bool "Support smdkc100 board" select OF_CONTROL - select SPL_DISABLE_OF_CONTROL endchoice
common/spl/spl.c +1 -1
@@ -158,7 +158,7 @@ int spl_init(void) gd->malloc_ptr =0 ;#endif if (IS_ENABLED (CONFIG_OF_CONTROL ) && - !IS_ENABLED (CONFIG_SPL_DISABLE_OF_CONTROL )) { +IS_ENABLED (CONFIG_SPL_OF_CONTROL )) { ret =fdtdec_setup ();if (ret) {debug ("fdtdec_setup() returned error %d\n" , ret);
configs/am335x_boneblack_vboot_defconfig +0 -1
@@ -12,5 +12,4 @@ CONFIG_SYS_EXTRA_OPTIONS="EMMC_BOOT,ENABLE_VBOOT" # CONFIG_CMD_FLASH is not set # CONFIG_CMD_SETEXPR is not set CONFIG_OF_CONTROL=y -CONFIG_SPL_DISABLE_OF_CONTROL=y CONFIG_SPI_FLASH=y
configs/arches_defconfig +0 -1
@@ -4,4 +4,3 @@ CONFIG_TARGET_CANYONLANDS=y CONFIG_ARCHES=y CONFIG_DEFAULT_DEVICE_TREE="arches" CONFIG_OF_CONTROL=y -CONFIG_SPL_DISABLE_OF_CONTROL=y
configs/canyonlands_defconfig +0 -1
@@ -4,5 +4,4 @@ CONFIG_TARGET_CANYONLANDS=y CONFIG_CANYONLANDS=y CONFIG_DEFAULT_DEVICE_TREE="canyonlands" CONFIG_OF_CONTROL=y -CONFIG_SPL_DISABLE_OF_CONTROL=y CONFIG_OF_EMBED=y
configs/galileo_defconfig +0 -1
@@ -11,7 +11,6 @@ CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y CONFIG_CMD_BOOTSTAGE=y CONFIG_OF_CONTROL=y -CONFIG_SPL_DISABLE_OF_CONTROL=y CONFIG_SPI_FLASH=y CONFIG_NETDEVICES=y CONFIG_ETH_DESIGNWARE=y
configs/microblaze-generic_defconfig +0 -1
@@ -4,5 +4,4 @@ CONFIG_DEFAULT_DEVICE_TREE="microblaze-generic" CONFIG_SPL=y # CONFIG_CMD_SETEXPR is not set CONFIG_OF_CONTROL=y -CONFIG_SPL_DISABLE_OF_CONTROL=y CONFIG_OF_EMBED=y
configs/odroid_defconfig +0 -1
@@ -11,7 +11,6 @@ CONFIG_DEFAULT_DEVICE_TREE="exynos4412-odroid" CONFIG_CMD_PMIC=y CONFIG_CMD_REGULATOR=y CONFIG_OF_CONTROL=y -CONFIG_SPL_DISABLE_OF_CONTROL=y CONFIG_DM_I2C=y CONFIG_DM_I2C_COMPAT=y CONFIG_DM_PMIC=y
configs/origen_defconfig +0 -1
@@ -10,6 +10,5 @@ CONFIG_SPL=y # CONFIG_CMD_NFS is not set # CONFIG_CMD_MISC is not set CONFIG_OF_CONTROL=y -CONFIG_SPL_DISABLE_OF_CONTROL=y CONFIG_USB=y CONFIG_DM_USB=y
configs/s5pc210_universal_defconfig +0 -1
@@ -9,6 +9,5 @@ CONFIG_DEFAULT_DEVICE_TREE="exynos4210-universal_c210" # CONFIG_CMD_NFS is not set # CONFIG_CMD_MISC is not set CONFIG_OF_CONTROL=y -CONFIG_SPL_DISABLE_OF_CONTROL=y CONFIG_USB=y CONFIG_DM_USB=y
configs/socfpga_socrates_defconfig +0 -1
@@ -6,7 +6,6 @@ CONFIG_SPL=y # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set CONFIG_OF_CONTROL=y -CONFIG_SPL_DISABLE_OF_CONTROL=y CONFIG_SPI_FLASH=y CONFIG_NETDEVICES=y CONFIG_ETH_DESIGNWARE=y
configs/trats2_defconfig +0 -1
@@ -10,6 +10,5 @@ CONFIG_DEFAULT_DEVICE_TREE="exynos4412-trats2" # CONFIG_CMD_NFS is not set # CONFIG_CMD_MISC is not set CONFIG_OF_CONTROL=y -CONFIG_SPL_DISABLE_OF_CONTROL=y CONFIG_USB=y CONFIG_DM_USB=y
configs/trats_defconfig +0 -1
@@ -9,6 +9,5 @@ CONFIG_DEFAULT_DEVICE_TREE="exynos4210-trats" # CONFIG_CMD_NFS is not set # CONFIG_CMD_MISC is not set CONFIG_OF_CONTROL=y -CONFIG_SPL_DISABLE_OF_CONTROL=y CONFIG_USB=y CONFIG_DM_USB=y
dts/Kconfig +3 -3
@@ -14,9 +14,9 @@ config OF_CONTROL This feature provides for run-time configuration of U-Boot via a flattened device tree. -config SPL_DISABLE_OF_CONTROL - bool "Disable run-time configuration via Device Tree in SPL" - depends on OF_CONTROL +config SPL_OF_CONTROL + bool "Enable run-time configuration via Device Tree in SPL" + depends on SPL && OF_CONTROL help Some boards use device tree in U-Boot but only have 4KB of SRAM which is not enough to support device tree. Enable this option to
include/config_uncmd_spl.h +1 -1
@@ -20,7 +20,7 @@#undef CONFIG_CMD_SNTP#undef CONFIG_CMD_TFTPPUT#undef CONFIG_CMD_TFTPSRV -#ifdef CONFIG_SPL_DISABLE_OF_CONTROL +#ifndef CONFIG_SPL_OF_CONTROL #undef CONFIG_OF_CONTROL#endif
include/fdtdec.h +1 -1
@@ -48,7 +48,7 @@ struct fdt_memory {#endif #ifdef CONFIG_OF_CONTROL -# if defined(CONFIG_SPL_BUILD ) && defined(CONFIG_SPL_DISABLE_OF_CONTROL ) +# if defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_SPL_OF_CONTROL )# define OF_CONTROL 0# else # define OF_CONTROL 1
lib/Makefile +7 -1
@@ -48,7 +48,13 @@ obj-$(CONFIG_BITREVERSE) += bitrev.o obj-y += list_sort.o endif -ifndef CONFIG_SPL_DISABLE_OF_CONTROL +ifndef CONFIG_SPL_BUILD +obj-$(CONFIG_OF_LIBFDT) += libfdt/ +obj-$(CONFIG_OF_CONTROL) += fdtdec_common.o +obj-$(CONFIG_OF_CONTROL) += fdtdec.o +endif + +ifdef CONFIG_SPL_OF_CONTROL obj-$(CONFIG_OF_LIBFDT) += libfdt/ obj-$(CONFIG_OF_CONTROL) += fdtdec_common.o obj-$(CONFIG_OF_CONTROL) += fdtdec.o
scripts/Makefile.uncmd_spl +1 -1
@@ -3,7 +3,7 @@ # TODO: Invent a better way ifdef CONFIG_SPL_BUILD -ifdef CONFIG_SPL_DISABLE_OF_CONTROL +ifndef CONFIG_SPL_OF_CONTROL CONFIG_OF_CONTROL= endif
Signature · 1 line
1.9.1
PATCH 16/16 of: clean up OF_CONTROL ifdef conditionals
In reply to Masahiro YamadaWe have flipped CONFIG_SPL_DISABLE_OF_CONTROL. We have cleansing devices, $(SPL_) and CONFIG_IS_ENABLED(), so we are ready to clear away the ugly logic in include/fdtdec.h:
#ifdef CONFIG_OF_CONTROL
# if defined(CONFIG_SPL_BUILD) && !defined(SPL_OF_CONTROL) # define OF_CONTROL 0 # else # define OF_CONTROL 1 # endif #else # define OF_CONTROL 0 #endif
Now CONFIG_IS_ENABLED(OF_CONTROL) is the substitute. It refers to CONFIG_OF_CONTROL for U-boot proper and CONFIG_SPL_OF_CONTROL for SPL.
Also, we no longer have to cancel CONFIG_OF_CONTROL in include/config_uncmd_spl.h and scripts/Makefile.spl.
---
arch/arm/cpu/armv7/am33xx/board.c | 2 +- arch/arm/cpu/armv7/exynos/pinmux.c | 2 +- arch/arm/include/asm/arch-exynos/dwmmc.h | 2 -- arch/arm/include/asm/arch-exynos/mipi_dsim.h | 2 -- arch/arm/include/asm/arch-exynos/mmc.h | 2 -- arch/arm/mach-tegra/clock.c | 4 ++-- arch/arm/mach-tegra/tegra114/clock.c | 4 ++-- arch/arm/mach-tegra/tegra124/clock.c | 4 ++-- arch/arm/mach-tegra/tegra20/clock.c | 4 ++-- arch/arm/mach-tegra/tegra30/clock.c | 4 ++-- board/xilinx/microblaze-generic/microblaze-generic.c | 2 +- board/xilinx/zynq/board.c | 2 +- common/cli.c | 4 ++-- common/spl/spl.c | 3 +-- drivers/core/Makefile | 6 +++--- drivers/core/device.c | 4 ++-- drivers/core/lists.c | 2 +- drivers/core/root.c | 6 +++--- drivers/gpio/mxc_gpio.c | 2 +- drivers/gpio/vybrid_gpio.c | 2 +- drivers/i2c/s3c24x0_i2c.c | 4 ++-- drivers/input/Makefile | 3 ++- drivers/input/tegra-kbc.c | 2 +- drivers/mmc/exynos_dw_mmc.c | 2 +- drivers/mmc/s5p_sdhci.c | 2 +- drivers/mmc/tegra_mmc.c | 2 +- drivers/mmc/zynq_sdhci.c | 2 +- drivers/mtd/spi/sf_probe.c | 6 +++--- drivers/net/xilinx_emaclite.c | 2 +- drivers/net/zynq_gem.c | 2 +- drivers/power/exynos-tmu.c | 2 +- drivers/power/pmic/pmic_max77686.c | 4 ++-- drivers/serial/ns16550.c | 2 +- drivers/serial/serial-uclass.c | 4 ++-- drivers/serial/serial_omap.c | 2 +- drivers/serial/serial_pl01x.c | 2 +- drivers/serial/serial_tegra.c | 4 ++-- drivers/serial/serial_uniphier.c | 2 +- drivers/serial/serial_zynq.c | 2 +- drivers/sound/max98095.c | 2 +- drivers/sound/wm8994.c | 2 +- drivers/tpm/tpm_tis_i2c.c | 2 +- drivers/video/exynos_dp.c | 4 ++-- drivers/video/exynos_dp_lowlevel.c | 2 +- drivers/video/exynos_fb.c | 8 ++++---- drivers/video/exynos_fimd.c | 4 ++-- drivers/video/exynos_mipi_dsi.c | 4 ++-- drivers/video/tegra.c | 2 +- include/cli.h | 2 +- include/config_uncmd_spl.h | 3 --- include/configs/microblaze-generic.h | 3 ++- include/configs/socfpga_common.h | 2 +- include/dm/device.h | 4 ++-- include/fdtdec.h | 10 ---------- lib/Makefile | 11 ++++------- lib/fdtdec.c | 4 ++-- scripts/Makefile.uncmd_spl | 3 --- 57 files changed, 81 insertions(+), 105 deletions(-)
arch/arm/cpu/armv7/am33xx/board.c +1 -1
@@ -61,7 +61,7 @@ U_BOOT_DEVICES(am33xx_gpios) = {#endif }; -# ifndef CONFIG_OF_CONTROL +# if !CONFIG_IS_ENABLED (OF_CONTROL )/* * TODO(sjg at chromium.org): When we can move SPL serial to DM, we can remove * the CONFIGs. At the same time, we should move this to the board files.
arch/arm/cpu/armv7/exynos/pinmux.c +1 -1
@@ -864,7 +864,7 @@ int exynos_pinmux_config(int peripheral, int flags)return -1 ; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )static int exynos4_pinmux_decode_periph_id (const void *blob,int node) {int err;
arch/arm/include/asm/arch-exynos/dwmmc.h +0 -2
@@ -27,7 +27,5 @@#define DWMCI_DIVRATIO_BIT 24#define DWMCI_DIVRATIO_MASK 0x7 -#ifdef CONFIG_OF_CONTROL int exynos_dwmmc_init (const void *blob); -#endif int exynos_dwmci_add_port (int index,u32 regbase,int bus_width,u32 clksel);
arch/arm/include/asm/arch-exynos/mipi_dsim.h +0 -2
@@ -374,7 +374,5 @@ void exynos_init_dsim_platform_data(vidinfo_t *vid);/* panel driver init based on mipi dsi interface */ void s6e8ax0_init (void ); -#ifdef CONFIG_OF_CONTROL extern int mipi_power (void ); -#endif #endif /* _DSIM_H */
arch/arm/include/asm/arch-exynos/mmc.h +0 -2
@@ -65,8 +65,6 @@ static inline int s5p_mmc_init(int index, int bus_width) return s5p_sdhci_init(base, index, bus_width); } -#ifdef CONFIG_OF_CONTROL int exynos_mmc_init (const void *blob); -#endif #endif
arch/arm/mach-tegra/clock.c +2 -2
@@ -563,7 +563,7 @@ void clock_ll_start_uart(enum periph_id periph_id)reset_set_enable (periph_id,0 ); } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )int clock_decode_periph_id (const void *blob,int node) {enum periph_id id;
@@ -578,7 +578,7 @@ int clock_decode_periph_id(const void *blob, int node)assert (clock_periph_id_isvalid (id)); return id; } -#endif /* CONFIG_OF_CONTROL */ +#endif /* CONFIG_IS_ENABLED(OF_CONTROL) */ int clock_verify (void ) {
arch/arm/mach-tegra/tegra114/clock.c +2 -2
@@ -561,7 +561,7 @@ void reset_set_enable(enum periph_id periph_id, int enable)writel (reg, reset); } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )/* * Convert a device tree clock ID to our peripheral ID. They are mostly * the same but we are very cautious so we check that a valid clock ID is
@@ -597,7 +597,7 @@ enum periph_id clk_id_to_periph_id(int clk_id) return clk_id; } } -#endif /* CONFIG_OF_CONTROL */ +#endif /* CONFIG_IS_ENABLED(OF_CONTROL) */ void clock_early_init (void ) {
arch/arm/mach-tegra/tegra124/clock.c +2 -2
@@ -700,7 +700,7 @@ void reset_set_enable(enum periph_id periph_id, int enable)writel (reg, reset); } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )/* * Convert a device tree clock ID to our peripheral ID. They are mostly * the same but we are very cautious so we check that a valid clock ID is
@@ -766,7 +766,7 @@ enum periph_id clk_id_to_periph_id(int clk_id) return clk_id; } } -#endif /* CONFIG_OF_CONTROL */ +#endif /* CONFIG_IS_ENABLED(OF_CONTROL) */ void clock_early_init (void ) {
arch/arm/mach-tegra/tegra20/clock.c +2 -2
@@ -475,7 +475,7 @@ void reset_set_enable(enum periph_id periph_id, int enable)writel (reg, reset); } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )/* * Convert a device tree clock ID to our peripheral ID. They are mostly * the same but we are very cautious so we check that a valid clock ID is
@@ -510,7 +510,7 @@ enum periph_id clk_id_to_periph_id(int clk_id) return clk_id; } } -#endif /* CONFIG_OF_CONTROL */ +#endif /* CONFIG_IS_ENABLED(OF_CONTROL) */ void clock_early_init (void ) {
arch/arm/mach-tegra/tegra30/clock.c +2 -2
@@ -541,7 +541,7 @@ void reset_set_enable(enum periph_id periph_id, int enable)writel (reg, reset); } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )/* * Convert a device tree clock ID to our peripheral ID. They are mostly * the same but we are very cautious so we check that a valid clock ID is
@@ -579,7 +579,7 @@ enum periph_id clk_id_to_periph_id(int clk_id) return clk_id; } } -#endif /* CONFIG_OF_CONTROL */ +#endif /* CONFIG_IS_ENABLED(OF_CONTROL) */ void clock_early_init (void ) {
board/xilinx/microblaze-generic/microblaze-generic.c +1 -1
@@ -24,7 +24,7 @@ DECLARE_GLOBAL_DATA_PTR;static int reset_pin =-1 ;#endif -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )ulong ram_base;void dram_init_banksize (void )
board/xilinx/zynq/board.c +1 -1
@@ -154,7 +154,7 @@ int board_mmc_init(bd_t *bd)int dram_init (void ) { -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )int node;fdt_addr_t addr;fdt_size_t size;
common/cli.c +2 -2
@@ -135,7 +135,7 @@ int do_run(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) }#endif -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )bool cli_process_fdt (const char **cmdp) {/* Allow the fdt to override the boot command */
@@ -196,7 +196,7 @@ err:*/ hang(); } -#endif /* CONFIG_OF_CONTROL */ +#endif /* CONFIG_IS_ENABLED(OF_CONTROL) */ void cli_loop (void ) {
common/spl/spl.c +1 -2
@@ -157,8 +157,7 @@ int spl_init(void) gd->malloc_limit =CONFIG_SYS_MALLOC_F_LEN ; gd->malloc_ptr =0 ;#endif -if (IS_ENABLED (CONFIG_OF_CONTROL ) && -IS_ENABLED (CONFIG_SPL_OF_CONTROL )) { +if (CONFIG_IS_ENABLED (OF_CONTROL )) { ret =fdtdec_setup ();if (ret) {debug ("fdtdec_setup() returned error %d\n" , ret);
drivers/core/Makefile +3 -3
@@ -7,9 +7,9 @@ obj-y += device.o lists.o root.o uclass.o util.o obj-$(CONFIG_DEVRES) += devres.o ifndef CONFIG_SPL_BUILD -obj-$(CONFIG_OF_CONTROL) += simple-bus.o +obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o endif obj-$(CONFIG_$(SPL_)DM_DEVICE_REMOVE) += device-remove.o obj-$(CONFIG_DM) += dump.o -obj-$(CONFIG_OF_CONTROL) += regmap.o -obj-$(CONFIG_OF_CONTROL) += syscon-uclass.o +obj-$(CONFIG_$(SPL_)OF_CONTROL) += regmap.o +obj-$(CONFIG_$(SPL_)OF_CONTROL) += syscon-uclass.o
drivers/core/device.c +2 -2
@@ -59,7 +59,7 @@ int device_bind(struct udevice *parent, const struct driver *drv, dev->seq =-1 ; dev->req_seq =-1 ; -if (IS_ENABLED (CONFIG_OF_CONTROL ) &&IS_ENABLED (CONFIG_DM_SEQ_ALIAS )) { +if (CONFIG_IS_ENABLED (OF_CONTROL ) &&IS_ENABLED (CONFIG_DM_SEQ_ALIAS )) {/* * Some devices, such as a SPI bus, I2C bus and serial ports * are numbered using aliases.
@@ -559,7 +559,7 @@ const char *dev_get_uclass_name(struct udevice *dev)return dev->uclass->uc_drv->name; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )fdt_addr_t dev_get_addr (struct udevice *dev) {return fdtdec_get_addr (gd->fdt_blob, dev->of_offset,"reg" );
drivers/core/lists.c +1 -1
@@ -99,7 +99,7 @@ int device_bind_driver_to_node(struct udevice *parent, const char *drv_name,return 0 ; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )/** * driver_check_compatible() - Check if a driver is compatible with this node *
drivers/core/root.c +3 -3
@@ -114,7 +114,7 @@ int dm_init(void) ret =device_bind_by_name (NULL , false, &root_info, &DM_ROOT_NON_CONST );if (ret)return ret; -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )DM_ROOT_NON_CONST ->of_offset =0 ;#endif ret =device_probe (DM_ROOT_NON_CONST );
@@ -145,7 +145,7 @@ int dm_scan_platdata(bool pre_reloc_only)return ret; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )int dm_scan_fdt_node (struct udevice *parent,const void *blob,int offset,bool pre_reloc_only) {
@@ -198,7 +198,7 @@ int dm_init_and_scan(bool pre_reloc_only)return ret; } -if (OF_CONTROL ) { +if (CONFIG_IS_ENABLED (OF_CONTROL )) { ret =dm_scan_fdt (gd->fdt_blob, pre_reloc_only);if (ret) {debug ("dm_scan_fdt() failed: %d\n" , ret);
drivers/gpio/mxc_gpio.c +1 -1
@@ -332,7 +332,7 @@ U_BOOT_DRIVER(gpio_mxc) = { .bind = mxc_gpio_bind, }; -#ifndef CONFIG_OF_CONTROL +#if !CONFIG_IS_ENABLED (OF_CONTROL )static const struct mxc_gpio_plat mxc_plat[] = { {0 , (struct gpio_regs *)GPIO1_BASE_ADDR }, { 1, (struct gpio_regs *)GPIO2_BASE_ADDR },
drivers/gpio/vybrid_gpio.c +1 -1
@@ -135,7 +135,7 @@ static int vybrid_gpio_bind(struct udevice *dev)return 0 ; } -#ifndef CONFIG_OF_CONTROL +#if !CONFIG_IS_ENABLED (OF_CONTROL )static const struct vybrid_gpio_platdata vybrid_gpio[] = { {0 ,GPIO0_BASE_ADDR ,"GPIO0 " }, {1, GPIO1_BASE_ADDR, "GPIO1 "},
drivers/i2c/s3c24x0_i2c.c +2 -2
@@ -1002,7 +1002,7 @@ static int s3c24x0_i2c_write(struct i2c_adapter *adap, uchar chip, uint addr, } } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )static void process_nodes (const void *blob,int node_list[],int count,int is_highspeed) {
@@ -1101,7 +1101,7 @@ int i2c_reset_port_fdt(const void *blob, int node) return 0; } -#endif /* CONFIG_OF_CONTROL */ +#endif /* CONFIG_IS_ENABLED(OF_CONTROL) */ #ifdef CONFIG_EXYNOS5 static void exynos_i2c_init (struct i2c_adapter *adap,int speed,int slaveaddr)
drivers/input/Makefile +2 -1
@@ -13,4 +13,5 @@ obj-y += keyboard.o pc_keyb.o obj-$(CONFIG_PS2MULT) += ps2mult.o ps2ser.o endif obj-y += input.o -obj-$(CONFIG_OF_CONTROL) += key_matrix.o + +obj-$(CONFIG_$(SPL_)OF_CONTROL) += key_matrix.o
drivers/input/tegra-kbc.c +1 -1
@@ -295,7 +295,7 @@ static int init_tegra_keyboard(struct stdio_dev *dev)if (config.created)return 0 ; -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )int node; node = fdtdec_next_compatible(gd->fdt_blob, 0,
drivers/mmc/exynos_dw_mmc.c +1 -1
@@ -158,7 +158,7 @@ int exynos_dwmci_add_port(int index, u32 regbase, int bus_width, u32 clksel)return exynos_dwmci_core_init (host, index); } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )static struct dwmci_host dwmci_host[DWMMC_MAX_CH_NUM ];static int do_dwmci_init (struct dwmci_host *host)
drivers/mmc/s5p_sdhci.c +1 -1
@@ -96,7 +96,7 @@ int s5p_sdhci_init(u32 regbase, int index, int bus_width)return s5p_sdhci_core_init (host); } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )struct sdhci_host sdhci_host[SDHCI_MAX_HOSTS ];static int do_sdhci_init (struct sdhci_host *host)
drivers/mmc/tegra_mmc.c +1 -1
@@ -21,7 +21,7 @@ DECLARE_GLOBAL_DATA_PTR;struct mmc_host mmc_host[CONFIG_SYS_MMC_MAX_DEVICE ]; -#ifndef CONFIG_OF_CONTROL +#if !CONFIG_IS_ENABLED (OF_CONTROL )#error "Please enable device tree support to use this driver"#endif
drivers/mmc/zynq_sdhci.c +1 -1
@@ -33,7 +33,7 @@ int zynq_sdhci_init(phys_addr_t regbase)return 0 ; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )int zynq_sdhci_of_init (const void *blob) {int offset =0 ;
drivers/mtd/spi/sf_probe.c +3 -3
@@ -266,7 +266,7 @@ static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode,return 0 ; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )int spi_flash_decode_fdt (const void *blob,struct spi_flash *flash) {fdt_addr_t addr;
@@ -292,7 +292,7 @@ int spi_flash_decode_fdt(const void *blob, struct spi_flash *flash) return 0; } -#endif /* CONFIG_OF_CONTROL */ +#endif /* CONFIG_IS_ENABLED(OF_CONTROL) */ /** * spi_flash_probe_slave() - Probe for a SPI flash device on a bus
@@ -347,7 +347,7 @@ int spi_flash_probe_slave(struct spi_slave *spi, struct spi_flash *flash) } } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )if (spi_flash_decode_fdt (gd->fdt_blob, flash)) {debug ("SF: FDT decode error\n" ); ret = -EINVAL ;
drivers/net/xilinx_emaclite.c +1 -1
@@ -361,7 +361,7 @@ int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr,return 1 ; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )int xilinx_emaclite_of_init (const void *blob) {int offset =0 ;
drivers/net/zynq_gem.c +1 -1
@@ -541,7 +541,7 @@ int zynq_gem_initialize(bd_t *bis, phys_addr_t base_addr,return 1 ; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )int zynq_gem_of_init (const void *blob) {int offset =0 ;
drivers/power/exynos-tmu.c +1 -1
@@ -180,7 +180,7 @@ enum tmu_status_t tmu_monitor(int *temp)*/ static int get_tmu_fdt_values (struct tmu_info *info,const void *blob) { -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )fdt_addr_t addr;int node;int error =0 ;
drivers/power/pmic/pmic_max77686.c +2 -2
@@ -256,7 +256,7 @@ int pmic_init(unsigned char bus) {static const char name[] ="MAX77686_PMIC" ;struct pmic *p =pmic_alloc (); -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )const void *blob = gd->fdt_blob;int node, parent, tmp;#endif
@@ -266,7 +266,7 @@ int pmic_init(unsigned char bus)return -ENOMEM ; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL ) node =fdtdec_next_compatible (blob,0 ,COMPAT_MAXIM_MAX77686_PMIC );if (node <0 ) {debug ("PMIC: No node for PMIC Chip in device tree\n" );
drivers/serial/ns16550.c +1 -1
@@ -357,7 +357,7 @@ int ns16550_serial_probe(struct udevice *dev)return 0 ; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )int ns16550_serial_ofdata_to_platdata (struct udevice *dev) {struct ns16550_platdata *plat = dev->platdata;
drivers/serial/serial-uclass.c +2 -2
@@ -32,7 +32,7 @@ static void serial_find_console_or_panic(void)struct udevice *dev;int node; -if (OF_CONTROL && gd->fdt_blob) { +if (CONFIG_IS_ENABLED (OF_CONTROL ) && gd->fdt_blob) {/* Check for a chosen console */ node =fdtdec_get_chosen_node (gd->fdt_blob,"stdout-path" );if (node <0 )
@@ -55,7 +55,7 @@ static void serial_find_console_or_panic(void) } } } -if (!SPL_BUILD || !OF_CONTROL || !gd->fdt_blob) { +if (!SPL_BUILD || !CONFIG_IS_ENABLED (OF_CONTROL ) || !gd->fdt_blob) {/* * Try to use CONFIG_CONS_INDEX if available (it is numbered * from 1!).
drivers/serial/serial_omap.c +1 -1
@@ -12,7 +12,7 @@DECLARE_GLOBAL_DATA_PTR ; -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )static const struct udevice_id omap_serial_ids[] = { { .compatible ="ti,omap3-uart" }, { }
drivers/serial/serial_pl01x.c +1 -1
@@ -353,7 +353,7 @@ static const struct dm_serial_ops pl01x_serial_ops = { .setbrg = pl01x_serial_setbrg, }; -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )static const struct udevice_id pl01x_serial_id[] ={ {.compatible ="arm,pl011" , .data =TYPE_PL011 }, {.compatible = "arm,pl010", .data = TYPE_PL010},
drivers/serial/serial_tegra.c +2 -2
@@ -9,7 +9,7 @@#include <ns16550.h> #include <serial.h> -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )static const struct udevice_id tegra_serial_ids[] = { { .compatible ="nvidia,tegra20-uart" }, { }
@@ -42,7 +42,7 @@ U_BOOT_DEVICE(ns16550_serial) = {U_BOOT_DRIVER (serial_ns16550) = { .name ="serial_tegra20" , .id =UCLASS_SERIAL , -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED(OF_CONTROL) .of_match = tegra_serial_ids, .ofdata_to_platdata = tegra_serial_ofdata_to_platdata, .platdata_auto_alloc_size = sizeof(struct ns16550_platdata),
drivers/serial/serial_uniphier.c +1 -1
@@ -113,7 +113,7 @@ static int uniphier_serial_remove(struct udevice *dev)return 0 ; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )static const struct udevice_id uniphier_uart_of_match[] = { { .compatible ="socionext,uniphier-uart" }, { /* sentinel */ }
drivers/serial/serial_zynq.c +1 -1
@@ -175,7 +175,7 @@ DECLARE_PSSERIAL_FUNCTIONS(1);static struct serial_device uart_zynq_serial1_device =INIT_PSSERIAL_STRUCTURE (1 ,"ttyPS1" ); -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )__weak struct serial_device *default_serial_console (void ) {const void *blob = gd->fdt_blob;
drivers/sound/max98095.c +1 -1
@@ -520,7 +520,7 @@ static int get_max98095_codec_values(struct sound_codec_info *pcodec_info, const void *blob) {int error =0 ; -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )enum fdt_compat_id compat;int node;int parent;
drivers/sound/wm8994.c +1 -1
@@ -814,7 +814,7 @@ static int get_codec_values(struct sound_codec_info *pcodec_info, const void *blob) {int error =0 ; -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )enum fdt_compat_id compat;int node;int parent;
drivers/tpm/tpm_tis_i2c.c +1 -1
@@ -585,7 +585,7 @@ static struct tpm_vendor_specific tpm_tis_i2c = {static enum i2c_chip_type tpm_vendor_chip_type (void ) { -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )const void *blob = gd->fdt_blob;if (fdtdec_next_compatible (blob,0 ,COMPAT_INFINEON_SLB9645_TPM ) >=0 )
drivers/video/exynos_dp.c +2 -2
@@ -851,7 +851,7 @@ static unsigned int exynos_dp_config_video(struct edp_device_info *edp_info)return ret; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )int exynos_dp_parse_dt (const void *blob,struct edp_device_info *edp_info) { unsigned int node = fdtdec_next_compatible(blob, 0,
@@ -918,7 +918,7 @@ unsigned int exynos_init_dp(void)return -EFAULT ; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )if (exynos_dp_parse_dt (gd->fdt_blob, edp_info))debug ("unable to parse DP DT node\n" );#else
drivers/video/exynos_dp_lowlevel.c +1 -1
@@ -22,7 +22,7 @@ struct exynos_dp *dp_regs;void exynos_dp_set_base_addr (void ) { -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )unsigned int node =fdtdec_next_compatible (gd->fdt_blob,0 ,COMPAT_SAMSUNG_EXYNOS5_DP );if (node <=0 )
drivers/video/exynos_fb.c +4 -4
@@ -28,7 +28,7 @@ DECLARE_GLOBAL_DATA_PTR;static unsigned int panel_width, panel_height; -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )vidinfo_t panel_info = {/* * Insert a value here so that we don't end up in the BSS
@@ -126,7 +126,7 @@ static void lcd_panel_on(vidinfo_t *vid)exynos_backlight_on (1 ); -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL ) node =fdtdec_next_compatible (gd->fdt_blob,0 ,COMPAT_SAMSUNG_EXYNOS_FIMD );if (node <=0 ) {
@@ -150,7 +150,7 @@ static void lcd_panel_on(vidinfo_t *vid)exynos_mipi_dsi_init (); } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )int exynos_lcd_early_init (const void *blob) {unsigned int node;
@@ -295,7 +295,7 @@ void lcd_ctrl_init(void *lcdbase)set_system_display_ctrl ();set_lcd_clk (); -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )#ifdef CONFIG_EXYNOS_MIPI_DSIM exynos_init_dsim_platform_data (&panel_info);#endif
drivers/video/exynos_fimd.c +2 -2
@@ -251,7 +251,7 @@ void exynos_fimd_window_off(unsigned int win_id)writel (cfg, &fimd_ctrl->winshmap); } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )/* * The reset value for FIMD SYSMMU register MMU_CTRL is 3 * on Exynos5420 and newer versions.
@@ -295,7 +295,7 @@ void exynos_fimd_lcd_init(vidinfo_t *vid) {unsigned int cfg =0 , rgb_mode;unsigned int offset; -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )unsigned int node; node = fdtdec_next_compatible(gd->fdt_blob,
drivers/video/exynos_mipi_dsi.c +2 -2
@@ -28,7 +28,7 @@DECLARE_GLOBAL_DATA_PTR ;static struct exynos_platform_mipi_dsim *dsim_pd; -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )static struct mipi_dsim_config dsim_config_dt;static struct exynos_platform_mipi_dsim dsim_platform_data_dt;static struct mipi_dsim_lcd_device mipi_lcd_device_dt;
@@ -249,7 +249,7 @@ void exynos_set_dsim_platform_data(struct exynos_platform_mipi_dsim *pd) dsim_pd = pd; } -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )int exynos_dsim_config_parse_dt (const void *blob) {int node;
drivers/video/tegra.c +1 -1
@@ -49,7 +49,7 @@ vidinfo_t panel_info = { .vl_col = -1, }; -#ifndef CONFIG_OF_CONTROL +#if !CONFIG_IS_ENABLED (OF_CONTROL )#error "You must enable CONFIG_OF_CONTROL to get Tegra LCD support"#endif
include/cli.h +1 -1
@@ -108,7 +108,7 @@ int cli_readline_into_buffer(const char *const prompt, char *buffer,*/ int cli_simple_parse_line (char *line,char *argv[]); -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )/** * cli_process_fdt() - process the boot command from the FDT *
include/config_uncmd_spl.h +0 -3
@@ -20,9 +20,6 @@#undef CONFIG_CMD_SNTP#undef CONFIG_CMD_TFTPPUT#undef CONFIG_CMD_TFTPSRV -#ifndef CONFIG_SPL_OF_CONTROL -#undef CONFIG_OF_CONTROL -#endif #ifndef CONFIG_SPL_DM #undef CONFIG_DM_SERIAL
include/configs/microblaze-generic.h +2 -1
@@ -106,7 +106,8 @@# define CONFIG_XILINX_TB_WATCHDOG #endif -#ifndef CONFIG_OF_CONTROL +#if !defined(CONFIG_OF_CONTROL ) || \ + (defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_SPL_OF_CONTROL ))/* ddr sdram - main memory */ # define CONFIG_SYS_SDRAM_BASE XILINX_RAM_START# define CONFIG_SYS_SDRAM_SIZE XILINX_RAM_SIZE
include/configs/socfpga_common.h +1 -1
@@ -198,7 +198,7 @@ unsigned int cm_get_qspi_controller_clk_hz(void);#define CONFIG_CMD_SF #endif -#ifdef CONFIG_OF_CONTROL /* DW SPI is controlled via DT */ +#if CONFIG_IS_ENABLED (OF_CONTROL )/* DW SPI is controlled via DT */ #define CONFIG_DESIGNWARE_SPI #define CONFIG_CMD_SPI #endif
include/dm/device.h +2 -2
@@ -122,11 +122,11 @@ struct udevice_id {ulong data; }; -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )#define of_match_ptr (_ptr) (_ptr)#else #define of_match_ptr (_ptr) NULL -#endif /* CONFIG_OF_CONTROL */ +#endif /* CONFIG_IS_ENABLED(OF_CONTROL) */ /** * struct driver - A driver for a feature or peripheral
include/fdtdec.h +0 -10
@@ -47,16 +47,6 @@ struct fdt_memory {#define SPL_BUILD 0#endif -#ifdef CONFIG_OF_CONTROL -# if defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_SPL_OF_CONTROL ) -# define OF_CONTROL 0 -# else -# define OF_CONTROL 1 -# endif -#else -# define OF_CONTROL 0 -#endif -/* * Information about a resource. start is the first address of the resource * and end is the last address (inclusive). The length of the resource will
lib/Makefile +4 -7
@@ -25,8 +25,8 @@ obj-y += crc8.o obj-y += crc16.o obj-$(CONFIG_ERRNO_STR) += errno_str.o obj-$(CONFIG_FIT) += fdtdec_common.o -obj-$(CONFIG_OF_CONTROL) += fdtdec_common.o -obj-$(CONFIG_OF_CONTROL) += fdtdec.o +obj-$(CONFIG_$(SPL_)OF_CONTROL) += fdtdec_common.o +obj-$(CONFIG_$(SPL_)OF_CONTROL) += fdtdec.o obj-$(CONFIG_TEST_FDTDEC) += fdtdec_test.o obj-$(CONFIG_GZIP) += gunzip.o obj-$(CONFIG_GZIP_COMPRESSED) += gzip.o
@@ -50,15 +50,12 @@ endif ifndef CONFIG_SPL_BUILD obj-$(CONFIG_OF_LIBFDT) += libfdt/ -obj-$(CONFIG_OF_CONTROL) += fdtdec_common.o -obj-$(CONFIG_OF_CONTROL) += fdtdec.o endif - ifdef CONFIG_SPL_OF_CONTROL obj-$(CONFIG_OF_LIBFDT) += libfdt/ -obj-$(CONFIG_OF_CONTROL) += fdtdec_common.o -obj-$(CONFIG_OF_CONTROL) += fdtdec.o endif +obj-$(CONFIG_$(SPL_)OF_CONTROL) += fdtdec_common.o +obj-$(CONFIG_$(SPL_)OF_CONTROL) += fdtdec.o ifdef CONFIG_SPL_BUILD obj-$(CONFIG_SPL_YMODEM_SUPPORT) += crc16.o
lib/fdtdec.c +2 -2
@@ -1138,7 +1138,7 @@ int fdtdec_decode_display_timing(const void *blob, int parent, int index,int fdtdec_setup (void ) { -#ifdef CONFIG_OF_CONTROL +#if CONFIG_IS_ENABLED (OF_CONTROL )# ifdef CONFIG_OF_EMBED /* Get a pointer to the FDT */ gd->fdt_blob = __dtb_dt_begin;
@@ -1149,7 +1149,7 @@ int fdtdec_setup(void)# else /* FDT is at end of image */ gd->fdt_blob = (ulong *)&_end; -#endif +# endif # elif defined(CONFIG_OF_HOSTFILE)if (sandbox_read_fdt_from_file ()) {puts ("Failed to read control FDT\n" );
scripts/Makefile.uncmd_spl +0 -3
@@ -3,9 +3,6 @@ # TODO: Invent a better way ifdef CONFIG_SPL_BUILD -ifndef CONFIG_SPL_OF_CONTROL -CONFIG_OF_CONTROL= -endif ifndef CONFIG_SPL_DM CONFIG_DM_SERIAL=
Signature · 1 line
1.9.1
PATCH 16/16 of: clean up OF_CONTROL ifdef conditionals
Hi!
Quoted 14 lines
We have flipped
CONFIG_SPL_DISABLE_OF_CONTROL. We have cleansing devices, $(SPL_) andCONFIG_IS_ENABLED(), so we are ready to clear away the ugly logic ininclude/fdtdec.h:#ifdef
CONFIG_OF_CONTROL# if defined(CONFIG_SPL_BUILD) && !defined(SPL_OF_CONTROL) # define OF_CONTROL 0 # else # define OF_CONTROL 1 # endif #else # define OF_CONTROL 0 #endif
Quoted 3 lines
Now
CONFIG_IS_ENABLED(OF_CONTROL)is the substitute. It refers toCONFIG_OF_CONTROLfor U-boot proper andCONFIG_SPL_OF_CONTROLfor SPL.
CONFIG_IS_ENABLED() is a bit too verbose. Could we get something shorter, like ENABLED()?
Pavel
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
PATCH 16/16 of: clean up OF_CONTROL ifdef conditionals
Quoted 16 lines · Pavel Machek
Hi!
Quoted 14 lines
We have flipped
CONFIG_SPL_DISABLE_OF_CONTROL. We have cleansing devices, $(SPL_) andCONFIG_IS_ENABLED(), so we are ready to clearaway the ugly logic in
include/fdtdec.h:
#ifdefCONFIG_OF_CONTROL# if defined(CONFIG_SPL_BUILD) && !defined(SPL_OF_CONTROL) # define OF_CONTROL 0 # else # define OF_CONTROL 1 # endif #else # define OF_CONTROL 0 #endif
Quoted 7 lines
Quoted 3 lines
Now
CONFIG_IS_ENABLED(OF_CONTROL)is the substitute. It refers toCONFIG_OF_CONTROLfor U-boot proper andCONFIG_SPL_OF_CONTROLfor SPL.
CONFIG_IS_ENABLED()is a bit too verbose. Could we get something shorter, likeENABLED()?
Pavel
Linux has an IS_ENABLED() macro to my knowledge.
Best regards,
Marek Vasut
PATCH 16/16 of: clean up OF_CONTROL ifdef conditionals
In reply to Pavel MachekHi Pavel,
2015-07-27 3:38 GMT+09:00 Pavel Machek <[email protected]>:
Quoted 16 lines
Hi!
Quoted 14 lines
We have flipped
CONFIG_SPL_DISABLE_OF_CONTROL. We have cleansing devices, $(SPL_) andCONFIG_IS_ENABLED(), so we are ready to clear away the ugly logic ininclude/fdtdec.h:#ifdef
CONFIG_OF_CONTROL# if defined(CONFIG_SPL_BUILD) && !defined(SPL_OF_CONTROL) # define OF_CONTROL 0 # else # define OF_CONTROL 1 # endif #else # define OF_CONTROL 0 #endif
Quoted 7 lines
Quoted 3 lines
Now
CONFIG_IS_ENABLED(OF_CONTROL)is the substitute. It refers toCONFIG_OF_CONTROLfor U-boot proper andCONFIG_SPL_OF_CONTROLfor SPL.
CONFIG_IS_ENABLED()is a bit too verbose. Could we get something shorter, likeENABLED()?
Pavel
The prefix "CONFIG_" is important because this must be searched by scripts/basic/fixdep.c
We are familiar with IS_ENABLED() which originates in Linux, so a new build-context-depending macro, CONFIG_IS_ENABLED() is reasonable naming, I believe.
Besides,
IS_ENABLED(CONFIG_OF_CONTROL) - beforeCONFIG_IS_ENABLED(OF_CONTROL) - after
Same length. Not too verbose.
Signature · 2 lines
Best Regards Masahiro Yamada
PATCH 16/16 of: clean up OF_CONTROL ifdef conditionals
Quoted 30 lines · Masahiro Yamada
Hi Pavel,
2015-07-27 3:38 GMT+09:00 Pavel Machek <[email protected]>:
Quoted 16 lines
Hi!
Quoted 14 lines
We have flipped
CONFIG_SPL_DISABLE_OF_CONTROL. We have cleansing devices, $(SPL_) andCONFIG_IS_ENABLED(), so we are ready to clear away the ugly logic ininclude/fdtdec.h:#ifdef
CONFIG_OF_CONTROL# if defined(CONFIG_SPL_BUILD) && !defined(SPL_OF_CONTROL) # define OF_CONTROL 0 # else # define OF_CONTROL 1 # endif #else # define OF_CONTROL 0 #endifQuoted 6 lines
Quoted 3 lines
Now
CONFIG_IS_ENABLED(OF_CONTROL)is the substitute. It refers toCONFIG_OF_CONTROLfor U-boot proper andCONFIG_SPL_OF_CONTROLfor SPL.
CONFIG_IS_ENABLED()is a bit too verbose. Could we get something shorter, likeENABLED()?The prefix "
CONFIG_" is important because this must be searched byscripts/basic/fixdep.c
Quoted 8 lines
We are familiar with
IS_ENABLED()which originates in Linux, so a new build-context-depending macro,CONFIG_IS_ENABLED()is reasonable naming, I believe.Besides,
IS_ENABLED(CONFIG_OF_CONTROL)- beforeCONFIG_IS_ENABLED(OF_CONTROL)- after
What about CONFIG_EN(OF_CONTROL), then? I don't think confusion is possible...
Pavel
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
PATCH 16/16 of: clean up OF_CONTROL ifdef conditionals
Quoted 34 lines · Pavel Machek
Quoted 33 lines · Masahiro Yamada
Hi Pavel,
2015-07-27 3:38 GMT+09:00 Pavel Machek <[email protected]>:
Quoted 16 lines
Hi!
Quoted 14 lines
We have flipped
CONFIG_SPL_DISABLE_OF_CONTROL. We have cleansing devices, $(SPL_) andCONFIG_IS_ENABLED(), so we are ready to clearaway the ugly logic in
include/fdtdec.h:
#ifdefCONFIG_OF_CONTROL# if defined(CONFIG_SPL_BUILD) && !defined(SPL_OF_CONTROL) # define OF_CONTROL 0 # else # define OF_CONTROL 1 # endif #else # define OF_CONTROL 0 #endifQuoted 6 lines
Quoted 3 lines
Now
CONFIG_IS_ENABLED(OF_CONTROL)is the substitute. It refers toCONFIG_OF_CONTROLfor U-boot proper andCONFIG_SPL_OF_CONTROLfor SPL.
CONFIG_IS_ENABLED()is a bit too verbose. Could we get something shorter, likeENABLED()?The prefix "
CONFIG_" is important because this must be searched byscripts/basic/fixdep.cWe are familiar with
IS_ENABLED()which originates in Linux, so a new build-context-depending macro,CONFIG_IS_ENABLED()is reasonable naming, I believe.
Quoted 7 lines
Quoted 4 lines
Besides,
IS_ENABLED(CONFIG_OF_CONTROL)- beforeCONFIG_IS_ENABLED(OF_CONTROL)- afterWhat about
CONFIG_EN(OF_CONTROL), then? I don't think confusion is possible...
I don't like CONFIG_EN(), sorry. It looks like shortening something just for the sake of shortening it, which is only confusing.
Best regards,
Marek Vasut
PATCH 16/16 of: clean up OF_CONTROL ifdef conditionals
2015-07-27 19:52 GMT+09:00 Marek Vasut <[email protected]>:
Quoted 37 lines · Pavel Machek
Quoted 36 lines · Masahiro Yamada
Quoted 35 lines
Hi Pavel,
2015-07-27 3:38 GMT+09:00 Pavel Machek <[email protected]>:
Quoted 16 lines
Hi!
Quoted 14 lines
We have flipped
CONFIG_SPL_DISABLE_OF_CONTROL. We have cleansing devices, $(SPL_) andCONFIG_IS_ENABLED(), so we are ready to clearaway the ugly logic in
include/fdtdec.h:
#ifdefCONFIG_OF_CONTROL# if defined(CONFIG_SPL_BUILD) && !defined(SPL_OF_CONTROL) # define OF_CONTROL 0 # else # define OF_CONTROL 1 # endif #else # define OF_CONTROL 0 #endifQuoted 6 lines
Quoted 3 lines
Now
CONFIG_IS_ENABLED(OF_CONTROL)is the substitute. It refers toCONFIG_OF_CONTROLfor U-boot proper andCONFIG_SPL_OF_CONTROLfor SPL.
CONFIG_IS_ENABLED()is a bit too verbose. Could we get something shorter, likeENABLED()?The prefix "
CONFIG_" is important because this must be searched byscripts/basic/fixdep.cWe are familiar with
IS_ENABLED()which originates in Linux, so a new build-context-depending macro,CONFIG_IS_ENABLED()is reasonable naming, I believe.Besides,
Quoted 8 lines
Quoted 5 lines
Quoted 2 lines
IS_ENABLED(CONFIG_OF_CONTROL)- beforeCONFIG_IS_ENABLED(OF_CONTROL)- afterWhat about
CONFIG_EN(OF_CONTROL), then? I don't think confusion is possible...I don't like
CONFIG_EN(), sorry. It looks like shortening something just for the sake of shortening it, which is only confusing.
Me neither.
Signature · 2 lines
Best Regards Masahiro Yamada
cover Add macros to ease our life with independent CONFIGs between U-Boot and SPL
In reply to Masahiro YamadaQuoted 13 lines · Masahiro Yamada
Refer to Simon's question, too:
http://lists.denx.de/pipermail/u-boot/2015-July/219598.htmlSince U-boot introduced SPL (not since
Kconfig),
enabling features for U-boot and SPL independently is always a PITA.- decide if each feature should be supported for SPL or not
- AddCONFIG_SPL_FRED_SUPPORTinto Makefile.spl
- Add #undefinclude/config_uncmd_spl.hto disable features
we do not want to support on SPL
- Add "ifdefCONFIG_SPL_BUILD... endif" here and there to adjust things
- Add "#ifdefCONFIG_SPL_BUILD... #endif" here and there to fix things up
Quoted 8 lines
Things are getting more and more crappy.
When U-boot switched to
Kconfig, first I introduced separate .config (.config, spl/.config, tpl/.config) to clean up them.
But it turned out to be a pain.So, I believe the current single .config is much better. But I also admit we need something systematic to subdue our PITA.
We had something systematic -- separate .configs, which could have been used to get rid of the CONFIG_SPL_FRED_SUPPORT stuff -- that you reverted (which was the only reason the uncmd stuff ever existed).
Yet somehow this is "much better". :-(
Quoted 46 lines
One possibility is to support "spl-y" in makefiles. (This idea is cribbed from barebox.)
obj-$(CONFIG_FOO) += foo.o spl-$(CONFIG_SPL_FOO) += foo.ois cleaner than
ifdef CONFIG_SPL_BUILD obj-$(CONFIG_SPL_FOO) += foo.o else obj-$(CONFIG_FOO) += foo.o endifIt is a nice improvement in makefile side.
But we still need to do something with C files.Another option is something like
CONFIG_FOO=yyn(yes for U-boot, yes for SPL, no for TPL)To achieve this, I think a big operation is needed in
Kconfigcore. I cannot do that.
(Of course, Patches are welcome if someone else can do that.)So, I was thinking of something different.
My idea was inspired by
IS_ENABLED()macro ininclude/linux/kconfig.h.Linux defines different macros for built-in and module, and it is possible to write
#if IS_ENABLED(CONFIG_FOO) ...#endif
instead of
#if defined(CONFIG_FOO) || defined(CONFIG_FOO_MODULE) ... #endifSo, I'd like to propose new macros to write code like
#if CONFIG_IS_ENABLED(FOO) ... #endif
Quoted 6 lines
instead of
#if (!defined(CONFIG_SPL_BUILD) && defined(CONFIG_FOO)) || \ (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_FOO)) ... #endif
With separate .config this is just:
#ifdef CONFIG_FOO
...#endif
-Scott