u-boot-2016/include
Masahiro Yamada e02ee2548a kconfig: switch to single .config configuration
When Kconfig for U-boot was examined, one of the biggest issues was
how to support multiple images (Normal, SPL, TPL).  There were
actually two options, "single .config" and "multiple .config".
After some discussions and thought experiments, I chose the latter,
i.e. to create ".config", "spl/.config", "tpl/.config" for Normal,
SPL, TPL, respectively.

It is true that the "multiple .config" strategy provided us the
maximum flexibility and helped to avoid duplicating CONFIGs among
Normal, SPL, TPL, but I have noticed some fatal problems:

[1] It is impossible to share CONFIG options across the images.
  If you change the configuration of Main image, you often have to
  adjust some SPL configurations correspondingly.  Currently, we
  cannot handle the dependencies between them.  It means one of the
  biggest advantages of Kconfig is lost.

[2] It is too painful to change both ".config" and "spl/.config".
  Sunxi guys started to work around this problem by creating a new
  configuration target.  Commit cbdd9a9737 (sunxi: kconfig: Add
  %_felconfig rule to enable FEL build of sunxi platforms.) added
  "make *_felconfig" to enable CONFIG_SPL_FEL on both images.
  Changing the configuration of multiple images in one command is a
  generic demand.  The current implementation cannot propose any
  good solution about this.

[3] Kconfig files are getting ugly and difficult to understand.
  Commit b724bd7d63 (dm: Kconfig: Move CONFIG_SYS_MALLOC_F_LEN to
  Kconfig) has sprinkled "if !SPL_BUILD" over the Kconfig files.

[4] The build system got more complicated than it should be.
  To adjust Linux-originated Kconfig to U-Boot, the helper script
  "scripts/multiconfig.sh" was introduced.  Writing a complicated
  text processor is a shell script sometimes caused problems.

Now I believe the "single .config" will serve us better.  With it,
all the problems above would go away.  Instead, we will have to add
some CONFIG_SPL_* (and CONFIG_TPL_*) options such as CONFIG_SPL_DM,
but we will not have much.  Anyway, this is what we do now in
scripts/Makefile.spl.

I admit my mistake with my apology and this commit switches to the
single .config configuration.

It is not so difficult to do that:

 - Remove unnecessary processings from scripts/multiconfig.sh
  This file will remain for a while to support the current defconfig
  format.  It will be removed after more cleanups are done.

 - Adjust some makefiles and Kconfigs

 - Add some entries to include/config_uncmd_spl.h and the new file
   scripts/Makefile.uncmd_spl.  Some CONFIG options that are not
   supported on SPL must be disabled because one .config is shared
   between SPL and U-Boot proper going forward.  I know this is not
   a beautiful solution and I think we can do better, but let's see
   how much we will have to describe them.

 - update doc/README.kconfig

More cleaning up patches will follow this.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2015-02-24 17:06:23 -05:00
..
andestech
asm-generic avr32: add generic board support 2015-02-17 22:54:38 +01:00
bedbug
configs OMAP3: igep0032: Fix regression due commit f3b4bc45. 2015-02-24 17:04:00 -05:00
cramfs
dm dm: Protect device_unbind() with CONFIG_DM_DEVICE_REMOVE 2015-02-19 07:30:31 -07:00
dt-bindings dt-bindings: Add Intel Quark MRC bindings 2015-02-06 12:07:44 -07:00
faraday
jffs2
linux Add linux/compiler-gcc5.h to fix builds with gcc5 2015-02-11 19:43:45 -05:00
lzma
mtd kbuild: force to define __UBOOT__ in all the C sources 2014-09-16 12:23:56 -04:00
pcmcia powerpc: mpc824x: remove MPC824X cpu support 2015-01-05 12:08:55 -05:00
power pmic:pfuz100 add switch mode and more registers 2015-02-10 12:48:49 +01:00
samsung samsung: board: enable support of multiple board types 2014-09-05 13:58:50 +09:00
synopsys
u-boot rsa: Use checksum algorithms from struct hash_algo 2015-01-29 17:09:59 -07:00
usb Merge branch 'master' of git://git.denx.de/u-boot-usb 2014-12-11 18:40:49 -05:00
zfs
.gitignore kconfig: switch to Kconfig 2014-07-30 08:48:03 -04:00
_exports.h Export redesign 2015-01-29 17:09:57 -07:00
aboot.h implement the Android sparse image format 2014-09-16 12:23:57 -04:00
ACEX1K.h
addr_map.h
aes.h
ahci.h ahci: introduce ahci_reset() 2015-01-05 15:13:46 -05:00
ali512x.h
altera.h arm: socfpga: fpga: Add SoCFPGA FPGA programming interface 2014-10-06 17:46:50 +02:00
ambapp.h
android_image.h
ansi.h
api_public.h
armcoremodule.h
asm-offsets.h
ata.h
atmel_hlcdc.h
atmel_lcd.h lcd: move platform-specific structs to their own headers 2015-02-10 13:24:10 +01:00
atmel_lcdc.h
atmel_mci.h MMC: atmel_mci: add configuration register definition 2014-08-01 20:01:22 +03:00
autoboot.h
axp152.h
axp209.h sunxi: gpio: Add support for gpio pins on the AXP209 pmic 2015-01-14 14:56:38 +01:00
axp221.h sunxi: rsb: Move rsb_set_device_mode() call to rsb_init() 2015-02-02 13:55:14 +01:00
bcd.h
bios_emul.h bios_emulator: Add vesa support and allow ROMs to be passed in as data 2014-11-25 07:11:17 -07:00
bitfield.h
bmp_layout.h
bootcount.h
bootm.h bootm: Export bootm_decomp_image() 2015-01-14 11:35:43 -05:00
bootretry.h
bootstage.h bootstage: Fix typos in the comment 2015-02-06 12:07:46 -07:00
bouncebuf.h
bus_vcxk.h
bzlib.h
cbfs.h
circbuf.h
cli.h cli: Export cli_simple_process_macros for use outside of cli_simple 2014-08-21 12:01:13 -04:00
cli_hush.h cli: hush: Adjust 'run' command to run each line of the env var 2014-10-27 11:03:33 -04:00
clk.h
cmd_spl.h
command.h cli: hush: Adjust 'run' command to run each line of the env var 2014-10-27 11:03:33 -04:00
common.h common/board_f: factor out reserve_stacks 2015-02-17 22:52:42 +01:00
common_timing_params.h
commproc.h mpc8xx: remove ESTEEM192E board support 2015-01-05 12:08:53 -05:00
compiler.h Provide option to avoid defining a custom version of uintptr_t. 2014-10-27 11:04:01 -04:00
config_cmd_all.h
config_cmd_default.h
config_defaults.h dm: Drop unused driver model config_defaults 2015-02-12 15:17:28 -07:00
config_distro_bootcmd.h config_distro_bootcmd.h: Enable CONFIG_CMD_PART 2015-02-16 12:41:41 -05:00
config_distro_defaults.h Correct single misspelling of "consitant" in source tree. 2014-10-27 17:54:11 -04:00
config_fallbacks.h dm: i2c: Add a uclass for I2C 2014-12-11 13:18:42 -07:00
config_phylib_all_drivers.h
config_uncmd_spl.h kconfig: switch to single .config configuration 2015-02-24 17:06:23 -05:00
cortina.h net/phy: Add support for CS4315/CS4340 PHY 2014-12-05 08:06:11 -08:00
cpsw.h drivers: net: cpsw: add support for using second port as ethernet 2014-07-25 15:21:05 -04:00
crc.h
cros_ec.h dm: cros_ec: Remove use of fdtdec GPIO support 2015-01-29 17:09:51 -07:00
cros_ec_message.h
dataflash.h
ddr_spd.h
debug_uart.h serial: Support an early UART for debugging 2015-02-19 06:20:25 -07:00
dfu.h usb, g_dnl: generalize DFU detach functions 2014-12-18 12:26:05 +01:00
dialog_pmic.h
div64.h
dm-demo.h dm: demo: Add a simple GPIO demonstration 2015-01-29 17:09:51 -07:00
dm.h
dm9000.h
dp83848.h
ds1722.h
ds4510.h
dtt.h
dwmmc.h mmc: exynos_dw_mmc: use the exynos specific data structure 2015-02-23 19:39:51 +02:00
e500.h
ec_commands.h
edid.h edid: Add struct and defines for cea681 extension blocks 2015-01-14 14:56:38 +01:00
elf.h elf: add prototype for valid_elf_image 2014-10-25 15:27:36 -04:00
env_attr.h
env_callback.h
env_default.h
env_flags.h
environment.h env_mmc: support env partition setup in runtime 2014-08-01 20:12:15 +03:00
errno.h lib: errno: introduce errno_str(): returns errno related message 2014-12-11 13:18:41 -07:00
exports.h Export redesign 2015-01-29 17:09:57 -07:00
ext4fs.h fs: API changes enabling extra parameter to return size of type loff_t 2014-11-23 06:49:04 -05:00
ext_common.h
exynos_lcd.h lcd: move platform-specific structs to their own headers 2015-02-10 13:24:10 +01:00
fat.h fs: API changes enabling extra parameter to return size of type loff_t 2014-11-23 06:49:04 -05:00
fb_mmc.h usb/gadget: fastboot: add eMMC support for flash command 2014-09-24 18:30:27 -04:00
fdt.h
fdt_simplefb.h lcd: dt: extract simplefb support 2015-02-10 13:31:26 +01:00
fdt_support.h cmd_fdt: Actually fix fdt command in sandbox 2015-02-17 20:19:16 -07:00
fdtdec.h fdtdec: Add compatible id and string for Intel Quark MRC 2015-02-06 12:07:43 -07:00
fis.h
flash.h mtd: Handle 29LV800BT 2014-11-19 08:48:41 +01:00
fm_eth.h net/fman: update 10GEC to fit new SoC 2014-12-05 08:06:15 -08:00
fpga.h fpga: Export fpga_get_desc for SPL 2015-01-21 10:25:02 +01:00
fs.h fs: Add command to retrieve the filesystem type 2015-01-29 13:36:54 -05:00
fsl_dcu_fb.h video: dcu: Add DCU driver support 2014-09-08 10:30:35 -07:00
fsl_ddr.h arm/ls1021a: Add workaround for DDR erratum A008378 2015-01-23 22:29:13 -06:00
fsl_ddr_dimm_params.h
fsl_ddr_sdram.h fsl/sleep: updated the deep sleep framework for QorIQ platforms 2014-12-11 09:41:18 -08:00
fsl_ddrc_version.h
fsl_diu_fb.h
fsl_esdhc.h esdhc: Add CONFIG_SYS_FSL_ESDHC_LE and CONFIG_SYS_FSL_ESDHC_BE macros 2014-09-08 10:30:33 -07:00
fsl_ifc.h
fsl_immap.h
fsl_mc.h
fsl_mdio.h net: Merge asm/fsl_enet.h into fsl_mdio.h 2014-09-08 10:30:33 -07:00
fsl_pmic.h
fsl_sec.h crypto/fsl: Add command for encapsulating/decapsulating blobs 2014-10-16 14:20:40 -07:00
fsl_usb.h drivers: usb: fsl: Check USB Erratum A007792 applicability 2014-12-11 09:41:11 -08:00
fuse.h
g_dnl.h usb, g_dnl: generalize DFU detach functions 2014-12-18 12:26:05 +01:00
gdsys_fpga.h mpc83xx: Add gdsys hrcon board 2014-11-19 08:48:42 +01:00
gt64120.h
hash.h Use hash.c in mkimage 2015-01-29 17:09:59 -07:00
hw_sha.h
hwconfig.h
i2c.h dm: i2c: Make API accessible even without CONFIG_DM 2015-02-12 10:35:33 -07:00
i2c_eeprom.h dm: Add a simple EEPROM driver 2014-12-11 13:18:43 -07:00
i2s.h
i8042.h
ide.h ide: add missing prototype 2014-10-25 15:27:37 -04:00
image.h Merge branch 'master' of git://git.denx.de/u-boot-dm 2015-01-30 09:24:42 -05:00
imx_thermal.h DM: thermal: Add imx thermal DM driver 2014-11-21 15:30:01 +01:00
initcall.h
input.h
inttypes.h Add some standard headers external code might need 2014-10-27 11:04:01 -04:00
iomux.h
ioports.h
iotrace.h
ipu_pixfmt.h
key_matrix.h
keyboard.h
kgdb.h
lattice.h
lcd.h lcd: dt: extract simplefb support 2015-02-10 13:31:26 +01:00
lcd_console.h lcd: refactor lcd console stuff into its own file 2015-01-10 17:53:59 +01:00
lcdvideo.h
ld9040.h
led-display.h
libata.h
libfdt.h fdt: Add a subnodes iterator macro 2014-10-22 16:56:41 -06:00
libfdt_env.h
libtizen.h
linker_lists.h linker_lists: fix misspellings 2015-01-29 13:38:40 -05:00
linux_logo.h
lmb.h
logbuff.h
lxt971a.h
lynxkdi.h
malloc.h dm: Split the simple malloc() implementation into its own file 2014-11-21 08:12:28 +01:00
mb862xx.h
mc9sdz60.h
mc13783.h
mc13892.h
mc34704.h
MCD_dma.h
MCD_progCheck.h
MCD_tasksInit.h
menu.h
micrel.h
mii_phy.h
miiphy.h
mipi_display.h include: Add header file with MIPI DSI constants from linux 3.18 2015-01-22 12:34:56 +01:00
mk48t59.h
mmc.h mmc: Implement SD/MMC versioning properly 2015-02-23 19:34:29 +02:00
mpc5xx.h
mpc5xxx.h
mpc5xxx_sdma.h
mpc8xx.h
mpc8xx_irq.h
mpc83xx.h
mpc85xx.h
mpc86xx.h
mpc106.h
mpc823_lcd.h lcd: move platform-specific structs to their own headers 2015-02-10 13:24:10 +01:00
mpc8260.h
mpc8260_irq.h
msc01.h
mtd_node.h
mv88e6352.h
mvebu_mmc.h MVEBUMMC : Speed up access time 2015-01-06 10:10:04 +02:00
mvmfp.h
nand.h spl, nand, atmel_nand: add erase one block function 2014-11-17 08:47:17 -05:00
net.h net: Use new checksum functions 2015-02-12 10:35:33 -07:00
netdev.h net: gem: Use phys_addr_t instead of int for addresses 2015-01-21 10:30:21 +01:00
nomadik.h
ns16550.h dm: ns16550: Use an address instead of a pointer for the uart base 2014-10-23 19:29:07 -06:00
ns87308.h
onenand_uboot.h
os.h sandbox: Prepare API change for files greater than 2GB 2014-11-23 06:49:04 -05:00
palmas.h
parade.h exynos5420: fix compilation without parade video 2014-12-22 20:38:27 +09:00
part.h fastboot: handle flash write to GPT partitions 2014-12-18 12:26:06 +01:00
part_efi.h
pc_keyb.h
pca953x.h
pca9564.h
pca9698.h
pci.h pci: Add a function to find a device by class 2015-02-05 22:16:42 -07:00
pci_gt64120.h
pci_ids.h x86: pci: Add pci ids for Quark SoC 2015-02-06 12:07:45 -07:00
pci_msc01.h
pci_rom.h x86: video: Allow video ROM execution to fall back to the other method 2015-02-05 22:16:43 -07:00
pcmcia.h mpc8260: remove atc board support 2015-01-05 12:08:55 -05:00
phy.h phylib: add support for aquantia PHYs 2015-01-16 09:32:11 -08:00
physmem.h
post.h
ppc_asm.tmpl powerpc: mpc824x: remove MPC824X cpu support 2015-01-05 12:08:55 -05:00
ppc_defs.h
ps2mult.h
pwm.h
pxa_lcd.h lcd: move platform-specific structs to their own headers 2015-02-10 13:24:10 +01:00
radeon.h
reiserfs.h
rtc.h x86: rtc: mc146818: Add helpers to read/write CMOS RAM 2015-01-24 06:13:44 -07:00
s6e63d6.h
s_record.h
SA-1100.h
sandboxblockdev.h
sandboxfs.h fs: API changes enabling extra parameter to return size of type loff_t 2014-11-23 06:49:04 -05:00
sata.h cmd_sata: implement sata stop command 2014-11-24 12:00:00 +01:00
scf0403_lcd.h
scsi.h
sdhci.h dm: mmc: Remove use of fdtdec GPIO support 2015-01-29 17:09:52 -07:00
search.h
sed156x.h
sed13806.h
serial.h serial: add prototypes for init functions 2014-11-04 15:01:11 -05:00
sh_pfc.h
sh_tmu.h sh: move CONFIG_{SH2, SH2A, SH3, SH4} to Kconfig 2014-11-13 08:47:58 +09:00
sja1000.h
slre.h
sm501.h
smsc_lpc47m.h x86: Add a simple superio driver for SMSC LPC47M 2014-12-13 22:32:05 -07:00
sound.h
sparse_defs.h implement the Android sparse image format 2014-09-16 12:23:57 -04:00
sparse_format.h add header for Android sparse image format 2014-08-21 12:01:29 -04:00
spartan2.h fpga: xilinx: spartan2: Setup NULL fpga_op without driver 2015-01-21 10:25:02 +01:00
spartan3.h fpga: xilinx: spartan3: Setup NULL fpga_op without driver 2015-01-21 10:25:02 +01:00
spd.h
spd_sdram.h
spi.h dm: spi: Move slave details to child platdata 2015-01-29 17:09:56 -07:00
spi_flash.h dm: sf: Add a uclass for SPI flash 2014-10-22 10:36:50 -06:00
spl.h spl, nand: add option to boot raw u-boot.bin image only 2014-11-17 08:47:17 -05:00
splash.h Merge branch 'master' of git://git.denx.de/u-boot-video 2015-02-10 10:41:54 -05:00
status_led.h mpc8xx: remove IVMS8, IVML24 board support 2015-01-05 12:08:52 -05:00
stdio_dev.h stdio: Add force parameter to stdio_deregister 2014-10-06 14:50:43 +02:00
stdlib.h Add some standard headers external code might need 2014-10-27 11:04:01 -04:00
stratixII.h
sx151x.h
sym53c8xx.h
systemace.h microblaze: remove #ident directive to fix build error 2014-09-10 10:26:58 +02:00
tca642x.h
tegra-kbc.h
thermal.h DM: thermal: Add imx thermal DM driver 2014-11-21 15:30:01 +01:00
thor.h
timestamp.h
tis.h
tmu.h
tpm.h
tps6586x.h dm: i2c: tegra: Convert to driver model 2014-12-11 13:18:44 -07:00
trace.h common/board_f.c: fix compile error when tracing disabled 2015-01-12 09:38:46 -05:00
tsec.h net: tsec: Remove tx snooping support from LS1 2014-09-08 10:30:35 -07:00
tsi108.h
tsi148.h
twl4030.h twl4030: device-index-specific MMC power initializations, common ramp-up delay 2014-12-04 11:04:40 -05:00
twl6030.h
tws.h
ubi_uboot.h ubi: enable error reporting in initialization 2014-11-19 07:54:40 +01:00
universe.h
usb.h musb-new: Add interrupt queue support 2015-01-18 12:31:36 +01:00
usb_cdc_acm.h
usb_defs.h
usb_ether.h usb: eth: add ASIX AX88179 DRIVER 2014-12-31 19:10:13 +01:00
usb_mass_storage.h
usbdescriptors.h
usbdevice.h
usbroothubdes.h
uuid.h
vbe.h bios_emulator: Add some VESA interface debugging 2015-01-23 17:24:16 -07:00
version.h
video.h
video_easylogo.h
video_fb.h pci: Add general support for execution of video ROMs 2014-11-25 07:11:14 -07:00
video_font.h
video_font_4x6.h
video_font_data.h
video_logo.h
virtex2.h fpga: xilinx: virtex2: Fix macro indentation 2015-01-21 10:25:03 +01:00
vsc7385.h
vsc9953.h net/vsc9953: Add driver for Vitesse VSC9953 L2 Switch IP 2015-01-16 09:32:38 -08:00
vsprintf.h
vxworks.h
w83c553f.h
watchdog.h support blackfin board initialization in generic board_f 2014-08-07 15:15:19 +08:00
xilinx.h
xyzModem.h
zfs_common.h
zynqpl.h fpga: zynqpl: Add support for zc7035 2015-01-21 10:25:53 +01:00