Browse Source

Merge branch 'master' of git://git.denx.de/u-boot-arm

Conflicts:
	boards.cfg

Signed-off-by: Stefano Babic <sbabic@denx.de>
Stefano Babic 10 years ago
parent
commit
e82abaeb7f
100 changed files with 3760 additions and 222 deletions
  1. 1 2
      .gitignore
  2. 65 0
      Kconfig
  3. 22 6
      MAKEALL
  4. 56 64
      Makefile
  5. 18 11
      README
  6. 66 0
      arch/Kconfig
  7. 29 0
      arch/arc/Kconfig
  8. 1 1
      arch/arc/config.mk
  9. 1002 0
      arch/arm/Kconfig
  10. 1 1
      arch/arm/config.mk
  11. 9 0
      arch/arm/cpu/arm926ejs/kirkwood/cpu.c
  12. 3 0
      arch/arm/cpu/armv7/sunxi/Makefile
  13. 5 0
      arch/arm/cpu/armv7/sunxi/board.c
  14. 4 0
      arch/arm/cpu/armv7/sunxi/clock_sun4i.c
  15. 162 0
      arch/arm/cpu/armv7/sunxi/psci.S
  16. 4 0
      arch/arm/include/asm/arch-fsl-lsch3/config.h
  17. 1 0
      arch/arm/include/asm/arch-kirkwood/kirkwood.h
  18. 2 2
      arch/arm/include/asm/arch-s3c24x0/s3c2410.h
  19. 2 2
      arch/arm/include/asm/arch-s3c24x0/s3c2440.h
  20. 12 7
      arch/arm/include/asm/arch-s3c24x0/s3c24x0.h
  21. 11 4
      arch/arm/include/asm/arch-sunxi/clock_sun4i.h
  22. 2 0
      arch/arm/include/asm/config.h
  23. 1 0
      arch/arm/include/asm/io.h
  24. 12 0
      arch/arm/lib/crt0.S
  25. 51 0
      arch/avr32/Kconfig
  26. 0 1
      arch/avr32/config.mk
  27. 150 0
      arch/blackfin/Kconfig
  28. 0 1
      arch/blackfin/config.mk
  29. 98 0
      arch/m68k/Kconfig
  30. 1 1
      arch/m68k/config.mk
  31. 8 8
      arch/m68k/cpu/mcf52x2/config.mk
  32. 3 3
      arch/m68k/cpu/mcf532x/config.mk
  33. 2 2
      arch/m68k/cpu/mcf5445x/config.mk
  34. 18 0
      arch/microblaze/Kconfig
  35. 37 0
      arch/mips/Kconfig
  36. 1 1
      arch/mips/config.mk
  37. 26 0
      arch/nds32/Kconfig
  38. 1 1
      arch/nds32/config.mk
  39. 26 0
      arch/nios2/Kconfig
  40. 1 1
      arch/nios2/config.mk
  41. 18 0
      arch/openrisc/Kconfig
  42. 1 1
      arch/openrisc/config.mk
  43. 58 0
      arch/powerpc/Kconfig
  44. 1 1
      arch/powerpc/config.mk
  45. 49 0
      arch/powerpc/cpu/74xx_7xx/Kconfig
  46. 1 1
      arch/powerpc/cpu/74xx_7xx/config.mk
  47. 34 0
      arch/powerpc/cpu/mpc512x/Kconfig
  48. 1 1
      arch/powerpc/cpu/mpc512x/config.mk
  49. 22 0
      arch/powerpc/cpu/mpc5xx/Kconfig
  50. 1 1
      arch/powerpc/cpu/mpc5xx/config.mk
  51. 154 0
      arch/powerpc/cpu/mpc5xxx/Kconfig
  52. 1 2
      arch/powerpc/cpu/mpc5xxx/config.mk
  53. 49 0
      arch/powerpc/cpu/mpc824x/Kconfig
  54. 1 1
      arch/powerpc/cpu/mpc824x/config.mk
  55. 94 0
      arch/powerpc/cpu/mpc8260/Kconfig
  56. 1 1
      arch/powerpc/cpu/mpc8260/config.mk
  57. 100 0
      arch/powerpc/cpu/mpc83xx/Kconfig
  58. 1 1
      arch/powerpc/cpu/mpc83xx/config.mk
  59. 1 1
      arch/powerpc/cpu/mpc83xx/cpu.c
  60. 1 1
      arch/powerpc/cpu/mpc83xx/fdt.c
  61. 190 0
      arch/powerpc/cpu/mpc85xx/Kconfig
  62. 1 1
      arch/powerpc/cpu/mpc85xx/config.mk
  63. 8 0
      arch/powerpc/cpu/mpc85xx/cpu.c
  64. 89 77
      arch/powerpc/cpu/mpc85xx/cpu_init.c
  65. 47 0
      arch/powerpc/cpu/mpc85xx/fdt.c
  66. 1 1
      arch/powerpc/cpu/mpc85xx/interrupts.c
  67. 30 0
      arch/powerpc/cpu/mpc86xx/Kconfig
  68. 1 1
      arch/powerpc/cpu/mpc86xx/config.mk
  69. 160 0
      arch/powerpc/cpu/mpc8xx/Kconfig
  70. 1 1
      arch/powerpc/cpu/mpc8xx/config.mk
  71. 0 1
      arch/powerpc/cpu/mpc8xxx/cpu.c
  72. 322 0
      arch/powerpc/cpu/ppc4xx/Kconfig
  73. 3 3
      arch/powerpc/cpu/ppc4xx/config.mk
  74. 2 2
      arch/powerpc/cpu/ppc4xx/cpu_init.c
  75. 6 0
      arch/powerpc/include/asm/cache.h
  76. 6 0
      arch/powerpc/include/asm/immap_85xx.h
  77. 3 0
      arch/powerpc/include/asm/io.h
  78. 5 1
      arch/powerpc/include/asm/processor.h
  79. 8 0
      arch/powerpc/lib/board.c
  80. 16 0
      arch/sandbox/Kconfig
  81. 1 1
      arch/sandbox/config.mk
  82. 98 0
      arch/sh/Kconfig
  83. 34 0
      arch/sparc/Kconfig
  84. 1 1
      arch/sparc/config.mk
  85. 18 0
      arch/x86/Kconfig
  86. 1 1
      arch/x86/cpu/config.mk
  87. 23 0
      board/8dtech/eco5pk/Kconfig
  88. 6 0
      board/8dtech/eco5pk/MAINTAINERS
  89. 23 0
      board/AndesTech/adp-ag101/Kconfig
  90. 6 0
      board/AndesTech/adp-ag101/MAINTAINERS
  91. 23 0
      board/AndesTech/adp-ag101p/Kconfig
  92. 6 0
      board/AndesTech/adp-ag101p/MAINTAINERS
  93. 23 0
      board/AndesTech/adp-ag102/Kconfig
  94. 6 0
      board/AndesTech/adp-ag102/MAINTAINERS
  95. 23 0
      board/Barix/ipam390/Kconfig
  96. 6 0
      board/Barix/ipam390/MAINTAINERS
  97. 23 0
      board/BuR/kwb/Kconfig
  98. 6 0
      board/BuR/kwb/MAINTAINERS
  99. 23 0
      board/BuR/tseries/Kconfig
  100. 8 0
      board/BuR/tseries/MAINTAINERS

+ 1 - 2
.gitignore

@@ -34,6 +34,7 @@
 /SPL
 /System.map
 /u-boot*
+/boards.cfg
 
 #
 # git files that we don't want to ignore even it they are dot-files
@@ -53,8 +54,6 @@
 #
 /include/config/
 /include/generated/
-/include/spl-autoconf.mk
-/include/tpl-autoconf.mk
 
 # stgit generated dirs
 patches-*

+ 65 - 0
Kconfig

@@ -0,0 +1,65 @@
+#
+# For a description of the syntax of this configuration file,
+# see Documentation/kbuild/kconfig-language.txt.
+#
+mainmenu "U-Boot $UBOOTVERSION Configuration"
+
+config UBOOTVERSION
+	string
+	option env="UBOOTVERSION"
+
+config KCONFIG_OBJDIR
+	string
+	option env="KCONFIG_OBJDIR"
+
+config DEFCONFIG_LIST
+	string
+	depends on !SPL_BUILD
+	option defconfig_list
+	default "configs/sandbox_defconfig"
+
+menu "General setup"
+
+config SPL_BUILD
+	bool
+	depends on $KCONFIG_OBJDIR="spl" || $KCONFIG_OBJDIR="tpl"
+	default y
+
+config TPL_BUILD
+	bool
+	depends on $KCONFIG_OBJDIR="tpl"
+	default y
+
+config SPL
+	bool
+	prompt "Enable SPL" if !SPL_BUILD
+	default y if SPL_BUILD
+	help
+	  If you want to build SPL as well as the normal image, say Y.
+
+config TPL
+	bool
+	depends on SPL
+	prompt "Enable TPL" if !SPL_BUILD
+	default y if TPL_BUILD
+	default n
+	help
+	  If you want to build TPL as well as the normal image and SPL, say Y.
+
+config SYS_EXTRA_OPTIONS
+	string "Extra Options (DEPRECATED)"
+	depends on !SPL_BUILD
+	help
+	  The old configuration infrastructure (= mkconfig + boards.cfg)
+	  provided the extra options field. It you have something like
+	  "HAS_BAR,BAZ=64", the optional options
+	    #define CONFIG_HAS
+	    #define CONFIG_BAZ	64
+	  will be defined in include/config.h.
+	  This option was prepared for the smooth migration from the old
+	  configuration to Kconfig. Since this option will be removed sometime,
+	  new boards should not use this option.
+
+endmenu		# General setup
+
+source "arch/Kconfig"

+ 22 - 6
MAKEALL

@@ -162,9 +162,23 @@ while true ; do
 		echo "Internal error!" >&2 ; exit 1 ;;
 	esac
 done
+
+GNU_MAKE=$(scripts/show-gnu-make) || {
+	echo "GNU Make not found" >&2
+	exit 1
+}
+
 # echo "Remaining arguments:"
 # for arg do echo '--> '"\`$arg'" ; done
 
+if [ ! -r boards.cfg ]; then
+	echo "Could not find boards.cfg"
+	tools/genboardscfg.py || {
+		echo "Failed to generate boards.cfg" >&2
+		exit 1
+	}
+fi
+
 FILTER="\$1 !~ /^#/"
 [ "$opt_a" ] && FILTER="${FILTER} && $opt_a"
 [ "$opt_c" ] && FILTER="${FILTER} && $opt_c"
@@ -506,9 +520,9 @@ get_target_location() {
 
 	set ${line}
 
-	CONFIG_NAME="${7%_config}"
+	CONFIG_NAME="${7%_defconfig}"
 
-	[ "${BOARD_NAME}" ] || BOARD_NAME="${7%_config}"
+	[ "${BOARD_NAME}" ] || BOARD_NAME="${7%_defconfig}"
 
 	if [ $# -gt 5 ]; then
 		if [ "$6" = "-" ] ; then
@@ -633,11 +647,11 @@ build_target() {
 	target_arch=$(get_target_arch ${target})
 	eval cross_toolchain=\$CROSS_COMPILE_`echo $target_arch | tr '[:lower:]' '[:upper:]'`
 	if [ "${cross_toolchain}" ] ; then
-	    MAKE="make CROSS_COMPILE=${cross_toolchain}"
+	    MAKE="$GNU_MAKE CROSS_COMPILE=${cross_toolchain}"
 	elif [ "${CROSS_COMPILE}" ] ; then
-	    MAKE="make CROSS_COMPILE=${CROSS_COMPILE}"
+	    MAKE="$GNU_MAKE CROSS_COMPILE=${CROSS_COMPILE}"
 	else
-	    MAKE=make
+	    MAKE=$GNU_MAKE
 	fi
 
 	if [  "${output_dir}" != "." ] ; then
@@ -645,7 +659,9 @@ build_target() {
 	fi
 
 	${MAKE} distclean >/dev/null
-	${MAKE} -s ${target}_config
+
+	echo "Building ${target} board..."
+	${MAKE} -s ${target}_defconfig >/dev/null
 
 	${MAKE} ${JOBS} ${CHECK} all \
 		>${LOG_DIR}/$target.MAKELOG 2> ${LOG_DIR}/$target.ERR

+ 56 - 64
Makefile

@@ -6,9 +6,9 @@
 #
 
 VERSION = 2014
-PATCHLEVEL = 07
+PATCHLEVEL = 10
 SUBLEVEL =
-EXTRAVERSION =
+EXTRAVERSION = -rc1
 NAME =
 
 # *DOCUMENTATION*
@@ -166,9 +166,6 @@ VPATH		:= $(srctree)$(if $(KBUILD_EXTMOD),:$(KBUILD_EXTMOD))
 
 export srctree objtree VPATH
 
-MKCONFIG	:= $(srctree)/mkconfig
-export MKCONFIG
-
 # Make sure CDPATH settings don't interfere
 unexport CDPATH
 
@@ -189,9 +186,6 @@ HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \
 
 export	HOSTARCH HOSTOS
 
-# Deal with colliding definitions from tcsh etc.
-VENDOR=
-
 #########################################################################
 
 # set default to nothing for native builds
@@ -199,6 +193,9 @@ ifeq ($(HOSTARCH),$(ARCH))
 CROSS_COMPILE ?=
 endif
 
+KCONFIG_CONFIG	?= .config
+export KCONFIG_CONFIG
+
 # SHELL used by kbuild
 CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
 	  else if [ -x /bin/bash ]; then echo /bin/bash; \
@@ -341,6 +338,7 @@ OBJCOPY		= $(CROSS_COMPILE)objcopy
 OBJDUMP		= $(CROSS_COMPILE)objdump
 AWK		= awk
 PERL		= perl
+PYTHON		= python
 DTC		= dtc
 CHECK		= sparse
 
@@ -362,7 +360,7 @@ export VERSION PATCHLEVEL SUBLEVEL UBOOTRELEASE UBOOTVERSION
 export ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR
 export CONFIG_SHELL HOSTCC HOSTCFLAGS HOSTLDFLAGS CROSS_COMPILE AS LD CC
 export CPP AR NM LDR STRIP OBJCOPY OBJDUMP
-export MAKE AWK PERL
+export MAKE AWK PERL PYTHON
 export HOSTCXX HOSTCXXFLAGS DTC CHECK CHECKFLAGS
 
 export KBUILD_CPPFLAGS NOSTDINC_FLAGS UBOOTINCLUDE OBJCOPYFLAGS LDFLAGS
@@ -460,31 +458,49 @@ ifeq ($(config-targets),1)
 # *config targets only - make sure prerequisites are updated, and descend
 # in scripts/kconfig to make the *config target
 
-# Read arch specific Makefile to set KBUILD_DEFCONFIG as needed.
-# KBUILD_DEFCONFIG may point out an alternative default configuration
-# used for 'make defconfig'
+KBUILD_DEFCONFIG := sandbox_defconfig
+export KBUILD_DEFCONFIG KBUILD_KCONFIG
 
-%_config:: outputmakefile
-	@$(MKCONFIG) -A $(@:_config=)
+config: scripts_basic outputmakefile FORCE
+	+$(Q)$(PYTHON) $(srctree)/scripts/multiconfig.py $@
+
+%config: scripts_basic outputmakefile FORCE
+	+$(Q)$(PYTHON) $(srctree)/scripts/multiconfig.py $@
 
 else
 # ===========================================================================
 # Build targets only - this includes vmlinux, arch specific targets, clean
 # targets and others. In general all targets except *config targets.
 
-# load ARCH, BOARD, and CPU configuration
--include include/config.mk
-
 ifeq ($(dot-config),1)
 # Read in config
+-include include/config/auto.conf
+
+# Read in dependencies to all Kconfig* files, make sure to run
+# oldconfig if changes are detected.
+-include include/config/auto.conf.cmd
+
+# To avoid any implicit rule to kick in, define an empty command
+$(KCONFIG_CONFIG) include/config/auto.conf.cmd: ;
+
+# If .config is newer than include/config/auto.conf, someone tinkered
+# with it and forgot to run make oldconfig.
+# if auto.conf.cmd is missing then we are probably in a cleaned tree so
+# we execute the config step to be sure to catch updated Kconfig files
+include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
+	$(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
+
 -include include/autoconf.mk
 -include include/autoconf.mk.dep
 
-# load other configuration
+# We want to include arch/$(ARCH)/config.mk only when include/config/auto.conf
+# is up-to-date. When we switch to a different board configuration, old CONFIG
+# macros are still remaining in include/config/auto.conf. Without the following
+# gimmick, wrong config.mk would be included leading nasty warnings/errors.
+autoconf_is_current := $(if $(wildcard $(KCONFIG_CONFIG)),$(shell find . \
+		-path ./include/config/auto.conf -newer $(KCONFIG_CONFIG)))
+ifneq ($(autoconf_is_current),)
 include $(srctree)/config.mk
-
-ifeq ($(wildcard include/config.mk),)
-$(error "System not configured - see README")
 endif
 
 # If board code explicitly specified LDSCRIPT or CONFIG_SYS_LDSCRIPT, use
@@ -513,8 +529,8 @@ ifndef LDSCRIPT
 endif
 
 else
-
-
+# Dummy target needed, because used as prerequisite
+include/config/auto.conf: ;
 endif # $(dot-config)
 
 KBUILD_CFLAGS += -Os #-fomit-frame-pointer
@@ -563,7 +579,8 @@ KBUILD_CFLAGS += $(KCFLAGS)
 UBOOTINCLUDE    := \
 		-Iinclude \
 		$(if $(KBUILD_SRC), -I$(srctree)/include) \
-		-I$(srctree)/arch/$(ARCH)/include
+		-I$(srctree)/arch/$(ARCH)/include \
+		-include $(srctree)/include/linux/kconfig.h
 
 NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
 CHECKFLAGS     += $(NOSTDINC_FLAGS)
@@ -1024,7 +1041,7 @@ define filechk_uboot.release
 endef
 
 # Store (new) UBOOTRELEASE string in include/config/uboot.release
-include/config/uboot.release: Makefile FORCE
+include/config/uboot.release: include/config/auto.conf FORCE
 	$(call filechk,uboot.release)
 
 
@@ -1042,8 +1059,8 @@ PHONY += prepare archprepare prepare0 prepare1 prepare2 prepare3
 # 1) Check that make has not been executed in the kernel src $(srctree)
 prepare3: include/config/uboot.release
 ifneq ($(KBUILD_SRC),)
-	@$(kecho) '  Using $(srctree) as source for u-boot'
-	$(Q)if [ -f $(srctree)/include/config.mk ]; then \
+	@$(kecho) '  Using $(srctree) as source for U-Boot'
+	$(Q)if [ -f $(srctree)/.config -o -d $(srctree)/include/config ]; then \
 		echo >&2 "  $(srctree) is not clean, please run 'make mrproper'"; \
 		echo >&2 "  in the '$(srctree)' directory.";\
 		/bin/false; \
@@ -1053,7 +1070,8 @@ endif
 # prepare2 creates a makefile if using a separate output directory
 prepare2: prepare3 outputmakefile
 
-prepare1: prepare2 $(version_h) $(timestamp_h)
+prepare1: prepare2 $(version_h) $(timestamp_h) \
+                   include/config/auto.conf
 ifeq ($(__HAVE_ARCH_GENERIC_BOARD),)
 ifeq ($(CONFIG_SYS_GENERIC_BOARD),y)
 	@echo >&2 "  Your architecture does not support generic board."
@@ -1095,29 +1113,6 @@ $(version_h): include/config/uboot.release FORCE
 $(timestamp_h): $(srctree)/Makefile FORCE
 	$(call filechk,timestamp.h)
 
-#
-# Auto-generate the autoconf.mk file (which is included by all makefiles)
-#
-# This target actually generates 2 files; autoconf.mk and autoconf.mk.dep.
-# the dep file is only include in this top level makefile to determine when
-# to regenerate the autoconf.mk file.
-
-quiet_cmd_autoconf_dep = GEN     $@
-      cmd_autoconf_dep = $(CC) -x c -DDO_DEPS_ONLY -M $(c_flags) \
-	-MQ include/autoconf.mk $(srctree)/include/common.h > $@ || rm $@
-
-include/autoconf.mk.dep: include/config.h include/common.h
-	$(call cmd,autoconf_dep)
-
-quiet_cmd_autoconf = GEN     $@
-      cmd_autoconf = \
-	$(CPP) $(c_flags) -DDO_DEPS_ONLY -dM $(srctree)/include/common.h > $@.tmp && \
-	sed -n -f $(srctree)/tools/scripts/define2mk.sed $@.tmp > $@; \
-	rm $@.tmp
-
-include/autoconf.mk: include/config.h
-	$(call cmd,autoconf)
-
 # ---------------------------------------------------------------------------
 
 PHONY += depend dep
@@ -1141,7 +1136,7 @@ spl/sunxi-spl.bin: spl/u-boot-spl
 	@:
 
 tpl/u-boot-tpl.bin: tools prepare
-	$(Q)$(MAKE) obj=tpl -f $(srctree)/scripts/Makefile.spl all CONFIG_TPL_BUILD=y
+	$(Q)$(MAKE) obj=tpl -f $(srctree)/scripts/Makefile.spl all
 
 TAG_SUBDIRS := $(patsubst %,$(srctree)/%,$(u-boot-dirs) include)
 
@@ -1216,20 +1211,18 @@ include/license.h: tools/bin2header COPYING
 
 # Directories & files removed with 'make clean'
 CLEAN_DIRS  += $(MODVERDIR)
-CLEAN_FILES += u-boot.lds include/bmp_logo.h include/bmp_logo_data.h \
-	       include/autoconf.mk* include/spl-autoconf.mk \
-	       include/tpl-autoconf.mk
+CLEAN_FILES += u-boot.lds include/bmp_logo.h include/bmp_logo_data.h
 
 # Directories & files removed with 'make clobber'
-CLOBBER_DIRS  += spl tpl
+CLOBBER_DIRS  += $(foreach d, spl tpl, $(patsubst %,$d/%, \
+			$(filter-out include, $(shell ls -1 $d 2>/dev/null))))
 CLOBBER_FILES += u-boot* MLO* SPL System.map
 
 # Directories & files removed with 'make mrproper'
-MRPROPER_DIRS  += include/config include/generated          \
+MRPROPER_DIRS  += include/config include/generated spl tpl \
 		  .tmp_objdiff
-MRPROPER_FILES += .config .config.old \
-		  ctags etags cscope* GPATH GTAGS GRTAGS GSYMS \
-		  include/config.h include/config.mk
+MRPROPER_FILES += .config .config.old include/autoconf.mk* include/config.h \
+		  ctags etags TAGS cscope* GPATH GTAGS GRTAGS GSYMS
 
 # clean - Delete most, but leave enough to build external modules
 #
@@ -1306,10 +1299,9 @@ help:
 	@echo  '  mrproper	  - Remove all generated files + config + various backup files'
 	@echo  '  distclean	  - mrproper + remove editor backup and patch files'
 	@echo  ''
-# uncomment after adding Kconfig feature
-#	@echo  'Configuration targets:'
-#	@$(MAKE) -f $(srctree)/scripts/kconfig/Makefile help
-#	@echo  ''
+	@echo  'Configuration targets:'
+	@$(MAKE) -f $(srctree)/scripts/kconfig/Makefile help
+	@echo  ''
 	@echo  'Other generic targets:'
 	@echo  '  all		  - Build all necessary images depending on configuration'
 	@echo  '  u-boot	  - Build the bare u-boot'

+ 18 - 11
README

@@ -252,15 +252,15 @@ Selection of Processor Architecture and Board Type:
 ---------------------------------------------------
 
 For all supported boards there are ready-to-use default
-configurations available; just type "make <board_name>_config".
+configurations available; just type "make <board_name>_defconfig".
 
 Example: For a TQM823L module type:
 
 	cd u-boot
-	make TQM823L_config
+	make TQM823L_defconfig
 
 For the Cogent platform, you need to specify the CPU type as well;
-e.g. "make cogent_mpc8xx_config". And also configure the cogent
+e.g. "make cogent_mpc8xx_defconfig". And also configure the cogent
 directory according to the instructions in cogent/README.
 
 
@@ -2601,6 +2601,10 @@ CBFS (Coreboot Filesystem) support
 		Enables the driver for the SPI controllers on i.MX and MXC
 		SoCs. Currently i.MX31/35/51 are supported.
 
+		CONFIG_SYS_SPI_MXC_WAIT
+		Timeout for waiting until spi transfer completed.
+		default: (CONFIG_SYS_HZ/100)     /* 10 ms */
+
 - FPGA Support: CONFIG_FPGA
 
 		Enables FPGA subsystem.
@@ -3767,6 +3771,9 @@ Configuration Settings:
 		Pre-relocation malloc() is only supported on sandbox
 		at present but is fairly easy to enable for other archs.
 
+		Pre-relocation malloc() is only supported on ARM at present
+		but is fairly easy to enable for other archs.
+
 - CONFIG_SYS_BOOTM_LEN:
 		Normally compressed uImages are limited to an
 		uncompressed size of 8 MBytes. If this is not enough,
@@ -4855,9 +4862,9 @@ U-Boot is intended to be simple to build. After installing the
 sources you must configure U-Boot for one specific board type. This
 is done by typing:
 
-	make NAME_config
+	make NAME_defconfig
 
-where "NAME_config" is the name of one of the existing configu-
+where "NAME_defconfig" is the name of one of the existing configu-
 rations; see boards.cfg for supported names.
 
 Note: for some board special configuration names may exist; check if
@@ -4866,10 +4873,10 @@ Note: for some board special configuration names may exist; check if
       or with LCD support. You can select such additional "features"
       when choosing the configuration, i. e.
 
-      make TQM823L_config
+      make TQM823L_defconfig
 	- will configure for a plain TQM823L, i. e. no LCD support
 
-      make TQM823L_LCD_config
+      make TQM823L_LCD_defconfig
 	- will configure for a TQM823L with U-Boot console on LCD
 
       etc.
@@ -4889,14 +4896,14 @@ this behavior and build U-Boot to some external directory:
 1. Add O= to the make command line invocations:
 
 	make O=/tmp/build distclean
-	make O=/tmp/build NAME_config
+	make O=/tmp/build NAME_defconfig
 	make O=/tmp/build all
 
 2. Set environment variable BUILD_DIR to point to the desired location:
 
 	export BUILD_DIR=/tmp/build
 	make distclean
-	make NAME_config
+	make NAME_defconfig
 	make all
 
 Note that the command line "O=" setting overrides the BUILD_DIR environment
@@ -4922,7 +4929,7 @@ steps:
     your board
 3.  If you're porting U-Boot to a new CPU, then also create a new
     directory to hold your CPU specific code. Add any files you need.
-4.  Run "make <board>_config" with your new name.
+4.  Run "make <board>_defconfig" with your new name.
 5.  Type "make", and you should get a working "u-boot.srec" file
     to be installed on your target system.
 6.  Debug and solve any problems that might arise.
@@ -5502,7 +5509,7 @@ which was introduced for our predecessor project PPCBoot and uses a
 
 Example:
 
-	make TQM850L_config
+	make TQM850L_defconfig
 	make oldconfig
 	make dep
 	make uImage

+ 66 - 0
arch/Kconfig

@@ -0,0 +1,66 @@
+choice
+	prompt "Architecture select"
+	default SANDBOX
+
+config ARC
+	bool "ARC architecture"
+
+config ARM
+	bool "ARM architecture"
+
+config AVR32
+	bool "AVR32 architecture"
+
+config BLACKFIN
+	bool "Blackfin architecture"
+
+config M68K
+	bool "M68000 architecture"
+
+config MICROBLAZE
+	bool "MicroBlaze architecture"
+
+config MIPS
+	bool "MIPS architecture"
+
+config NDS32
+	bool "NDS32 architecture"
+
+config NIOS2
+	bool "Nios II architecture"
+
+config OPENRISC
+	bool "OpenRISC architecture"
+
+config PPC
+	bool "PowerPC architecture"
+
+config SANDBOX
+	bool "Sandbox"
+
+config SH
+	bool "SuperH architecture"
+
+config SPARC
+	bool "SPARC architecture"
+
+config X86
+	bool "x86 architecture"
+
+endchoice
+
+source "arch/arc/Kconfig"
+source "arch/arm/Kconfig"
+source "arch/avr32/Kconfig"
+source "arch/blackfin/Kconfig"
+source "arch/m68k/Kconfig"
+source "arch/microblaze/Kconfig"
+source "arch/mips/Kconfig"
+source "arch/nds32/Kconfig"
+source "arch/nios2/Kconfig"
+source "arch/openrisc/Kconfig"
+source "arch/powerpc/Kconfig"
+source "arch/sandbox/Kconfig"
+source "arch/sh/Kconfig"
+source "arch/sparc/Kconfig"
+source "arch/x86/Kconfig"

+ 29 - 0
arch/arc/Kconfig

@@ -0,0 +1,29 @@
+menu "ARC architecture"
+	depends on ARC
+
+config SYS_ARCH
+	string
+	default "arc"
+
+choice
+	prompt "Target select"
+
+config TARGET_TB100
+	bool "Support tb100"
+
+config TARGET_ARCANGEL4
+	bool "Support arcangel4"
+
+config TARGET_ARCANGEL4_BE
+	bool "Support arcangel4-be"
+
+config TARGET_AXS101
+	bool "Support axs101"
+
+endchoice
+
+source "board/abilis/tb100/Kconfig"
+source "board/synopsys/Kconfig"
+source "board/synopsys/axs101/Kconfig"
+
+endmenu

+ 1 - 1
arch/arc/config.mk

@@ -21,7 +21,7 @@ ifeq ($(CROSS_COMPILE),)
 CROSS_COMPILE := $(ARC_CROSS_COMPILE)
 endif
 
-PLATFORM_CPPFLAGS += -ffixed-r25 -D__ARC__ -DCONFIG_ARC -gdwarf-2
+PLATFORM_CPPFLAGS += -ffixed-r25 -D__ARC__ -gdwarf-2
 
 # Needed for relocation
 LDFLAGS_FINAL += -pie

+ 1002 - 0
arch/arm/Kconfig

@@ -0,0 +1,1002 @@
+menu "ARM architecture"
+	depends on ARM
+
+config SYS_ARCH
+	string
+	default "arm"
+
+choice
+	prompt "Target select"
+
+config TARGET_INTEGRATORAP_CM720T
+	bool "Support integratorap_cm720t"
+
+config TARGET_INTEGRATORAP_CM920T
+	bool "Support integratorap_cm920t"
+
+config TARGET_INTEGRATORCP_CM920T
+	bool "Support integratorcp_cm920t"
+
+config TARGET_A320EVB
+	bool "Support a320evb"
+
+config TARGET_AT91RM9200EK
+	bool "Support at91rm9200ek"
+
+config TARGET_EB_CPUX9K2
+	bool "Support eb_cpux9k2"
+
+config TARGET_CPUAT91
+	bool "Support cpuat91"
+
+config TARGET_EDB93XX
+	bool "Support edb93xx"
+
+config TARGET_SCB9328
+	bool "Support scb9328"
+
+config TARGET_CM4008
+	bool "Support cm4008"
+
+config TARGET_CM41XX
+	bool "Support cm41xx"
+
+config TARGET_VCMA9
+	bool "Support VCMA9"
+
+config TARGET_SMDK2410
+	bool "Support smdk2410"
+
+config TARGET_INTEGRATORAP_CM926EJS
+	bool "Support integratorap_cm926ejs"
+
+config TARGET_INTEGRATORCP_CM926EJS
+	bool "Support integratorcp_cm926ejs"
+
+config TARGET_ASPENITE
+	bool "Support aspenite"
+
+config TARGET_GPLUGD
+	bool "Support gplugd"
+
+config TARGET_AFEB9260
+	bool "Support afeb9260"
+
+config TARGET_AT91SAM9260EK
+	bool "Support at91sam9260ek"
+
+config TARGET_AT91SAM9261EK
+	bool "Support at91sam9261ek"
+
+config TARGET_AT91SAM9263EK
+	bool "Support at91sam9263ek"
+
+config TARGET_AT91SAM9M10G45EK
+	bool "Support at91sam9m10g45ek"
+
+config TARGET_AT91SAM9N12EK
+	bool "Support at91sam9n12ek"
+
+config TARGET_AT91SAM9RLEK
+	bool "Support at91sam9rlek"
+
+config TARGET_AT91SAM9X5EK
+	bool "Support at91sam9x5ek"
+
+config TARGET_SNAPPER9260
+	bool "Support snapper9260"
+
+config TARGET_VL_MA2SC
+	bool "Support vl_ma2sc"
+
+config TARGET_SBC35_A9G20
+	bool "Support sbc35_a9g20"
+
+config TARGET_TNY_A9260
+	bool "Support tny_a9260"
+
+config TARGET_USB_A9263
+	bool "Support usb_a9263"
+
+config TARGET_ETHERNUT5
+	bool "Support ethernut5"
+
+config TARGET_TOP9000
+	bool "Support top9000"
+
+config TARGET_MEESC
+	bool "Support meesc"
+
+config TARGET_OTC570
+	bool "Support otc570"
+
+config TARGET_CPU9260
+	bool "Support cpu9260"
+
+config TARGET_PM9261
+	bool "Support pm9261"
+
+config TARGET_PM9263
+	bool "Support pm9263"
+
+config TARGET_PM9G45
+	bool "Support pm9g45"
+
+config TARGET_CORVUS
+	bool "Support corvus"
+
+config TARGET_TAURUS
+	bool "Support taurus"
+
+config TARGET_STAMP9G20
+	bool "Support stamp9g20"
+
+config TARGET_CAM_ENC_4XX
+	bool "Support cam_enc_4xx"
+
+config TARGET_IPAM390
+	bool "Support ipam390"
+
+config TARGET_DA830EVM
+	bool "Support da830evm"
+
+config TARGET_DA850EVM
+	bool "Support da850evm"
+
+config TARGET_HAWKBOARD
+	bool "Support hawkboard"
+
+config TARGET_DAVINCI_DM355EVM
+	bool "Support davinci_dm355evm"
+
+config TARGET_DAVINCI_DM355LEOPARD
+	bool "Support davinci_dm355leopard"
+
+config TARGET_DAVINCI_DM365EVM
+	bool "Support davinci_dm365evm"
+
+config TARGET_DAVINCI_DM6467EVM
+	bool "Support davinci_dm6467evm"
+
+config TARGET_DAVINCI_DVEVM
+	bool "Support davinci_dvevm"
+
+config TARGET_EA20
+	bool "Support ea20"
+
+config TARGET_DAVINCI_SCHMOOGIE
+	bool "Support davinci_schmoogie"
+
+config TARGET_DAVINCI_SFFSDR
+	bool "Support davinci_sffsdr"
+
+config TARGET_DAVINCI_SONATA
+	bool "Support davinci_sonata"
+
+config TARGET_ENBW_CMC
+	bool "Support enbw_cmc"
+
+config TARGET_CALIMAIN
+	bool "Support calimain"
+
+config TARGET_LSXL
+	bool "Support lsxl"
+
+config TARGET_POGO_E02
+	bool "Support pogo_e02"
+
+config TARGET_DNS325
+	bool "Support dns325"
+
+config TARGET_ICONNECT
+	bool "Support iconnect"
+
+config TARGET_TK71
+	bool "Support tk71"
+
+config TARGET_KM_KIRKWOOD
+	bool "Support km_kirkwood"
+
+config TARGET_NET2BIG_V2
+	bool "Support net2big_v2"
+
+config TARGET_NETSPACE_V2
+	bool "Support netspace_v2"
+
+config TARGET_WIRELESS_SPACE
+	bool "Support wireless_space"
+
+config TARGET_DREAMPLUG
+	bool "Support dreamplug"
+
+config TARGET_GURUPLUG
+	bool "Support guruplug"
+
+config TARGET_MV88F6281GTW_GE
+	bool "Support mv88f6281gtw_ge"
+
+config TARGET_OPENRD
+	bool "Support openrd"
+
+config TARGET_RD6281A
+	bool "Support rd6281a"
+
+config TARGET_SHEEVAPLUG
+	bool "Support sheevaplug"
+
+config TARGET_IB62X0
+	bool "Support ib62x0"
+
+config TARGET_DOCKSTAR
+	bool "Support dockstar"
+
+config TARGET_GOFLEXHOME
+	bool "Support goflexhome"
+
+config TARGET_DEVKIT3250
+	bool "Support devkit3250"
+
+config TARGET_JADECPU
+	bool "Support jadecpu"
+
+config TARGET_MX25PDK
+	bool "Support mx25pdk"
+
+config TARGET_TX25
+	bool "Support tx25"
+
+config TARGET_ZMX25
+	bool "Support zmx25"
+
+config TARGET_APF27
+	bool "Support apf27"
+
+config TARGET_IMX27LITE
+	bool "Support imx27lite"
+
+config TARGET_MAGNESIUM
+	bool "Support magnesium"
+
+config TARGET_APX4DEVKIT
+	bool "Support apx4devkit"
+
+config TARGET_XFI3
+	bool "Support xfi3"
+
+config TARGET_M28EVK
+	bool "Support m28evk"
+
+config TARGET_MX23EVK
+	bool "Support mx23evk"
+
+config TARGET_MX28EVK
+	bool "Support mx28evk"
+
+config TARGET_MX23_OLINUXINO
+	bool "Support mx23_olinuxino"
+
+config TARGET_BG0900
+	bool "Support bg0900"
+
+config TARGET_SANSA_FUZE_PLUS
+	bool "Support sansa_fuze_plus"
+
+config TARGET_SC_SPS_1
+	bool "Support sc_sps_1"
+
+config TARGET_NHK8815
+	bool "Support nhk8815"
+
+config TARGET_OMAP5912OSK
+	bool "Support omap5912osk"
+
+config TARGET_EDMINIV2
+	bool "Support edminiv2"
+
+config TARGET_DKB
+	bool "Support dkb"
+
+config TARGET_SPEAR300
+	bool "Support spear300"
+
+config TARGET_SPEAR310
+	bool "Support spear310"
+
+config TARGET_SPEAR320
+	bool "Support spear320"
+
+config TARGET_SPEAR600
+	bool "Support spear600"
+
+config TARGET_X600
+	bool "Support x600"
+
+config TARGET_VERSATILEAB
+	bool "Support versatileab"
+
+config TARGET_VERSATILEPB
+	bool "Support versatilepb"
+
+config TARGET_VERSATILEQEMU
+	bool "Support versatileqemu"
+
+config TARGET_INTEGRATORCP_CM1136
+	bool "Support integratorcp_cm1136"
+
+config TARGET_IMX31_PHYCORE
+	bool "Support imx31_phycore"
+
+config TARGET_QONG
+	bool "Support qong"
+
+config TARGET_MX31ADS
+	bool "Support mx31ads"
+
+config TARGET_MX31PDK
+	bool "Support mx31pdk"
+
+config TARGET_TT01
+	bool "Support tt01"
+
+config TARGET_IMX31_LITEKIT
+	bool "Support imx31_litekit"
+
+config TARGET_WOODBURN
+	bool "Support woodburn"
+
+config TARGET_WOODBURN_SD
+	bool "Support woodburn_sd"
+
+config TARGET_FLEA3
+	bool "Support flea3"
+
+config TARGET_MX35PDK
+	bool "Support mx35pdk"
+
+config TARGET_RPI_B
+	bool "Support rpi_b"
+
+config TARGET_TNETV107X_EVM
+	bool "Support tnetv107x_evm"
+
+config TARGET_INTEGRATORAP_CM946ES
+	bool "Support integratorap_cm946es"
+
+config TARGET_INTEGRATORCP_CM946ES
+	bool "Support integratorcp_cm946es"
+
+config TARGET_VEXPRESS_CA15_TC2
+	bool "Support vexpress_ca15_tc2"
+
+config TARGET_VEXPRESS_CA5X2
+	bool "Support vexpress_ca5x2"
+
+config TARGET_VEXPRESS_CA9X4
+	bool "Support vexpress_ca9x4"
+
+config TARGET_KWB
+	bool "Support kwb"
+
+config TARGET_TSERIES
+	bool "Support tseries"
+
+config TARGET_CM_T335
+	bool "Support cm_t335"
+
+config TARGET_PEPPER
+	bool "Support pepper"
+
+config TARGET_AM335X_IGEP0033
+	bool "Support am335x_igep0033"
+
+config TARGET_PCM051
+	bool "Support pcm051"
+
+config TARGET_DRACO
+	bool "Support draco"
+
+config TARGET_DXR2
+	bool "Support dxr2"
+
+config TARGET_PXM2
+	bool "Support pxm2"
+
+config TARGET_RUT
+	bool "Support rut"
+
+config TARGET_PENGWYN
+	bool "Support pengwyn"
+
+config TARGET_AM335X_EVM
+	bool "Support am335x_evm"
+
+config TARGET_AM43XX_EVM
+	bool "Support am43xx_evm"
+
+config TARGET_TI814X_EVM
+	bool "Support ti814x_evm"
+
+config TARGET_TI816X_EVM
+	bool "Support ti816x_evm"
+
+config TARGET_SAMA5D3_XPLAINED
+	bool "Support sama5d3_xplained"
+
+config TARGET_SAMA5D3XEK
+	bool "Support sama5d3xek"
+
+config TARGET_BCM28155_AP
+	bool "Support bcm28155_ap"
+
+config TARGET_ARNDALE
+	bool "Support arndale"
+
+config TARGET_ORIGEN
+	bool "Support origen"
+
+config TARGET_SMDK5250
+	bool "Support smdk5250"
+
+config TARGET_SNOW
+	bool "Support snow"
+
+config TARGET_PEACH_PIT
+	bool "Support peach-pit"
+
+config TARGET_SMDK5420
+	bool "Support smdk5420"
+
+config TARGET_SMDKV310
+	bool "Support smdkv310"
+
+config TARGET_TRATS
+	bool "Support trats"
+
+config TARGET_TRATS2
+	bool "Support trats2"
+
+config TARGET_S5PC210_UNIVERSAL
+	bool "Support s5pc210_universal"
+
+config TARGET_HIGHBANK
+	bool "Support highbank"
+
+config TARGET_K2E_EVM
+	bool "Support k2e_evm"
+
+config TARGET_K2HK_EVM
+	bool "Support k2hk_evm"
+
+config TARGET_M53EVK
+	bool "Support m53evk"
+
+config TARGET_IMA3_MX53
+	bool "Support ima3-mx53"
+
+config TARGET_MX51EVK
+	bool "Support mx51evk"
+
+config TARGET_MX53ARD
+	bool "Support mx53ard"
+
+config TARGET_MX53EVK
+	bool "Support mx53evk"
+
+config TARGET_MX53LOCO
+	bool "Support mx53loco"
+
+config TARGET_MX53SMD
+	bool "Support mx53smd"
+
+config TARGET_MX51_EFIKAMX
+	bool "Support mx51_efikamx"
+
+config TARGET_VISION2
+	bool "Support vision2"
+
+config TARGET_UDOO
+	bool "Support udoo"
+
+config TARGET_WANDBOARD
+	bool "Support wandboard"
+
+config TARGET_TITANIUM
+	bool "Support titanium"
+
+config TARGET_NITROGEN6X
+	bool "Support nitrogen6x"
+
+config TARGET_CGTQMX6EVAL
+	bool "Support cgtqmx6eval"
+
+config TARGET_EMBESTMX6BOARDS
+	bool "Support embestmx6boards"
+
+config TARGET_MX6QARM2
+	bool "Support mx6qarm2"
+
+config TARGET_MX6QSABREAUTO
+	bool "Support mx6qsabreauto"
+
+config TARGET_MX6SABRESD
+	bool "Support mx6sabresd"
+
+config TARGET_MX6SLEVK
+	bool "Support mx6slevk"
+
+config TARGET_GW_VENTANA
+	bool "Support gw_ventana"
+
+config TARGET_HUMMINGBOARD
+	bool "Support hummingboard"
+
+config TARGET_OMAP3_OVERO
+	bool "Support omap3_overo"
+
+config TARGET_OMAP3_PANDORA
+	bool "Support omap3_pandora"
+
+config TARGET_ECO5PK
+	bool "Support eco5pk"
+
+config TARGET_DIG297
+	bool "Support dig297"
+
+config TARGET_CM_T35
+	bool "Support cm_t35"
+
+config TARGET_TRICORDER
+	bool "Support tricorder"
+
+config TARGET_MCX
+	bool "Support mcx"
+
+config TARGET_OMAP3_IGEP00X0
+	bool "Support omap3_igep00x0"
+
+config TARGET_AM3517_EVM
+	bool "Support am3517_evm"
+
+config TARGET_OMAP3_LOGIC
+	bool "Support omap3_logic"
+
+config TARGET_OMAP3_ZOOM1
+	bool "Support omap3_zoom1"
+
+config TARGET_OMAP3_MVBLX
+	bool "Support omap3_mvblx"
+
+config TARGET_NOKIA_RX51
+	bool "Support nokia_rx51"
+
+config TARGET_TAO3530
+	bool "Support tao3530"
+
+config TARGET_TWISTER
+	bool "Support twister"
+
+config TARGET_MT_VENTOUX
+	bool "Support mt_ventoux"
+
+config TARGET_AM3517_CRANE
+	bool "Support am3517_crane"
+
+config TARGET_OMAP3_BEAGLE
+	bool "Support omap3_beagle"
+
+config TARGET_OMAP3_EVM
+	bool "Support omap3_evm"
+
+config TARGET_OMAP3_EVM_QUICK_MMC
+	bool "Support omap3_evm_quick_mmc"
+
+config TARGET_OMAP3_EVM_QUICK_NAND
+	bool "Support omap3_evm_quick_nand"
+
+config TARGET_OMAP3_SDP3430
+	bool "Support omap3_sdp3430"
+
+config TARGET_DEVKIT8000
+	bool "Support devkit8000"
+
+config TARGET_DUOVERO
+	bool "Support duovero"
+
+config TARGET_OMAP4_PANDA
+	bool "Support omap4_panda"
+
+config TARGET_OMAP4_SDP4430
+	bool "Support omap4_sdp4430"
+
+config TARGET_CM_T54
+	bool "Support cm_t54"
+
+config TARGET_DRA7XX_EVM
+	bool "Support dra7xx_evm"
+
+config TARGET_OMAP5_UEVM
+	bool "Support omap5_uevm"
+
+config TARGET_ARMADILLO_800EVA
+	bool "Support armadillo-800eva"
+
+config TARGET_KZM9G
+	bool "Support kzm9g"
+
+config TARGET_ALT
+	bool "Support alt"
+
+config TARGET_KOELSCH
+	bool "Support koelsch"
+
+config TARGET_LAGER
+	bool "Support lager"
+
+config TARGET_S5P_GONI
+	bool "Support s5p_goni"
+
+config TARGET_SMDKC100
+	bool "Support smdkc100"
+
+config TARGET_SOCFPGA_CYCLONE5
+	bool "Support socfpga_cyclone5"
+
+config TARGET_SUN4I
+	bool "Support sun4i"
+
+config TARGET_SUN5I
+	bool "Support sun5i"
+
+config TARGET_SUN7I
+	bool "Support sun7i"
+
+config TARGET_SNOWBALL
+	bool "Support snowball"
+
+config TARGET_U8500_HREF
+	bool "Support u8500_href"
+
+config TARGET_VF610TWR
+	bool "Support vf610twr"
+
+config TARGET_ZYNQ_MICROZED
+	bool "Support zynq_microzed"
+
+config TARGET_ZYNQ_ZC70X
+	bool "Support zynq_zc70x"
+
+config TARGET_ZYNQ_ZC770
+	bool "Support zynq_zc770"
+
+config TARGET_ZYNQ_ZED
+	bool "Support zynq_zed"
+
+config TARGET_MEDCOM_WIDE
+	bool "Support medcom-wide"
+
+config TARGET_PLUTUX
+	bool "Support plutux"
+
+config TARGET_TEC
+	bool "Support tec"
+
+config TARGET_PAZ00
+	bool "Support paz00"
+
+config TARGET_TRIMSLICE
+	bool "Support trimslice"
+
+config TARGET_HARMONY
+	bool "Support harmony"
+
+config TARGET_SEABOARD
+	bool "Support seaboard"
+
+config TARGET_VENTANA
+	bool "Support ventana"
+
+config TARGET_WHISTLER
+	bool "Support whistler"
+
+config TARGET_COLIBRI_T20_IRIS
+	bool "Support colibri_t20_iris"
+
+config TARGET_TEC_NG
+	bool "Support tec-ng"
+
+config TARGET_BEAVER
+	bool "Support beaver"
+
+config TARGET_CARDHU
+	bool "Support cardhu"
+
+config TARGET_DALMORE
+	bool "Support dalmore"
+
+config TARGET_JETSON_TK1
+	bool "Support jetson-tk1"
+
+config TARGET_VENICE2
+	bool "Support venice2"
+
+config TARGET_VEXPRESS_AEMV8A
+	bool "Support vexpress_aemv8a"
+
+config TARGET_VEXPRESS_AEMV8A_SEMI
+	bool "Support vexpress_aemv8a_semi"
+
+config TARGET_LS2085A_EMU
+	bool "Support ls2085a_emu"
+
+config TARGET_LS2085A_SIMU
+	bool "Support ls2085a_simu"
+
+config TARGET_BALLOON3
+	bool "Support balloon3"
+
+config TARGET_H2200
+	bool "Support h2200"
+
+config TARGET_PALMLD
+	bool "Support palmld"
+
+config TARGET_PALMTC
+	bool "Support palmtc"
+
+config TARGET_PALMTREO680
+	bool "Support palmtreo680"
+
+config TARGET_PXA255_IDP
+	bool "Support pxa255_idp"
+
+config TARGET_TRIZEPSIV
+	bool "Support trizepsiv"
+
+config TARGET_VPAC270
+	bool "Support vpac270"
+
+config TARGET_XAENIAX
+	bool "Support xaeniax"
+
+config TARGET_ZIPITZ2
+	bool "Support zipitz2"
+
+config TARGET_LP8X4X
+	bool "Support lp8x4x"
+
+config TARGET_COLIBRI_PXA270
+	bool "Support colibri_pxa270"
+
+config TARGET_JORNADA
+	bool "Support jornada"
+
+endchoice
+
+source "board/8dtech/eco5pk/Kconfig"
+source "board/Barix/ipam390/Kconfig"
+source "board/BuR/kwb/Kconfig"
+source "board/BuR/tseries/Kconfig"
+source "board/BuS/eb_cpux9k2/Kconfig"
+source "board/BuS/vl_ma2sc/Kconfig"
+source "board/CarMediaLab/flea3/Kconfig"
+source "board/LaCie/edminiv2/Kconfig"
+source "board/LaCie/net2big_v2/Kconfig"
+source "board/LaCie/netspace_v2/Kconfig"
+source "board/LaCie/wireless_space/Kconfig"
+source "board/Marvell/aspenite/Kconfig"
+source "board/Marvell/dkb/Kconfig"
+source "board/Marvell/dreamplug/Kconfig"
+source "board/Marvell/gplugd/Kconfig"
+source "board/Marvell/guruplug/Kconfig"
+source "board/Marvell/mv88f6281gtw_ge/Kconfig"
+source "board/Marvell/openrd/Kconfig"
+source "board/Marvell/rd6281a/Kconfig"
+source "board/Marvell/sheevaplug/Kconfig"
+source "board/Seagate/dockstar/Kconfig"
+source "board/Seagate/goflexhome/Kconfig"
+source "board/afeb9260/Kconfig"
+source "board/ait/cam_enc_4xx/Kconfig"
+source "board/altera/socfpga/Kconfig"
+source "board/armadeus/apf27/Kconfig"
+source "board/armltd/integrator/Kconfig"
+source "board/armltd/versatile/Kconfig"
+source "board/armltd/vexpress/Kconfig"
+source "board/armltd/vexpress64/Kconfig"
+source "board/atmark-techno/armadillo-800eva/Kconfig"
+source "board/atmel/at91rm9200ek/Kconfig"
+source "board/atmel/at91sam9260ek/Kconfig"
+source "board/atmel/at91sam9261ek/Kconfig"
+source "board/atmel/at91sam9263ek/Kconfig"
+source "board/atmel/at91sam9m10g45ek/Kconfig"
+source "board/atmel/at91sam9n12ek/Kconfig"
+source "board/atmel/at91sam9rlek/Kconfig"
+source "board/atmel/at91sam9x5ek/Kconfig"
+source "board/atmel/sama5d3_xplained/Kconfig"
+source "board/atmel/sama5d3xek/Kconfig"
+source "board/avionic-design/medcom-wide/Kconfig"
+source "board/avionic-design/plutux/Kconfig"
+source "board/avionic-design/tec-ng/Kconfig"
+source "board/avionic-design/tec/Kconfig"
+source "board/balloon3/Kconfig"
+source "board/barco/titanium/Kconfig"
+source "board/bluegiga/apx4devkit/Kconfig"
+source "board/bluewater/snapper9260/Kconfig"
+source "board/boundary/nitrogen6x/Kconfig"
+source "board/broadcom/bcm28155_ap/Kconfig"
+source "board/buffalo/lsxl/Kconfig"
+source "board/calao/sbc35_a9g20/Kconfig"
+source "board/calao/tny_a9260/Kconfig"
+source "board/calao/usb_a9263/Kconfig"
+source "board/cirrus/edb93xx/Kconfig"
+source "board/cloudengines/pogo_e02/Kconfig"
+source "board/cm4008/Kconfig"
+source "board/cm41xx/Kconfig"
+source "board/comelit/dig297/Kconfig"
+source "board/compal/paz00/Kconfig"
+source "board/compulab/cm_t335/Kconfig"
+source "board/compulab/cm_t35/Kconfig"
+source "board/compulab/cm_t54/Kconfig"
+source "board/compulab/trimslice/Kconfig"
+source "board/congatec/cgtqmx6eval/Kconfig"
+source "board/corscience/tricorder/Kconfig"
+source "board/creative/xfi3/Kconfig"
+source "board/d-link/dns325/Kconfig"
+source "board/davedenx/qong/Kconfig"
+source "board/davinci/da8xxevm/Kconfig"
+source "board/davinci/dm355evm/Kconfig"
+source "board/davinci/dm355leopard/Kconfig"
+source "board/davinci/dm365evm/Kconfig"
+source "board/davinci/dm6467evm/Kconfig"
+source "board/davinci/dvevm/Kconfig"
+source "board/davinci/ea20/Kconfig"
+source "board/davinci/schmoogie/Kconfig"
+source "board/davinci/sffsdr/Kconfig"
+source "board/davinci/sonata/Kconfig"
+source "board/denx/m28evk/Kconfig"
+source "board/denx/m53evk/Kconfig"
+source "board/egnite/ethernut5/Kconfig"
+source "board/embest/mx6boards/Kconfig"
+source "board/emk/top9000/Kconfig"
+source "board/enbw/enbw_cmc/Kconfig"
+source "board/esd/meesc/Kconfig"
+source "board/esd/otc570/Kconfig"
+source "board/esg/ima3-mx53/Kconfig"
+source "board/eukrea/cpu9260/Kconfig"
+source "board/eukrea/cpuat91/Kconfig"
+source "board/faraday/a320evb/Kconfig"
+source "board/freescale/ls2085a/Kconfig"
+source "board/freescale/mx23evk/Kconfig"
+source "board/freescale/mx25pdk/Kconfig"
+source "board/freescale/mx28evk/Kconfig"
+source "board/freescale/mx31ads/Kconfig"
+source "board/freescale/mx31pdk/Kconfig"
+source "board/freescale/mx35pdk/Kconfig"
+source "board/freescale/mx51evk/Kconfig"
+source "board/freescale/mx53ard/Kconfig"
+source "board/freescale/mx53evk/Kconfig"
+source "board/freescale/mx53loco/Kconfig"
+source "board/freescale/mx53smd/Kconfig"
+source "board/freescale/mx6qarm2/Kconfig"
+source "board/freescale/mx6qsabreauto/Kconfig"
+source "board/freescale/mx6sabresd/Kconfig"
+source "board/freescale/mx6slevk/Kconfig"
+source "board/freescale/vf610twr/Kconfig"
+source "board/gateworks/gw_ventana/Kconfig"
+source "board/genesi/mx51_efikamx/Kconfig"
+source "board/gumstix/duovero/Kconfig"
+source "board/gumstix/pepper/Kconfig"
+source "board/h2200/Kconfig"
+source "board/hale/tt01/Kconfig"
+source "board/highbank/Kconfig"
+source "board/htkw/mcx/Kconfig"
+source "board/icpdas/lp8x4x/Kconfig"
+source "board/imx31_phycore/Kconfig"
+source "board/iomega/iconnect/Kconfig"
+source "board/isee/igep0033/Kconfig"
+source "board/isee/igep00x0/Kconfig"
+source "board/jornada/Kconfig"
+source "board/karo/tk71/Kconfig"
+source "board/karo/tx25/Kconfig"
+source "board/keymile/km_arm/Kconfig"
+source "board/kmc/kzm9g/Kconfig"
+source "board/logicpd/am3517evm/Kconfig"
+source "board/logicpd/imx27lite/Kconfig"
+source "board/logicpd/imx31_litekit/Kconfig"
+source "board/logicpd/omap3som/Kconfig"
+source "board/logicpd/zoom1/Kconfig"
+source "board/matrix_vision/mvblx/Kconfig"
+source "board/mpl/vcma9/Kconfig"
+source "board/nokia/rx51/Kconfig"
+source "board/nvidia/beaver/Kconfig"
+source "board/nvidia/cardhu/Kconfig"
+source "board/nvidia/dalmore/Kconfig"
+source "board/nvidia/harmony/Kconfig"
+source "board/nvidia/jetson-tk1/Kconfig"
+source "board/nvidia/seaboard/Kconfig"
+source "board/nvidia/venice2/Kconfig"
+source "board/nvidia/ventana/Kconfig"
+source "board/nvidia/whistler/Kconfig"
+source "board/olimex/mx23_olinuxino/Kconfig"
+source "board/omicron/calimain/Kconfig"
+source "board/overo/Kconfig"
+source "board/palmld/Kconfig"
+source "board/palmtc/Kconfig"
+source "board/palmtreo680/Kconfig"
+source "board/pandora/Kconfig"
+source "board/phytec/pcm051/Kconfig"
+source "board/ppcag/bg0900/Kconfig"
+source "board/pxa255_idp/Kconfig"
+source "board/raidsonic/ib62x0/Kconfig"
+source "board/raspberrypi/rpi_b/Kconfig"
+source "board/renesas/alt/Kconfig"
+source "board/renesas/koelsch/Kconfig"
+source "board/renesas/lager/Kconfig"
+source "board/ronetix/pm9261/Kconfig"
+source "board/ronetix/pm9263/Kconfig"
+source "board/ronetix/pm9g45/Kconfig"
+source "board/samsung/arndale/Kconfig"
+source "board/samsung/goni/Kconfig"
+source "board/samsung/origen/Kconfig"
+source "board/samsung/smdk2410/Kconfig"
+source "board/samsung/smdk5250/Kconfig"
+source "board/samsung/smdk5420/Kconfig"
+source "board/samsung/smdkc100/Kconfig"
+source "board/samsung/smdkv310/Kconfig"
+source "board/samsung/trats/Kconfig"
+source "board/samsung/trats2/Kconfig"
+source "board/samsung/universal_c210/Kconfig"
+source "board/sandisk/sansa_fuze_plus/Kconfig"
+source "board/scb9328/Kconfig"
+source "board/schulercontrol/sc_sps_1/Kconfig"
+source "board/siemens/corvus/Kconfig"
+source "board/siemens/draco/Kconfig"
+source "board/siemens/pxm2/Kconfig"
+source "board/siemens/rut/Kconfig"
+source "board/siemens/taurus/Kconfig"
+source "board/silica/pengwyn/Kconfig"
+source "board/solidrun/hummingboard/Kconfig"
+source "board/spear/spear300/Kconfig"
+source "board/spear/spear310/Kconfig"
+source "board/spear/spear320/Kconfig"
+source "board/spear/spear600/Kconfig"
+source "board/spear/x600/Kconfig"
+source "board/st-ericsson/snowball/Kconfig"
+source "board/st-ericsson/u8500/Kconfig"
+source "board/st/nhk8815/Kconfig"
+source "board/sunxi/Kconfig"
+source "board/syteco/jadecpu/Kconfig"
+source "board/syteco/zmx25/Kconfig"
+source "board/taskit/stamp9g20/Kconfig"
+source "board/technexion/tao3530/Kconfig"
+source "board/technexion/twister/Kconfig"
+source "board/teejet/mt_ventoux/Kconfig"
+source "board/ti/am335x/Kconfig"
+source "board/ti/am3517crane/Kconfig"
+source "board/ti/am43xx/Kconfig"
+source "board/ti/beagle/Kconfig"
+source "board/ti/dra7xx/Kconfig"
+source "board/ti/evm/Kconfig"
+source "board/ti/ks2_evm/Kconfig"
+source "board/ti/omap5912osk/Kconfig"
+source "board/ti/omap5_uevm/Kconfig"
+source "board/ti/panda/Kconfig"
+source "board/ti/sdp3430/Kconfig"
+source "board/ti/sdp4430/Kconfig"
+source "board/ti/ti814x/Kconfig"
+source "board/ti/ti816x/Kconfig"
+source "board/ti/tnetv107xevm/Kconfig"
+source "board/timll/devkit3250/Kconfig"
+source "board/timll/devkit8000/Kconfig"
+source "board/toradex/colibri_pxa270/Kconfig"
+source "board/toradex/colibri_t20_iris/Kconfig"
+source "board/trizepsiv/Kconfig"
+source "board/ttcontrol/vision2/Kconfig"
+source "board/udoo/Kconfig"
+source "board/vpac270/Kconfig"
+source "board/wandboard/Kconfig"
+source "board/woodburn/Kconfig"
+source "board/xaeniax/Kconfig"
+source "board/xilinx/zynq/Kconfig"
+source "board/zipitz2/Kconfig"
+
+endmenu

+ 1 - 1
arch/arm/config.mk

@@ -22,7 +22,7 @@ PLATFORM_RELFLAGS += $(call cc-option, -msoft-float) \
 # Support generic board on ARM
 __HAVE_ARCH_GENERIC_BOARD := y
 
-PLATFORM_CPPFLAGS += -DCONFIG_ARM -D__ARM__
+PLATFORM_CPPFLAGS += -D__ARM__
 
 # Choose between ARM/Thumb instruction sets
 ifeq ($(CONFIG_SYS_THUMB_BUILD),y)

+ 9 - 0
arch/arm/cpu/arm926ejs/kirkwood/cpu.c

@@ -13,6 +13,7 @@
 #include <asm/io.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/kirkwood.h>
+#include <mvebu_mmc.h>
 
 #define BUFLEN	16
 
@@ -377,3 +378,11 @@ int cpu_eth_init(bd_t *bis)
 	return 0;
 }
 #endif
+
+#ifdef CONFIG_MVEBU_MMC
+int board_mmc_init(bd_t *bis)
+{
+	mvebu_mmc_init(bis);
+	return 0;
+}
+#endif /* CONFIG_MVEBU_MMC */

+ 3 - 0
arch/arm/cpu/armv7/sunxi/Makefile

@@ -17,6 +17,9 @@ obj-$(CONFIG_SUN7I)	+= clock_sun4i.o
 
 ifndef CONFIG_SPL_BUILD
 obj-y	+= cpu_info.o
+ifdef CONFIG_ARMV7_PSCI
+obj-y	+= psci.o
+endif
 endif
 
 ifdef CONFIG_SPL_BUILD

+ 5 - 0
arch/arm/cpu/armv7/sunxi/board.c

@@ -129,6 +129,11 @@ int cpu_eth_init(bd_t *bis)
 {
 	__maybe_unused int rc;
 
+#ifdef CONFIG_MACPWR
+	gpio_direction_output(CONFIG_MACPWR, 1);
+	mdelay(200);
+#endif
+
 #ifdef CONFIG_SUNXI_EMAC
 	rc = sunxi_emac_initialize(bis);
 	if (rc < 0) {

+ 4 - 0
arch/arm/cpu/armv7/sunxi/clock_sun4i.c

@@ -39,6 +39,10 @@ void clock_init_safe(void)
 	setbits_le32(&ccm->ahb_gate0, 0x1 << AHB_GATE_OFFSET_DMA);
 #endif
 	writel(PLL6_CFG_DEFAULT, &ccm->pll6_cfg);
+#ifdef CONFIG_SUNXI_AHCI
+	setbits_le32(&ccm->ahb_gate0, 0x1 << AHB_GATE_OFFSET_SATA);
+	setbits_le32(&ccm->pll6_cfg, 0x1 << CCM_PLL6_CTRL_SATA_EN_SHIFT);
+#endif
 }
 #endif
 

+ 162 - 0
arch/arm/cpu/armv7/sunxi/psci.S

@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2013 - ARM Ltd
+ * Author: Marc Zyngier <marc.zyngier@arm.com>
+ *
+ * Based on code by Carl van Schaik <carl@ok-labs.com>.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+#include <asm/psci.h>
+#include <asm/arch/cpu.h>
+
+/*
+ * Memory layout:
+ *
+ * SECURE_RAM to text_end :
+ *	._secure_text section
+ * text_end to ALIGN_PAGE(text_end):
+ *	nothing
+ * ALIGN_PAGE(text_end) to ALIGN_PAGE(text_end) + 0x1000)
+ *	1kB of stack per CPU (4 CPUs max).
+ */
+
+	.pushsection ._secure.text, "ax"
+
+	.arch_extension sec
+
+#define	ONE_MS			(CONFIG_SYS_CLK_FREQ / 1000)
+#define	TEN_MS			(10 * ONE_MS)
+
+.macro	timer_wait	reg, ticks
+	@ Program CNTP_TVAL
+	movw	\reg, #(\ticks & 0xffff)
+	movt	\reg, #(\ticks >> 16)
+	mcr	p15, 0, \reg, c14, c2, 0
+	isb
+	@ Enable physical timer, mask interrupt
+	mov	\reg, #3
+	mcr	p15, 0, \reg, c14, c2, 1
+	@ Poll physical timer until ISTATUS is on
+1:	isb
+	mrc	p15, 0, \reg, c14, c2, 1
+	ands	\reg, \reg, #4
+	bne	1b
+	@ Disable timer
+	mov	\reg, #0
+	mcr	p15, 0, \reg, c14, c2, 1
+	isb
+.endm
+
+.globl	psci_arch_init
+psci_arch_init:
+	mrc	p15, 0, r5, c1, c1, 0	@ Read SCR
+	bic	r5, r5, #1		@ Secure mode
+	mcr	p15, 0, r5, c1, c1, 0	@ Write SCR
+	isb
+
+	mrc	p15, 0, r4, c0, c0, 5	@ MPIDR
+	and	r4, r4, #3		@ cpu number in cluster
+	mov	r5, #400		@ 1kB of stack per CPU
+	mul	r4, r4, r5
+
+	adr	r5, text_end		@ end of text
+	add	r5, r5, #0x2000		@ Skip two pages
+	lsr	r5, r5, #12		@ Align to start of page
+	lsl	r5, r5, #12
+	sub	sp, r5, r4		@ here's our stack!
+
+	bx	lr
+
+	@ r1 = target CPU
+	@ r2 = target PC
+.globl	psci_cpu_on
+psci_cpu_on:
+	adr	r0, _target_pc
+	str	r2, [r0]
+	dsb
+
+	movw	r0, #(SUNXI_CPUCFG_BASE & 0xffff)
+	movt	r0, #(SUNXI_CPUCFG_BASE >> 16)
+
+	@ CPU mask
+	and	r1, r1, #3	@ only care about first cluster
+	mov	r4, #1
+	lsl	r4, r4, r1
+
+	adr	r6, _sunxi_cpu_entry
+	str	r6, [r0, #0x1a4] @ PRIVATE_REG (boot vector)
+
+	@ Assert reset on target CPU
+	mov	r6, #0
+	lsl	r5, r1, #6	@ 64 bytes per CPU
+	add	r5, r5, #0x40	@ Offset from base
+	add	r5, r5, r0	@ CPU control block
+	str	r6, [r5]	@ Reset CPU
+
+	@ l1 invalidate
+	ldr	r6, [r0, #0x184]
+	bic	r6, r6, r4
+	str	r6, [r0, #0x184]
+
+	@ Lock CPU
+	ldr	r6, [r0, #0x1e4]
+	bic	r6, r6, r4
+	str	r6, [r0, #0x1e4]
+
+	@ Release power clamp
+	movw	r6, #0x1ff
+	movt	r6, #0
+1:	lsrs	r6, r6, #1
+	str	r6, [r0, #0x1b0]
+	bne	1b
+
+	timer_wait r1, TEN_MS
+
+	@ Clear power gating
+	ldr	r6, [r0, #0x1b4]
+	bic	r6, r6, #1
+	str	r6, [r0, #0x1b4]
+
+	@ Deassert reset on target CPU
+	mov	r6, #3
+	str	r6, [r5]
+
+	@ Unlock CPU
+	ldr	r6, [r0, #0x1e4]
+	orr	r6, r6, r4
+	str	r6, [r0, #0x1e4]
+
+	mov	r0, #ARM_PSCI_RET_SUCCESS	@ Return PSCI_RET_SUCCESS
+	mov	pc, lr
+
+_target_pc:
+	.word	0
+
+_sunxi_cpu_entry:
+	@ Set SMP bit
+	mrc	p15, 0, r0, c1, c0, 1
+	orr	r0, r0, #0x40
+	mcr	p15, 0, r0, c1, c0, 1
+	isb
+
+	bl	_nonsec_init
+	bl	psci_arch_init
+
+	adr	r0, _target_pc
+	ldr	r0, [r0]
+	b	_do_nonsec_entry
+
+text_end:
+	.popsection

+ 4 - 0
arch/arm/include/asm/arch-fsl-lsch3/config.h

@@ -43,7 +43,11 @@
 /* DDR */
 #define CONFIG_SYS_FSL_DDR_LE
 #define CONFIG_VERY_BIG_RAM
+#ifdef CONFIG_SYS_FSL_DDR4
+#define CONFIG_SYS_FSL_DDRC_GEN4
+#else
 #define CONFIG_SYS_FSL_DDRC_ARM_GEN3	/* Enable Freescale ARM DDR3 driver */
+#endif
 #define CONFIG_SYS_FSL_DDR		/* Freescale DDR driver */
 #define CONFIG_SYS_LS2_DDR_BLOCK1_SIZE	((phys_size_t)2 << 30)
 #define CONFIG_MAX_MEM_MAPPED		CONFIG_SYS_LS2_DDR_BLOCK1_SIZE

+ 1 - 0
arch/arm/include/asm/arch-kirkwood/kirkwood.h

@@ -39,6 +39,7 @@
 #define KW_EGIGA0_BASE			(KW_REGISTER(0x72000))
 #define KW_EGIGA1_BASE			(KW_REGISTER(0x76000))
 #define KW_SATA_BASE			(KW_REGISTER(0x80000))
+#define KW_SDIO_BASE			(KW_REGISTER(0x90000))
 
 /* Kirkwood Sata controller has two ports */
 #define KW_SATA_PORT0_OFFSET		0x2000

+ 2 - 2
arch/arm/include/asm/arch-s3c24x0/s3c2410.h

@@ -139,9 +139,9 @@ static inline struct s3c24x0_spi *s3c24x0_get_base_spi(void)
 	return (struct s3c24x0_spi *)S3C24X0_SPI_BASE;
 }
 
-static inline struct s3c2410_sdi *s3c2410_get_base_sdi(void)
+static inline struct s3c24x0_sdi *s3c24x0_get_base_sdi(void)
 {
-	return (struct s3c2410_sdi *)S3C2410_SDI_BASE;
+	return (struct s3c24x0_sdi *)S3C2410_SDI_BASE;
 }
 
 #endif /*__S3C2410_H__*/

+ 2 - 2
arch/arm/include/asm/arch-s3c24x0/s3c2440.h

@@ -137,9 +137,9 @@ static inline struct s3c24x0_spi *s3c24x0_get_base_spi(void)
 	return (struct s3c24x0_spi *)S3C24X0_SPI_BASE;
 }
 
-static inline struct s3c2440_sdi *s3c2440_get_base_sdi(void)
+static inline struct s3c24x0_sdi *s3c24x0_get_base_sdi(void)
 {
-	return (struct s3c2440_sdi *)S3C2440_SDI_BASE;
+	return (struct s3c24x0_sdi *)S3C2440_SDI_BASE;
 }
 
 #endif /*__S3C2440_H__*/

+ 12 - 7
arch/arm/include/asm/arch-s3c24x0/s3c24x0.h

@@ -675,7 +675,7 @@ struct s3c2400_mmc {
 
 
 /* SD INTERFACE (see S3C2410 manual chapter 19) */
-struct s3c2410_sdi {
+struct s3c24x0_sdi {
 	u32	sdicon;
 	u32	sdipre;
 	u32	sdicarg;
@@ -691,14 +691,19 @@ struct s3c2410_sdi {
 	u32	sdidcnt;
 	u32	sdidsta;
 	u32	sdifsta;
-#ifdef __BIG_ENDIAN
-	u8	res[3];
-	u8	sdidat;
+#ifdef CONFIG_S3C2410
+	u32	sdidat;
+	u32	sdiimsk;
 #else
-	u8	sdidat;
-	u8	res[3];
-#endif
 	u32	sdiimsk;
+	u32	sdidat;
+#endif
 };
 
+#ifdef CONFIG_CMD_MMC
+#include <mmc.h>
+int s3cmmc_initialize(bd_t *bis, int (*getcd)(struct mmc *),
+		      int (*getwp)(struct mmc *));
+#endif
+
 #endif /*__S3C24X0_H__*/

+ 11 - 4
arch/arm/include/asm/arch-sunxi/clock_sun4i.h

@@ -218,10 +218,13 @@ struct sunxi_ccm_reg {
 #define CCM_PLL5_CTRL_BYPASS (0x1 << 30)
 #define CCM_PLL5_CTRL_EN (0x1 << 31)
 
-#define CCM_PLL6_CTRL_N_SHIFT	8
-#define CCM_PLL6_CTRL_N_MASK	(0x1f << CCM_PLL6_CTRL_N_SHIFT)
-#define CCM_PLL6_CTRL_K_SHIFT	4
-#define CCM_PLL6_CTRL_K_MASK	(0x3 << CCM_PLL6_CTRL_K_SHIFT)
+#define CCM_PLL6_CTRL_EN		31
+#define CCM_PLL6_CTRL_BYPASS_EN		30
+#define CCM_PLL6_CTRL_SATA_EN_SHIFT	14
+#define CCM_PLL6_CTRL_N_SHIFT		8
+#define CCM_PLL6_CTRL_N_MASK		(0x1f << CCM_PLL6_CTRL_N_SHIFT)
+#define CCM_PLL6_CTRL_K_SHIFT		4
+#define CCM_PLL6_CTRL_K_MASK		(0x3 << CCM_PLL6_CTRL_K_SHIFT)
 
 #define CCM_GPS_CTRL_RESET (0x1 << 0)
 #define CCM_GPS_CTRL_GATE (0x1 << 1)
@@ -253,4 +256,8 @@ struct sunxi_ccm_reg {
 #define CCM_GMAC_CTRL_GPIT_MII (0x0 << 2)
 #define CCM_GMAC_CTRL_GPIT_RGMII (0x1 << 2)
 
+#define CCM_USB_CTRL_PHY1_RST (0x1 << 1)
+#define CCM_USB_CTRL_PHY2_RST (0x1 << 2)
+#define CCM_USB_CTRL_PHYGATE (0x1 << 8)
+
 #endif /* _SUNXI_CLOCK_SUN4I_H */

+ 2 - 0
arch/arm/include/asm/config.h

@@ -7,7 +7,9 @@
 #ifndef _ASM_CONFIG_H_
 #define _ASM_CONFIG_H_
 
+#ifdef __aarch64__
 #define CONFIG_SYS_GENERIC_GLOBAL_DATA
+#endif
 
 #define CONFIG_LMB
 #define CONFIG_SYS_BOOT_RAMDISK_HIGH

+ 1 - 0
arch/arm/include/asm/io.h

@@ -136,6 +136,7 @@ extern inline void __raw_readsl(unsigned long addr, void *data, int longlen)
  * TODO: The kernel offers some more advanced versions of barriers, it might
  * have some advantages to use them instead of the simple one here.
  */
+#define mb()		asm volatile("dsb sy" : : : "memory")
 #define dmb()		__asm__ __volatile__ ("" : : : "memory")
 #define __iormb()	dmb()
 #define __iowmb()	dmb()

+ 12 - 0
arch/arm/lib/crt0.S

@@ -67,10 +67,22 @@ ENTRY(_main)
 	ldr	sp, =(CONFIG_SYS_INIT_SP_ADDR)
 #endif
 	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */
+	mov	r2, sp
 	sub	sp, sp, #GD_SIZE	/* allocate one GD above SP */
 	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */
 	mov	r9, sp		/* GD is above SP */
+	mov	r1, sp
 	mov	r0, #0
+clr_gd:
+	cmp	r1, r2			/* while not at end of GD */
+	strlo	r0, [r1]		/* clear 32-bit GD word */
+	addlo	r1, r1, #4		/* move to next */
+	blo	clr_gd
+#if defined(CONFIG_SYS_MALLOC_F_LEN) && !defined(CONFIG_SPL_BUILD)
+	sub	sp, sp, #CONFIG_SYS_MALLOC_F_LEN
+	str	sp, [r9, #GD_MALLOC_BASE]
+#endif
+	/* mov r0, #0 not needed due to above code */
 	bl	board_init_f
 
 #if ! defined(CONFIG_SPL_BUILD)

+ 51 - 0
arch/avr32/Kconfig

@@ -0,0 +1,51 @@
+menu "AVR32 architecture"
+	depends on AVR32
+
+config SYS_ARCH
+	string
+	default "avr32"
+
+choice
+	prompt "Target select"
+
+config TARGET_ATNGW100
+	bool "Support atngw100"
+
+config TARGET_ATNGW100MKII
+	bool "Support atngw100mkii"
+
+config TARGET_ATSTK1002
+	bool "Support atstk1002"
+
+config TARGET_ATSTK1003
+	bool "Support atstk1003"
+
+config TARGET_ATSTK1004
+	bool "Support atstk1004"
+
+config TARGET_ATSTK1006
+	bool "Support atstk1006"
+
+config TARGET_FAVR_32_EZKIT
+	bool "Support favr-32-ezkit"
+
+config TARGET_GRASSHOPPER
+	bool "Support grasshopper"
+
+config TARGET_MIMC200
+	bool "Support mimc200"
+
+config TARGET_HAMMERHEAD
+	bool "Support hammerhead"
+
+endchoice
+
+source "board/atmel/atngw100/Kconfig"
+source "board/atmel/atngw100mkii/Kconfig"
+source "board/atmel/atstk1000/Kconfig"
+source "board/earthlcd/favr-32-ezkit/Kconfig"
+source "board/in-circuit/grasshopper/Kconfig"
+source "board/mimc/mimc200/Kconfig"
+source "board/miromico/hammerhead/Kconfig"
+
+endmenu

+ 0 - 1
arch/avr32/config.mk

@@ -9,7 +9,6 @@ ifeq ($(CROSS_COMPILE),)
 CROSS_COMPILE := avr32-linux-
 endif
 
-PLATFORM_CPPFLAGS += -DCONFIG_AVR32
 CONFIG_STANDALONE_LOAD_ADDR ?= 0x00000000
 
 PLATFORM_RELFLAGS	+= -ffixed-r5 -fPIC -mno-init-got -mrelax

+ 150 - 0
arch/blackfin/Kconfig

@@ -0,0 +1,150 @@
+menu "Blackfin architecture"
+	depends on BLACKFIN
+
+config SYS_ARCH
+	string
+	default "blackfin"
+
+choice
+	prompt "Target select"
+
+config TARGET_BCT_BRETTL2
+	bool "Support bct-brettl2"
+
+config TARGET_BF506F_EZKIT
+	bool "Support bf506f-ezkit"
+
+config TARGET_BF518F_EZBRD
+	bool "Support bf518f-ezbrd"
+
+config TARGET_BF525_UCR2
+	bool "Support bf525-ucr2"
+
+config TARGET_BF526_EZBRD
+	bool "Support bf526-ezbrd"
+
+config TARGET_BF527_AD7160_EVAL
+	bool "Support bf527-ad7160-eval"
+
+config TARGET_BF527_EZKIT
+	bool "Support bf527-ezkit"
+
+config TARGET_BF527_SDP
+	bool "Support bf527-sdp"
+
+config TARGET_BF533_EZKIT
+	bool "Support bf533-ezkit"
+
+config TARGET_BF533_STAMP
+	bool "Support bf533-stamp"
+
+config TARGET_BF537_MINOTAUR
+	bool "Support bf537-minotaur"
+
+config TARGET_BF537_PNAV
+	bool "Support bf537-pnav"
+
+config TARGET_BF537_SRV1
+	bool "Support bf537-srv1"
+
+config TARGET_BF537_STAMP
+	bool "Support bf537-stamp"
+
+config TARGET_BF538F_EZKIT
+	bool "Support bf538f-ezkit"
+
+config TARGET_BF548_EZKIT
+	bool "Support bf548-ezkit"
+
+config TARGET_BF561_ACVILON
+	bool "Support bf561-acvilon"
+
+config TARGET_BF561_EZKIT
+	bool "Support bf561-ezkit"
+
+config TARGET_BF609_EZKIT
+	bool "Support bf609-ezkit"
+
+config TARGET_BLACKSTAMP
+	bool "Support blackstamp"
+
+config TARGET_BLACKVME
+	bool "Support blackvme"
+
+config TARGET_BR4
+	bool "Support br4"
+
+config TARGET_CM_BF527
+	bool "Support cm-bf527"
+
+config TARGET_CM_BF533
+	bool "Support cm-bf533"
+
+config TARGET_CM_BF537E
+	bool "Support cm-bf537e"
+
+config TARGET_CM_BF537U
+	bool "Support cm-bf537u"
+
+config TARGET_CM_BF548
+	bool "Support cm-bf548"
+
+config TARGET_CM_BF561
+	bool "Support cm-bf561"
+
+config TARGET_DNP5370
+	bool "Support dnp5370"
+
+config TARGET_IBF_DSP561
+	bool "Support ibf-dsp561"
+
+config TARGET_IP04
+	bool "Support ip04"
+
+config TARGET_PR1
+	bool "Support pr1"
+
+config TARGET_TCM_BF518
+	bool "Support tcm-bf518"
+
+config TARGET_TCM_BF537
+	bool "Support tcm-bf537"
+
+endchoice
+
+source "board/bct-brettl2/Kconfig"
+source "board/bf506f-ezkit/Kconfig"
+source "board/bf518f-ezbrd/Kconfig"
+source "board/bf525-ucr2/Kconfig"
+source "board/bf526-ezbrd/Kconfig"
+source "board/bf527-ad7160-eval/Kconfig"
+source "board/bf527-ezkit/Kconfig"
+source "board/bf527-sdp/Kconfig"
+source "board/bf533-ezkit/Kconfig"
+source "board/bf533-stamp/Kconfig"
+source "board/bf537-minotaur/Kconfig"
+source "board/bf537-pnav/Kconfig"
+source "board/bf537-srv1/Kconfig"
+source "board/bf537-stamp/Kconfig"
+source "board/bf538f-ezkit/Kconfig"
+source "board/bf548-ezkit/Kconfig"
+source "board/bf561-acvilon/Kconfig"
+source "board/bf561-ezkit/Kconfig"
+source "board/bf609-ezkit/Kconfig"
+source "board/blackstamp/Kconfig"
+source "board/blackvme/Kconfig"
+source "board/br4/Kconfig"
+source "board/cm-bf527/Kconfig"
+source "board/cm-bf533/Kconfig"
+source "board/cm-bf537e/Kconfig"
+source "board/cm-bf537u/Kconfig"
+source "board/cm-bf548/Kconfig"
+source "board/cm-bf561/Kconfig"
+source "board/dnp5370/Kconfig"
+source "board/ibf-dsp561/Kconfig"
+source "board/ip04/Kconfig"
+source "board/pr1/Kconfig"
+source "board/tcm-bf518/Kconfig"
+source "board/tcm-bf537/Kconfig"
+
+endmenu

+ 0 - 1
arch/blackfin/config.mk

@@ -21,7 +21,6 @@ endif
 CONFIG_BFIN_BOOT_MODE := $(strip $(CONFIG_BFIN_BOOT_MODE:"%"=%))
 
 PLATFORM_RELFLAGS += -ffixed-P3 -fomit-frame-pointer -mno-fdpic
-PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN
 
 LDFLAGS_FINAL += --gc-sections
 LDFLAGS += -m elf32bfin

+ 98 - 0
arch/m68k/Kconfig

@@ -0,0 +1,98 @@
+menu "M68000 architecture"
+	depends on M68K
+
+config SYS_ARCH
+	string
+	default "m68k"
+
+choice
+	prompt "Target select"
+
+config TARGET_M52277EVB
+	bool "Support M52277EVB"
+
+config TARGET_M5235EVB
+	bool "Support M5235EVB"
+
+config TARGET_COBRA5272
+	bool "Support cobra5272"
+
+config TARGET_EB_CPU5282
+	bool "Support eb_cpu5282"
+
+config TARGET_TASREG
+	bool "Support TASREG"
+
+config TARGET_M5208EVBE
+	bool "Support M5208EVBE"
+
+config TARGET_M5249EVB
+	bool "Support M5249EVB"
+
+config TARGET_M5253DEMO
+	bool "Support M5253DEMO"
+
+config TARGET_M5253EVBE
+	bool "Support M5253EVBE"
+
+config TARGET_M5272C3
+	bool "Support M5272C3"
+
+config TARGET_M5275EVB
+	bool "Support M5275EVB"
+
+config TARGET_M5282EVB
+	bool "Support M5282EVB"
+
+config TARGET_ASTRO_MCF5373L
+	bool "Support astro_mcf5373l"
+
+config TARGET_M53017EVB
+	bool "Support M53017EVB"
+
+config TARGET_M5329EVB
+	bool "Support M5329EVB"
+
+config TARGET_M5373EVB
+	bool "Support M5373EVB"
+
+config TARGET_M54418TWR
+	bool "Support M54418TWR"
+
+config TARGET_M54451EVB
+	bool "Support M54451EVB"
+
+config TARGET_M54455EVB
+	bool "Support M54455EVB"
+
+config TARGET_M5475EVB
+	bool "Support M5475EVB"
+
+config TARGET_M5485EVB
+	bool "Support M5485EVB"
+
+endchoice
+
+source "board/BuS/eb_cpu5282/Kconfig"
+source "board/astro/mcf5373l/Kconfig"
+source "board/cobra5272/Kconfig"
+source "board/esd/tasreg/Kconfig"
+source "board/freescale/m5208evbe/Kconfig"
+source "board/freescale/m52277evb/Kconfig"
+source "board/freescale/m5235evb/Kconfig"
+source "board/freescale/m5249evb/Kconfig"
+source "board/freescale/m5253demo/Kconfig"
+source "board/freescale/m5253evbe/Kconfig"
+source "board/freescale/m5272c3/Kconfig"
+source "board/freescale/m5275evb/Kconfig"
+source "board/freescale/m5282evb/Kconfig"
+source "board/freescale/m53017evb/Kconfig"
+source "board/freescale/m5329evb/Kconfig"
+source "board/freescale/m5373evb/Kconfig"
+source "board/freescale/m54418twr/Kconfig"
+source "board/freescale/m54451evb/Kconfig"
+source "board/freescale/m54455evb/Kconfig"
+source "board/freescale/m547xevb/Kconfig"
+source "board/freescale/m548xevb/Kconfig"
+
+endmenu

+ 1 - 1
arch/m68k/config.mk

@@ -11,7 +11,7 @@ endif
 
 CONFIG_STANDALONE_LOAD_ADDR ?= 0x20000
 
-PLATFORM_CPPFLAGS += -DCONFIG_M68K -D__M68K__
+PLATFORM_CPPFLAGS += -D__M68K__
 PLATFORM_LDFLAGS  += -n
 PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
 PLATFORM_RELFLAGS += -ffixed-d7 -msep-data

+ 8 - 8
arch/m68k/cpu/mcf52x2/config.mk

@@ -7,14 +7,14 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-cfg=$(shell grep configs $(objtree)/include/config.h | sed 's/.*<\(configs.*\)>/\1/')
-is5208:=$(shell grep CONFIG_M5208 $(srctree)/include/$(cfg))
-is5249:=$(shell grep CONFIG_M5249 $(srctree)/include/$(cfg))
-is5253:=$(shell grep CONFIG_M5253 $(srctree)/include/$(cfg))
-is5271:=$(shell grep CONFIG_M5271 $(srctree)/include/$(cfg))
-is5272:=$(shell grep CONFIG_M5272 $(srctree)/include/$(cfg))
-is5275:=$(shell grep CONFIG_M5275 $(srctree)/include/$(cfg))
-is5282:=$(shell grep CONFIG_M5282 $(srctree)/include/$(cfg))
+cfg=$(srctree)/include/configs/$(CONFIG_SYS_CONFIG_NAME:"%"=%).h
+is5208:=$(shell grep CONFIG_M5208 $(cfg))
+is5249:=$(shell grep CONFIG_M5249 $(cfg))
+is5253:=$(shell grep CONFIG_M5253 $(cfg))
+is5271:=$(shell grep CONFIG_M5271 $(cfg))
+is5272:=$(shell grep CONFIG_M5272 $(cfg))
+is5275:=$(shell grep CONFIG_M5275 $(cfg))
+is5282:=$(shell grep CONFIG_M5282 $(cfg))
 
 ifneq (,$(findstring CONFIG_M5208,$(is5208)))
 PLATFORM_CPPFLAGS += -mcpu=5208

+ 3 - 3
arch/m68k/cpu/mcf532x/config.mk

@@ -7,9 +7,9 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-cfg=$(shell grep configs $(objtree)/include/config.h | sed 's/.*<\(configs.*\)>/\1/')
-is5301x:=$(shell grep CONFIG_MCF5301x $(srctree)/include/$(cfg))
-is532x:=$(shell grep CONFIG_MCF532x $(srctree)/include/$(cfg))
+cfg=$(srctree)/include/configs/$(CONFIG_SYS_CONFIG_NAME:"%"=%).h
+is5301x:=$(shell grep CONFIG_MCF5301x $(cfg))
+is532x:=$(shell grep CONFIG_MCF532x $(cfg))
 
 ifneq (,$(findstring CONFIG_MCF5301x,$(is5301x)))
 PLATFORM_CPPFLAGS += -mcpu=53015 -fPIC

+ 2 - 2
arch/m68k/cpu/mcf5445x/config.mk

@@ -9,8 +9,8 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-cfg=$(shell grep configs $(objtree)/include/config.h | sed 's/.*<\(configs.*\)>/\1/')
-is5441x:=$(shell grep CONFIG_MCF5441x $(srctree)/include/$(cfg))
+cfg=$(srctree)/include/configs/$(CONFIG_SYS_CONFIG_NAME:"%"=%).h
+is5441x:=$(shell grep CONFIG_MCF5441x $(cfg))
 
 ifneq (,$(findstring CONFIG_MCF5441x,$(is5441x)))
 PLATFORM_CPPFLAGS += -mcpu=54418 -fPIC

+ 18 - 0
arch/microblaze/Kconfig

@@ -0,0 +1,18 @@
+menu "MicroBlaze architecture"
+	depends on MICROBLAZE
+
+config SYS_ARCH
+	string
+	default "microblaze"
+
+choice
+	prompt "Target select"
+
+config TARGET_MICROBLAZE_GENERIC
+	bool "Support microblaze-generic"
+
+endchoice
+
+source "board/xilinx/microblaze-generic/Kconfig"
+
+endmenu

+ 37 - 0
arch/mips/Kconfig

@@ -0,0 +1,37 @@
+menu "MIPS architecture"
+	depends on MIPS
+
+config SYS_ARCH
+	string
+	default "mips"
+
+choice
+	prompt "Target select"
+
+config TARGET_QEMU_MIPS
+	bool "Support qemu-mips"
+
+config TARGET_MALTA
+	bool "Support malta"
+
+config TARGET_VCT
+	bool "Support vct"
+
+config TARGET_DBAU1X00
+	bool "Support dbau1x00"
+
+config TARGET_PB1X00
+	bool "Support pb1x00"
+
+config TARGET_QEMU_MIPS64
+	bool "Support qemu-mips64"
+
+endchoice
+
+source "board/dbau1x00/Kconfig"
+source "board/imgtec/malta/Kconfig"
+source "board/micronas/vct/Kconfig"
+source "board/pb1x00/Kconfig"
+source "board/qemu-mips/Kconfig"
+
+endmenu

+ 1 - 1
arch/mips/config.mk

@@ -25,7 +25,7 @@ endif
 # Default to EB if no endianess is configured
 ENDIANNESS ?= -EB
 
-PLATFORM_CPPFLAGS += -DCONFIG_MIPS -D__MIPS__
+PLATFORM_CPPFLAGS += -D__MIPS__
 
 __HAVE_ARCH_GENERIC_BOARD := y
 

+ 26 - 0
arch/nds32/Kconfig

@@ -0,0 +1,26 @@
+menu "NDS32 architecture"
+	depends on NDS32
+
+config SYS_ARCH
+	string
+	default "nds32"
+
+choice
+	prompt "Target select"
+
+config TARGET_ADP_AG101
+	bool "Support adp-ag101"
+
+config TARGET_ADP_AG101P
+	bool "Support adp-ag101p"
+
+config TARGET_ADP_AG102
+	bool "Support adp-ag102"
+
+endchoice
+
+source "board/AndesTech/adp-ag101/Kconfig"
+source "board/AndesTech/adp-ag101p/Kconfig"
+source "board/AndesTech/adp-ag102/Kconfig"
+
+endmenu

+ 1 - 1
arch/nds32/config.mk

@@ -17,6 +17,6 @@ CONFIG_STANDALONE_LOAD_ADDR = 0x300000 \
 
 PLATFORM_RELFLAGS	+= -fno-strict-aliasing -fno-common -mrelax
 PLATFORM_RELFLAGS	+= -gdwarf-2
-PLATFORM_CPPFLAGS	+= -DCONFIG_NDS32 -D__nds32__ -G0 -ffixed-10 -fpie
+PLATFORM_CPPFLAGS	+= -D__nds32__ -G0 -ffixed-10 -fpie
 
 LDFLAGS_u-boot		= --gc-sections --relax

+ 26 - 0
arch/nios2/Kconfig

@@ -0,0 +1,26 @@
+menu "Nios II architecture"
+	depends on NIOS2
+
+config SYS_ARCH
+	string
+	default "nios2"
+
+choice
+	prompt "Target select"
+
+config TARGET_NIOS2_GENERIC
+	bool "Support nios2-generic"
+
+config TARGET_PCI5441
+	bool "Support PCI5441"
+
+config TARGET_PK1C20
+	bool "Support PK1C20"
+
+endchoice
+
+source "board/altera/nios2-generic/Kconfig"
+source "board/psyent/pci5441/Kconfig"
+source "board/psyent/pk1c20/Kconfig"
+
+endmenu

+ 1 - 1
arch/nios2/config.mk

@@ -12,7 +12,7 @@ endif
 
 CONFIG_STANDALONE_LOAD_ADDR ?= 0x02000000
 
-PLATFORM_CPPFLAGS += -DCONFIG_NIOS2 -D__NIOS2__
+PLATFORM_CPPFLAGS += -D__NIOS2__
 PLATFORM_CPPFLAGS += -G0
 
 LDFLAGS_FINAL += --gc-sections

+ 18 - 0
arch/openrisc/Kconfig

@@ -0,0 +1,18 @@
+menu "OpenRISC architecture"
+	depends on OPENRISC
+
+config SYS_ARCH
+	string
+	default "openrisc"
+
+choice
+	prompt "Target select"
+
+config TARGET_OPENRISC_GENERIC
+	bool "Support openrisc-generic"
+
+endchoice
+
+source "board/openrisc/openrisc-generic/Kconfig"
+
+endmenu

+ 1 - 1
arch/openrisc/config.mk

@@ -11,6 +11,6 @@ endif
 
 # r10 used for global object pointer, already set in OR32 GCC but just to be
 # clear
-PLATFORM_CPPFLAGS += -DCONFIG_OPENRISC -D__OR1K__ -ffixed-r10
+PLATFORM_CPPFLAGS += -D__OR1K__ -ffixed-r10
 
 CONFIG_STANDALONE_LOAD_ADDR ?= 0x40000

+ 58 - 0
arch/powerpc/Kconfig

@@ -0,0 +1,58 @@
+menu "PowerPC architecture"
+	depends on PPC
+
+config SYS_ARCH
+	string
+	default "powerpc"
+
+choice
+	prompt "CPU select"
+
+config 74xx_7xx
+	bool "74xx"
+
+config MPC512X
+	bool "MPC512X"
+
+config 5xx
+	bool "MPC5xx"
+
+config MPC5xxx
+	bool "MPC5xxx"
+
+config MPC824X
+	bool "MPC824X"
+
+config MPC8260
+	bool "MPC8260"
+
+config MPC83xx
+	bool "MPC83xx"
+
+config MPC85xx
+	bool "MPC85xx"
+
+config MPC86xx
+	bool "MPC86xx"
+
+config 8xx
+	bool "MPC8xx"
+
+config 4xx
+	bool "PPC4xx"
+
+endchoice
+
+source "arch/powerpc/cpu/74xx_7xx/Kconfig"
+source "arch/powerpc/cpu/mpc512x/Kconfig"
+source "arch/powerpc/cpu/mpc5xx/Kconfig"
+source "arch/powerpc/cpu/mpc5xxx/Kconfig"
+source "arch/powerpc/cpu/mpc824x/Kconfig"
+source "arch/powerpc/cpu/mpc8260/Kconfig"
+source "arch/powerpc/cpu/mpc83xx/Kconfig"
+source "arch/powerpc/cpu/mpc85xx/Kconfig"
+source "arch/powerpc/cpu/mpc86xx/Kconfig"
+source "arch/powerpc/cpu/mpc8xx/Kconfig"
+source "arch/powerpc/cpu/ppc4xx/Kconfig"
+
+endmenu

+ 1 - 1
arch/powerpc/config.mk

@@ -13,7 +13,7 @@ CONFIG_STANDALONE_LOAD_ADDR ?= 0x40000
 LDFLAGS_FINAL += --gc-sections
 PLATFORM_RELFLAGS += -fpic -mrelocatable -ffunction-sections -fdata-sections \
 								-meabi
-PLATFORM_CPPFLAGS += -DCONFIG_PPC -D__powerpc__ -ffixed-r2
+PLATFORM_CPPFLAGS += -D__powerpc__ -ffixed-r2
 PLATFORM_LDFLAGS  += -n
 
 # Support generic board on PPC

+ 49 - 0
arch/powerpc/cpu/74xx_7xx/Kconfig

@@ -0,0 +1,49 @@
+menu "74xx_7xx CPU"
+	depends on 74xx_7xx
+
+config SYS_CPU
+	string
+	default "74xx_7xx"
+
+choice
+	prompt "Target select"
+
+config TARGET_P3G4
+	bool "Support P3G4"
+
+config TARGET_ZUMA
+	bool "Support ZUMA"
+
+config TARGET_PPMC7XX
+	bool "Support ppmc7xx"
+
+config TARGET_ELPPC
+	bool "Support ELPPC"
+
+config TARGET_CPCI750
+	bool "Support CPCI750"
+
+config TARGET_MPC7448HPC2
+	bool "Support mpc7448hpc2"
+
+config TARGET_DB64360
+	bool "Support DB64360"
+
+config TARGET_DB64460
+	bool "Support DB64460"
+
+config TARGET_P3MX
+	bool "Support p3mx"
+
+endchoice
+
+source "board/Marvell/db64360/Kconfig"
+source "board/Marvell/db64460/Kconfig"
+source "board/eltec/elppc/Kconfig"
+source "board/esd/cpci750/Kconfig"
+source "board/evb64260/Kconfig"
+source "board/freescale/mpc7448hpc2/Kconfig"
+source "board/ppmc7xx/Kconfig"
+source "board/prodrive/p3mx/Kconfig"
+
+endmenu

+ 1 - 1
arch/powerpc/cpu/74xx_7xx/config.mk

@@ -5,4 +5,4 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-PLATFORM_CPPFLAGS += -DCONFIG_74xx_7xx -mstring
+PLATFORM_CPPFLAGS += -mstring

+ 34 - 0
arch/powerpc/cpu/mpc512x/Kconfig

@@ -0,0 +1,34 @@
+menu "mpc512x CPU"
+	depends on MPC512X
+
+config SYS_CPU
+	string
+	default "mpc512x"
+
+choice
+	prompt "Target select"
+
+config TARGET_PDM360NG
+	bool "Support pdm360ng"
+
+config TARGET_ARIA
+	bool "Support aria"
+
+config TARGET_MECP5123
+	bool "Support mecp5123"
+
+config TARGET_MPC5121ADS
+	bool "Support mpc5121ads"
+
+config TARGET_AC14XX
+	bool "Support ac14xx"
+
+endchoice
+
+source "board/davedenx/aria/Kconfig"
+source "board/esd/mecp5123/Kconfig"
+source "board/freescale/mpc5121ads/Kconfig"
+source "board/ifm/ac14xx/Kconfig"
+source "board/pdm360ng/Kconfig"
+
+endmenu

+ 1 - 1
arch/powerpc/cpu/mpc512x/config.mk

@@ -4,4 +4,4 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-PLATFORM_CPPFLAGS += -DCONFIG_MPC512X -DCONFIG_E300 -msoft-float -mcpu=603e
+PLATFORM_CPPFLAGS += -DCONFIG_E300 -msoft-float -mcpu=603e

+ 22 - 0
arch/powerpc/cpu/mpc5xx/Kconfig

@@ -0,0 +1,22 @@
+menu "mpc5xx CPU"
+	depends on 5xx
+
+config SYS_CPU
+	string
+	default "mpc5xx"
+
+choice
+	prompt "Target select"
+
+config TARGET_CMI_MPC5XX
+	bool "Support cmi_mpc5xx"
+
+config TARGET_PATI
+	bool "Support PATI"
+
+endchoice
+
+source "board/cmi/Kconfig"
+source "board/mpl/pati/Kconfig"
+
+endmenu

+ 1 - 1
arch/powerpc/cpu/mpc5xx/config.mk

@@ -5,4 +5,4 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-PLATFORM_CPPFLAGS += -DCONFIG_5xx -mpowerpc -msoft-float
+PLATFORM_CPPFLAGS += -mpowerpc -msoft-float

+ 154 - 0
arch/powerpc/cpu/mpc5xxx/Kconfig

@@ -0,0 +1,154 @@
+menu "mpc5xxx CPU"
+	depends on MPC5xxx
+
+config SYS_CPU
+	string
+	default "mpc5xxx"
+
+choice
+	prompt "Target select"
+
+config TARGET_A3M071
+	bool "Support a3m071"
+
+config TARGET_A4M072
+	bool "Support a4m072"
+
+config TARGET_BC3450
+	bool "Support BC3450"
+
+config TARGET_CANMB
+	bool "Support canmb"
+
+config TARGET_CM5200
+	bool "Support cm5200"
+
+config TARGET_GALAXY5200
+	bool "Support galaxy5200"
+
+config TARGET_ICECUBE
+	bool "Support IceCube"
+
+config TARGET_INKA4X0
+	bool "Support inka4x0"
+
+config TARGET_IPEK01
+	bool "Support ipek01"
+
+config TARGET_JUPITER
+	bool "Support jupiter"
+
+config TARGET_MCC200
+	bool "Support mcc200"
+
+config TARGET_MOTIONPRO
+	bool "Support motionpro"
+
+config TARGET_MUNICES
+	bool "Support munices"
+
+config TARGET_PM520
+	bool "Support PM520"
+
+config TARGET_TOTAL5200
+	bool "Support Total5200"
+
+config TARGET_V38B
+	bool "Support v38b"
+
+config TARGET_TOP5200
+	bool "Support TOP5200"
+
+config TARGET_CPCI5200
+	bool "Support cpci5200"
+
+config TARGET_MECP5200
+	bool "Support mecp5200"
+
+config TARGET_PF5200
+	bool "Support pf5200"
+
+config TARGET_O2D
+	bool "Support O2D"
+
+config TARGET_O2D300
+	bool "Support O2D300"
+
+config TARGET_O2DNT2
+	bool "Support O2DNT2"
+
+config TARGET_O2I
+	bool "Support O2I"
+
+config TARGET_O2MNT
+	bool "Support O2MNT"
+
+config TARGET_O3DNT
+	bool "Support O3DNT"
+
+config TARGET_DIGSY_MTC
+	bool "Support digsy_mtc"
+
+config TARGET_HMI1001
+	bool "Support hmi1001"
+
+config TARGET_MUCMC52
+	bool "Support mucmc52"
+
+config TARGET_UC101
+	bool "Support uc101"
+
+config TARGET_MVBC_P
+	bool "Support MVBC_P"
+
+config TARGET_MVSMR
+	bool "Support MVSMR"
+
+config TARGET_PCM030
+	bool "Support pcm030"
+
+config TARGET_AEV
+	bool "Support aev"
+
+config TARGET_CHARON
+	bool "Support charon"
+
+config TARGET_TB5200
+	bool "Support TB5200"
+
+config TARGET_TQM5200
+	bool "Support TQM5200"
+
+endchoice
+
+source "board/a3m071/Kconfig"
+source "board/a4m072/Kconfig"
+source "board/bc3450/Kconfig"
+source "board/canmb/Kconfig"
+source "board/cm5200/Kconfig"
+source "board/emk/top5200/Kconfig"
+source "board/esd/cpci5200/Kconfig"
+source "board/esd/mecp5200/Kconfig"
+source "board/esd/pf5200/Kconfig"
+source "board/galaxy5200/Kconfig"
+source "board/icecube/Kconfig"
+source "board/ifm/o2dnt2/Kconfig"
+source "board/inka4x0/Kconfig"
+source "board/intercontrol/digsy_mtc/Kconfig"
+source "board/ipek01/Kconfig"
+source "board/jupiter/Kconfig"
+source "board/manroland/hmi1001/Kconfig"
+source "board/manroland/mucmc52/Kconfig"
+source "board/manroland/uc101/Kconfig"
+source "board/matrix_vision/mvbc_p/Kconfig"
+source "board/matrix_vision/mvsmr/Kconfig"
+source "board/mcc200/Kconfig"
+source "board/motionpro/Kconfig"
+source "board/munices/Kconfig"
+source "board/phytec/pcm030/Kconfig"
+source "board/pm520/Kconfig"
+source "board/total5200/Kconfig"
+source "board/tqc/tqm5200/Kconfig"
+source "board/v38b/Kconfig"
+
+endmenu

+ 1 - 2
arch/powerpc/cpu/mpc5xxx/config.mk

@@ -5,5 +5,4 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-PLATFORM_CPPFLAGS += -DCONFIG_MPC5xxx \
-		     -mstring -mcpu=603e -mmultiple
+PLATFORM_CPPFLAGS += -mstring -mcpu=603e -mmultiple

+ 49 - 0
arch/powerpc/cpu/mpc824x/Kconfig

@@ -0,0 +1,49 @@
+menu "mpc824x CPU"
+	depends on MPC824X
+
+config SYS_CPU
+	string
+	default "mpc824x"
+
+choice
+	prompt "Target select"
+
+config TARGET_A3000
+	bool "Support A3000"
+
+config TARGET_CPC45
+	bool "Support CPC45"
+
+config TARGET_CU824
+	bool "Support CU824"
+
+config TARGET_EXALION
+	bool "Support eXalion"
+
+config TARGET_MUSENKI
+	bool "Support MUSENKI"
+
+config TARGET_MVBLUE
+	bool "Support MVBLUE"
+
+config TARGET_SANDPOINT8240
+	bool "Support Sandpoint8240"
+
+config TARGET_SANDPOINT8245
+	bool "Support Sandpoint8245"
+
+config TARGET_UTX8245
+	bool "Support utx8245"
+
+endchoice
+
+source "board/a3000/Kconfig"
+source "board/cpc45/Kconfig"
+source "board/cu824/Kconfig"
+source "board/eXalion/Kconfig"
+source "board/musenki/Kconfig"
+source "board/mvblue/Kconfig"
+source "board/sandpoint/Kconfig"
+source "board/utx8245/Kconfig"
+
+endmenu

+ 1 - 1
arch/powerpc/cpu/mpc824x/config.mk

@@ -5,4 +5,4 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-PLATFORM_CPPFLAGS += -DCONFIG_MPC824X -mstring -mcpu=603e -msoft-float
+PLATFORM_CPPFLAGS += -mstring -mcpu=603e -msoft-float

+ 94 - 0
arch/powerpc/cpu/mpc8260/Kconfig

@@ -0,0 +1,94 @@
+menu "mpc8260 CPU"
+	depends on MPC8260
+
+config SYS_CPU
+	string
+	default "mpc8260"
+
+choice
+	prompt "Target select"
+
+config TARGET_ATC
+	bool "Support atc"
+
+config TARGET_COGENT_MPC8260
+	bool "Support cogent_mpc8260"
+
+config TARGET_CPU86
+	bool "Support CPU86"
+
+config TARGET_CPU87
+	bool "Support CPU87"
+
+config TARGET_EP8260
+	bool "Support ep8260"
+
+config TARGET_EP82XXM
+	bool "Support ep82xxm"
+
+config TARGET_GW8260
+	bool "Support gw8260"
+
+config TARGET_HYMOD
+	bool "Support hymod"
+
+config TARGET_IPHASE4539
+	bool "Support IPHASE4539"
+
+config TARGET_MUAS3001
+	bool "Support muas3001"
+
+config TARGET_PM826
+	bool "Support PM826"
+
+config TARGET_PM828
+	bool "Support PM828"
+
+config TARGET_PPMC8260
+	bool "Support ppmc8260"
+
+config TARGET_SACSNG
+	bool "Support sacsng"
+
+config TARGET_MPC8266ADS
+	bool "Support MPC8266ADS"
+
+config TARGET_VOVPN_GW
+	bool "Support VoVPN-GW"
+
+config TARGET_IDS8247
+	bool "Support IDS8247"
+
+config TARGET_KM82XX
+	bool "Support km82xx"
+
+config TARGET_TQM8260
+	bool "Support TQM8260"
+
+config TARGET_TQM8272
+	bool "Support TQM8272"
+
+endchoice
+
+source "board/atc/Kconfig"
+source "board/cogent/Kconfig"
+source "board/cpu86/Kconfig"
+source "board/cpu87/Kconfig"
+source "board/ep8260/Kconfig"
+source "board/ep82xxm/Kconfig"
+source "board/freescale/mpc8266ads/Kconfig"
+source "board/funkwerk/vovpn-gw/Kconfig"
+source "board/gw8260/Kconfig"
+source "board/hymod/Kconfig"
+source "board/ids/ids8247/Kconfig"
+source "board/iphase4539/Kconfig"
+source "board/keymile/km82xx/Kconfig"
+source "board/muas3001/Kconfig"
+source "board/pm826/Kconfig"
+source "board/pm828/Kconfig"
+source "board/ppmc8260/Kconfig"
+source "board/sacsng/Kconfig"
+source "board/tqc/tqm8260/Kconfig"
+source "board/tqc/tqm8272/Kconfig"
+
+endmenu

+ 1 - 1
arch/powerpc/cpu/mpc8260/config.mk

@@ -5,5 +5,5 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-PLATFORM_CPPFLAGS += -DCONFIG_MPC8260 -DCONFIG_CPM2 \
+PLATFORM_CPPFLAGS += -DCONFIG_CPM2 \
 		     -mstring -mcpu=603e -mmultiple

+ 100 - 0
arch/powerpc/cpu/mpc83xx/Kconfig

@@ -0,0 +1,100 @@
+menu "mpc83xx CPU"
+	depends on MPC83xx
+
+config SYS_CPU
+	string
+	default "mpc83xx"
+
+choice
+	prompt "Target select"
+
+config TARGET_MPC8308_P1M
+	bool "Support mpc8308_p1m"
+
+config TARGET_SBC8349
+	bool "Support sbc8349"
+
+config TARGET_VE8313
+	bool "Support ve8313"
+
+config TARGET_VME8349
+	bool "Support vme8349"
+
+config TARGET_MPC8308RDB
+	bool "Support MPC8308RDB"
+
+config TARGET_MPC8313ERDB
+	bool "Support MPC8313ERDB"
+
+config TARGET_MPC8315ERDB
+	bool "Support MPC8315ERDB"
+
+config TARGET_MPC8323ERDB
+	bool "Support MPC8323ERDB"
+
+config TARGET_MPC832XEMDS
+	bool "Support MPC832XEMDS"
+
+config TARGET_MPC8349EMDS
+	bool "Support MPC8349EMDS"
+
+config TARGET_MPC8349ITX
+	bool "Support MPC8349ITX"
+
+config TARGET_MPC8360EMDS
+	bool "Support MPC8360EMDS"
+
+config TARGET_MPC8360ERDK
+	bool "Support MPC8360ERDK"
+
+config TARGET_MPC837XEMDS
+	bool "Support MPC837XEMDS"
+
+config TARGET_MPC837XERDB
+	bool "Support MPC837XERDB"
+
+config TARGET_IDS8313
+	bool "Support ids8313"
+
+config TARGET_KM8360
+	bool "Support km8360"
+
+config TARGET_SUVD3
+	bool "Support suvd3"
+
+config TARGET_TUXX1
+	bool "Support tuxx1"
+
+config TARGET_MERGERBOX
+	bool "Support MERGERBOX"
+
+config TARGET_MVBLM7
+	bool "Support MVBLM7"
+
+config TARGET_TQM834X
+	bool "Support TQM834x"
+
+endchoice
+
+source "board/esd/vme8349/Kconfig"
+source "board/freescale/mpc8308rdb/Kconfig"
+source "board/freescale/mpc8313erdb/Kconfig"
+source "board/freescale/mpc8315erdb/Kconfig"
+source "board/freescale/mpc8323erdb/Kconfig"
+source "board/freescale/mpc832xemds/Kconfig"
+source "board/freescale/mpc8349emds/Kconfig"
+source "board/freescale/mpc8349itx/Kconfig"
+source "board/freescale/mpc8360emds/Kconfig"
+source "board/freescale/mpc8360erdk/Kconfig"
+source "board/freescale/mpc837xemds/Kconfig"
+source "board/freescale/mpc837xerdb/Kconfig"
+source "board/ids/ids8313/Kconfig"
+source "board/keymile/km83xx/Kconfig"
+source "board/matrix_vision/mergerbox/Kconfig"
+source "board/matrix_vision/mvblm7/Kconfig"
+source "board/mpc8308_p1m/Kconfig"
+source "board/sbc8349/Kconfig"
+source "board/tqc/tqm834x/Kconfig"
+source "board/ve8313/Kconfig"
+
+endmenu

+ 1 - 1
arch/powerpc/cpu/mpc83xx/config.mk

@@ -4,4 +4,4 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-PLATFORM_CPPFLAGS += -DCONFIG_MPC83xx -DCONFIG_E300 -msoft-float
+PLATFORM_CPPFLAGS += -DCONFIG_E300 -msoft-float

+ 1 - 1
arch/powerpc/cpu/mpc83xx/cpu.c

@@ -20,7 +20,7 @@
 #include <netdev.h>
 #include <fsl_esdhc.h>
 #if defined(CONFIG_BOOTCOUNT_LIMIT) && !defined(CONFIG_MPC831x)
-#include <asm/immap_qe.h>
+#include <linux/immap_qe.h>
 #include <asm/io.h>
 #endif
 

+ 1 - 1
arch/powerpc/cpu/mpc83xx/fdt.c

@@ -18,7 +18,7 @@ DECLARE_GLOBAL_DATA_PTR;
 
 #if defined(CONFIG_BOOTCOUNT_LIMIT) && \
 	(defined(CONFIG_QE) && !defined(CONFIG_MPC831x))
-#include <asm/immap_qe.h>
+#include <linux/immap_qe.h>
 
 void fdt_fixup_muram (void *blob)
 {

+ 190 - 0
arch/powerpc/cpu/mpc85xx/Kconfig

@@ -0,0 +1,190 @@
+menu "mpc85xx CPU"
+	depends on MPC85xx
+
+config SYS_CPU
+	string
+	default "mpc85xx"
+
+choice
+	prompt "Target select"
+
+config TARGET_SBC8548
+	bool "Support sbc8548"
+
+config TARGET_SOCRATES
+	bool "Support socrates"
+
+config TARGET_HWW1U1A
+	bool "Support HWW1U1A"
+
+config TARGET_B4860QDS
+	bool "Support B4860QDS"
+
+config TARGET_BSC9131RDB
+	bool "Support BSC9131RDB"
+
+config TARGET_BSC9132QDS
+	bool "Support BSC9132QDS"
+
+config TARGET_C29XPCIE
+	bool "Support C29XPCIE"
+
+config TARGET_P3041DS
+	bool "Support P3041DS"
+
+config TARGET_P4080DS
+	bool "Support P4080DS"
+
+config TARGET_P5020DS
+	bool "Support P5020DS"
+
+config TARGET_P5040DS
+	bool "Support P5040DS"
+
+config TARGET_MPC8536DS
+	bool "Support MPC8536DS"
+
+config TARGET_MPC8540ADS
+	bool "Support MPC8540ADS"
+
+config TARGET_MPC8541CDS
+	bool "Support MPC8541CDS"
+
+config TARGET_MPC8544DS
+	bool "Support MPC8544DS"
+
+config TARGET_MPC8548CDS
+	bool "Support MPC8548CDS"
+
+config TARGET_MPC8555CDS
+	bool "Support MPC8555CDS"
+
+config TARGET_MPC8560ADS
+	bool "Support MPC8560ADS"
+
+config TARGET_MPC8568MDS
+	bool "Support MPC8568MDS"
+
+config TARGET_MPC8569MDS
+	bool "Support MPC8569MDS"
+
+config TARGET_MPC8572DS
+	bool "Support MPC8572DS"
+
+config TARGET_P1010RDB
+	bool "Support P1010RDB"
+
+config TARGET_P1022DS
+	bool "Support P1022DS"
+
+config TARGET_P1023RDB
+	bool "Support P1023RDB"
+
+config TARGET_P1_P2_RDB
+	bool "Support P1_P2_RDB"
+
+config TARGET_P1_P2_RDB_PC
+	bool "Support p1_p2_rdb_pc"
+
+config TARGET_P1_TWR
+	bool "Support p1_twr"
+
+config TARGET_P2020COME
+	bool "Support P2020COME"
+
+config TARGET_P2020DS
+	bool "Support P2020DS"
+
+config TARGET_P2041RDB
+	bool "Support P2041RDB"
+
+config TARGET_QEMU_PPCE500
+	bool "Support qemu-ppce500"
+
+config TARGET_T1040QDS
+	bool "Support T1040QDS"
+
+config TARGET_T104XRDB
+	bool "Support T104xRDB"
+
+config TARGET_T208XQDS
+	bool "Support T208xQDS"
+
+config TARGET_T208XRDB
+	bool "Support T208xRDB"
+
+config TARGET_T4240EMU
+	bool "Support T4240EMU"
+
+config TARGET_T4240QDS
+	bool "Support T4240QDS"
+
+config TARGET_T4240RDB
+	bool "Support T4240RDB"
+
+config TARGET_CONTROLCENTERD
+	bool "Support controlcenterd"
+
+config TARGET_KMP204X
+	bool "Support kmp204x"
+
+config TARGET_STXGP3
+	bool "Support stxgp3"
+
+config TARGET_STXSSA
+	bool "Support stxssa"
+
+config TARGET_XPEDITE520X
+	bool "Support xpedite520x"
+
+config TARGET_XPEDITE537X
+	bool "Support xpedite537x"
+
+config TARGET_XPEDITE550X
+	bool "Support xpedite550x"
+
+endchoice
+
+source "board/exmeritus/hww1u1a/Kconfig"
+source "board/freescale/b4860qds/Kconfig"
+source "board/freescale/bsc9131rdb/Kconfig"
+source "board/freescale/bsc9132qds/Kconfig"
+source "board/freescale/c29xpcie/Kconfig"
+source "board/freescale/corenet_ds/Kconfig"
+source "board/freescale/mpc8536ds/Kconfig"
+source "board/freescale/mpc8540ads/Kconfig"
+source "board/freescale/mpc8541cds/Kconfig"
+source "board/freescale/mpc8544ds/Kconfig"
+source "board/freescale/mpc8548cds/Kconfig"
+source "board/freescale/mpc8555cds/Kconfig"
+source "board/freescale/mpc8560ads/Kconfig"
+source "board/freescale/mpc8568mds/Kconfig"
+source "board/freescale/mpc8569mds/Kconfig"
+source "board/freescale/mpc8572ds/Kconfig"
+source "board/freescale/p1010rdb/Kconfig"
+source "board/freescale/p1022ds/Kconfig"
+source "board/freescale/p1023rdb/Kconfig"
+source "board/freescale/p1_p2_rdb/Kconfig"
+source "board/freescale/p1_p2_rdb_pc/Kconfig"
+source "board/freescale/p1_twr/Kconfig"
+source "board/freescale/p2020come/Kconfig"
+source "board/freescale/p2020ds/Kconfig"
+source "board/freescale/p2041rdb/Kconfig"
+source "board/freescale/qemu-ppce500/Kconfig"
+source "board/freescale/t1040qds/Kconfig"
+source "board/freescale/t104xrdb/Kconfig"
+source "board/freescale/t208xqds/Kconfig"
+source "board/freescale/t208xrdb/Kconfig"
+source "board/freescale/t4qds/Kconfig"
+source "board/freescale/t4rdb/Kconfig"
+source "board/gdsys/p1022/Kconfig"
+source "board/keymile/kmp204x/Kconfig"
+source "board/sbc8548/Kconfig"
+source "board/socrates/Kconfig"
+source "board/stx/stxgp3/Kconfig"
+source "board/stx/stxssa/Kconfig"
+source "board/xes/xpedite520x/Kconfig"
+source "board/xes/xpedite537x/Kconfig"
+source "board/xes/xpedite550x/Kconfig"
+
+endmenu

+ 1 - 1
arch/powerpc/cpu/mpc85xx/config.mk

@@ -5,7 +5,7 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-PLATFORM_CPPFLAGS += -DCONFIG_MPC85xx -Wa,-me500 -msoft-float -mno-string
+PLATFORM_CPPFLAGS += -Wa,-me500 -msoft-float -mno-string
 
 # -mspe=yes is needed to have -mno-spe accepted by a buggy GCC;
 # see "[PATCH,rs6000] make -mno-spe work as expected" on

+ 8 - 0
arch/powerpc/cpu/mpc85xx/cpu.c

@@ -310,6 +310,14 @@ __weak unsigned long get_tbclk (void)
 
 
 #if defined(CONFIG_WATCHDOG)
+#define WATCHDOG_MASK (TCR_WP(63) | TCR_WRC(3) | TCR_WIE)
+void
+init_85xx_watchdog(void)
+{
+	mtspr(SPRN_TCR, (mfspr(SPRN_TCR) & ~WATCHDOG_MASK) |
+	      TCR_WP(CONFIG_WATCHDOG_PRESC) | TCR_WRC(CONFIG_WATCHDOG_RC));
+}
+
 void
 reset_85xx_watchdog(void)
 {

+ 89 - 77
arch/powerpc/cpu/mpc85xx/cpu_init.c

@@ -200,7 +200,7 @@ void config_8560_ioports (volatile ccsr_cpm_t * cpm)
 
 #ifdef CONFIG_SYS_FSL_CPC
 #if defined(CONFIG_RAMBOOT_PBL) || defined(CONFIG_SYS_CPC_REINIT_F)
-static void disable_cpc_sram(void)
+void disable_cpc_sram(void)
 {
 	int i;
 
@@ -251,7 +251,7 @@ static void enable_tdm_law(void)
 }
 #endif
 
-static void enable_cpc(void)
+void enable_cpc(void)
 {
 	int i;
 	u32 size = 0;
@@ -306,6 +306,7 @@ static void invalidate_cpc(void)
 #else
 #define enable_cpc()
 #define invalidate_cpc()
+#define disable_cpc_sram()
 #endif /* CONFIG_SYS_FSL_CPC */
 
 /*
@@ -520,7 +521,8 @@ int enable_cluster_l2(void)
 			u32 idx = (cluster >> (j*8)) & TP_CLUSTER_INIT_MASK;
 			u32 type = in_be32(&gur->tp_ityp[idx]);
 
-			if (type & TP_ITYP_AV)
+			if ((type & TP_ITYP_AV) &&
+			    TP_ITYP_TYPE(type) == TP_ITYP_TYPE_PPC)
 				cluster_valid = 1;
 		}
 
@@ -545,88 +547,15 @@ int enable_cluster_l2(void)
 
 /*
  * Initialize L2 as cache.
- *
- * The newer 8548, etc, parts have twice as much cache, but
- * use the same bit-encoding as the older 8555, etc, parts.
- *
  */
-int cpu_init_r(void)
+int l2cache_init(void)
 {
 	__maybe_unused u32 svr = get_svr();
-#ifdef CONFIG_SYS_LBC_LCRR
-	fsl_lbc_t *lbc = (void __iomem *)LBC_BASE_ADDR;
-#endif
 #ifdef CONFIG_L2_CACHE
 	ccsr_l2cache_t *l2cache = (void __iomem *)CONFIG_SYS_MPC85xx_L2_ADDR;
 #elif defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2) && defined(CONFIG_E6500)
 	struct ccsr_cluster_l2 * l2cache = (void __iomem *)CONFIG_SYS_FSL_CLUSTER_1_L2;
 #endif
-#if defined(CONFIG_PPC_SPINTABLE_COMPATIBLE) && defined(CONFIG_MP)
-	extern int spin_table_compat;
-	const char *spin;
-#endif
-#ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571
-	ccsr_sec_t __iomem *sec = (void *)CONFIG_SYS_FSL_SEC_ADDR;
-#endif
-#if defined(CONFIG_SYS_P4080_ERRATUM_CPU22) || \
-	defined(CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011)
-	/*
-	 * CPU22 and NMG_CPU_A011 share the same workaround.
-	 * CPU22 applies to P4080 rev 1.0, 2.0, fixed in 3.0
-	 * NMG_CPU_A011 applies to P4080 rev 1.0, 2.0, fixed in 3.0
-	 * also applies to P3041 rev 1.0, 1.1, P2041 rev 1.0, 1.1, both
-	 * fixed in 2.0. NMG_CPU_A011 is activated by default and can
-	 * be disabled by hwconfig with syntax:
-	 *
-	 * fsl_cpu_a011:disable
-	 */
-	extern int enable_cpu_a011_workaround;
-#ifdef CONFIG_SYS_P4080_ERRATUM_CPU22
-	enable_cpu_a011_workaround = (SVR_MAJ(svr) < 3);
-#else
-	char buffer[HWCONFIG_BUFFER_SIZE];
-	char *buf = NULL;
-	int n, res;
-
-	n = getenv_f("hwconfig", buffer, sizeof(buffer));
-	if (n > 0)
-		buf = buffer;
-
-	res = hwconfig_arg_cmp_f("fsl_cpu_a011", "disable", buf);
-	if (res > 0)
-		enable_cpu_a011_workaround = 0;
-	else {
-		if (n >= HWCONFIG_BUFFER_SIZE) {
-			printf("fsl_cpu_a011 was not found. hwconfig variable "
-				"may be too long\n");
-		}
-		enable_cpu_a011_workaround =
-			(SVR_SOC_VER(svr) == SVR_P4080 && SVR_MAJ(svr) < 3) ||
-			(SVR_SOC_VER(svr) != SVR_P4080 && SVR_MAJ(svr) < 2);
-	}
-#endif
-	if (enable_cpu_a011_workaround) {
-		flush_dcache();
-		mtspr(L1CSR2, (mfspr(L1CSR2) | L1CSR2_DCWS));
-		sync();
-	}
-#endif
-#ifdef CONFIG_SYS_FSL_ERRATUM_A005812
-	/*
-	 * A-005812 workaround sets bit 32 of SPR 976 for SoCs running
-	 * in write shadow mode. Checking DCWS before setting SPR 976.
-	 */
-	if (mfspr(L1CSR2) & L1CSR2_DCWS)
-		mtspr(SPRN_HDBCR0, (mfspr(SPRN_HDBCR0) | 0x80000000));
-#endif
-
-#if defined(CONFIG_PPC_SPINTABLE_COMPATIBLE) && defined(CONFIG_MP)
-	spin = getenv("spin_table_compat");
-	if (spin && (*spin == 'n'))
-		spin_table_compat = 0;
-	else
-		spin_table_compat = 1;
-#endif
 
 	puts ("L2:    ");
 
@@ -751,6 +680,89 @@ skip_l2:
 	puts("disabled\n");
 #endif
 
+	return 0;
+}
+
+/*
+ *
+ * The newer 8548, etc, parts have twice as much cache, but
+ * use the same bit-encoding as the older 8555, etc, parts.
+ *
+ */
+int cpu_init_r(void)
+{
+	__maybe_unused u32 svr = get_svr();
+#ifdef CONFIG_SYS_LBC_LCRR
+	fsl_lbc_t *lbc = (void __iomem *)LBC_BASE_ADDR;
+#endif
+#if defined(CONFIG_PPC_SPINTABLE_COMPATIBLE) && defined(CONFIG_MP)
+	extern int spin_table_compat;
+	const char *spin;
+#endif
+#ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571
+	ccsr_sec_t __iomem *sec = (void *)CONFIG_SYS_FSL_SEC_ADDR;
+#endif
+#if defined(CONFIG_SYS_P4080_ERRATUM_CPU22) || \
+	defined(CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011)
+	/*
+	 * CPU22 and NMG_CPU_A011 share the same workaround.
+	 * CPU22 applies to P4080 rev 1.0, 2.0, fixed in 3.0
+	 * NMG_CPU_A011 applies to P4080 rev 1.0, 2.0, fixed in 3.0
+	 * also applies to P3041 rev 1.0, 1.1, P2041 rev 1.0, 1.1, both
+	 * fixed in 2.0. NMG_CPU_A011 is activated by default and can
+	 * be disabled by hwconfig with syntax:
+	 *
+	 * fsl_cpu_a011:disable
+	 */
+	extern int enable_cpu_a011_workaround;
+#ifdef CONFIG_SYS_P4080_ERRATUM_CPU22
+	enable_cpu_a011_workaround = (SVR_MAJ(svr) < 3);
+#else
+	char buffer[HWCONFIG_BUFFER_SIZE];
+	char *buf = NULL;
+	int n, res;
+
+	n = getenv_f("hwconfig", buffer, sizeof(buffer));
+	if (n > 0)
+		buf = buffer;
+
+	res = hwconfig_arg_cmp_f("fsl_cpu_a011", "disable", buf);
+	if (res > 0) {
+		enable_cpu_a011_workaround = 0;
+	} else {
+		if (n >= HWCONFIG_BUFFER_SIZE) {
+			printf("fsl_cpu_a011 was not found. hwconfig variable "
+				"may be too long\n");
+		}
+		enable_cpu_a011_workaround =
+			(SVR_SOC_VER(svr) == SVR_P4080 && SVR_MAJ(svr) < 3) ||
+			(SVR_SOC_VER(svr) != SVR_P4080 && SVR_MAJ(svr) < 2);
+	}
+#endif
+	if (enable_cpu_a011_workaround) {
+		flush_dcache();
+		mtspr(L1CSR2, (mfspr(L1CSR2) | L1CSR2_DCWS));
+		sync();
+	}
+#endif
+#ifdef CONFIG_SYS_FSL_ERRATUM_A005812
+	/*
+	 * A-005812 workaround sets bit 32 of SPR 976 for SoCs running
+	 * in write shadow mode. Checking DCWS before setting SPR 976.
+	 */
+	if (mfspr(L1CSR2) & L1CSR2_DCWS)
+		mtspr(SPRN_HDBCR0, (mfspr(SPRN_HDBCR0) | 0x80000000));
+#endif
+
+#if defined(CONFIG_PPC_SPINTABLE_COMPATIBLE) && defined(CONFIG_MP)
+	spin = getenv("spin_table_compat");
+	if (spin && (*spin == 'n'))
+		spin_table_compat = 0;
+	else
+		spin_table_compat = 1;
+#endif
+
+	l2cache_init();
 #if defined(CONFIG_RAMBOOT_PBL)
 	disable_cpc_sram();
 #endif

+ 47 - 0
arch/powerpc/cpu/mpc85xx/fdt.c

@@ -612,6 +612,51 @@ static void fdt_fixup_usb(void *fdt)
 #define fdt_fixup_usb(x)
 #endif
 
+#if defined(CONFIG_PPC_T2080) || defined(CONFIG_PPC_T4240) || \
+	defined(CONFIG_PPC_T4160) || defined(CONFIG_PPC_T4080)
+void fdt_fixup_dma3(void *blob)
+{
+	/* the 3rd DMA is not functional if SRIO2 is chosen */
+	int nodeoff;
+	ccsr_gur_t __iomem *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
+
+#define CONFIG_SYS_ELO3_DMA3 (0xffe000000 + 0x102300)
+#if defined(CONFIG_PPC_T2080)
+	u32 srds_prtcl_s2 = in_be32(&gur->rcwsr[4]) &
+				    FSL_CORENET2_RCWSR4_SRDS2_PRTCL;
+	srds_prtcl_s2 >>= FSL_CORENET2_RCWSR4_SRDS2_PRTCL_SHIFT;
+
+	switch (srds_prtcl_s2) {
+	case 0x29:
+	case 0x2d:
+	case 0x2e:
+#elif defined(CONFIG_PPC_T4240) || defined(CONFIG_PPC_T4160) || \
+	defined(CONFIG_PPC_T4080)
+	u32 srds_prtcl_s4 = in_be32(&gur->rcwsr[4]) &
+				    FSL_CORENET2_RCWSR4_SRDS4_PRTCL;
+	srds_prtcl_s4 >>= FSL_CORENET2_RCWSR4_SRDS4_PRTCL_SHIFT;
+
+	switch (srds_prtcl_s4) {
+	case 6:
+	case 8:
+	case 14:
+	case 16:
+#endif
+		nodeoff = fdt_node_offset_by_compat_reg(blob, "fsl,elo3-dma",
+							CONFIG_SYS_ELO3_DMA3);
+		if (nodeoff > 0)
+			fdt_status_disabled(blob, nodeoff);
+		else
+			printf("WARNING: unable to disable dma3\n");
+		break;
+	default:
+		break;
+	}
+}
+#else
+#define fdt_fixup_dma3(x)
+#endif
+
 #if defined(CONFIG_PPC_T1040)
 static void fdt_fixup_l2_switch(void *blob)
 {
@@ -778,6 +823,8 @@ void ft_cpu_setup(void *blob, bd_t *bd)
 	fdt_fixup_usb(blob);
 
 	fdt_fixup_l2_switch(blob);
+
+	fdt_fixup_dma3(blob);
 }
 
 /*

+ 1 - 1
arch/powerpc/cpu/mpc85xx/interrupts.c

@@ -42,7 +42,7 @@ int interrupt_init_cpu(unsigned int *decrementer_count)
 	*decrementer_count = get_tbclk() / CONFIG_SYS_HZ;
 
 	/* PIE is same as DIE, dec interrupt enable */
-	mtspr(SPRN_TCR, TCR_PIE);
+	mtspr(SPRN_TCR, mfspr(SPRN_TCR) | TCR_PIE);
 
 #ifdef CONFIG_INTERRUPTS
 	pic->iivpr1 = 0x810001;	/* 50220 enable ecm interrupts */

+ 30 - 0
arch/powerpc/cpu/mpc86xx/Kconfig

@@ -0,0 +1,30 @@
+menu "mpc86xx CPU"
+	depends on MPC86xx
+
+config SYS_CPU
+	string
+	default "mpc86xx"
+
+choice
+	prompt "Target select"
+
+config TARGET_SBC8641D
+	bool "Support sbc8641d"
+
+config TARGET_MPC8610HPCD
+	bool "Support MPC8610HPCD"
+
+config TARGET_MPC8641HPCN
+	bool "Support MPC8641HPCN"
+
+config TARGET_XPEDITE517X
+	bool "Support xpedite517x"
+
+endchoice
+
+source "board/freescale/mpc8610hpcd/Kconfig"
+source "board/freescale/mpc8641hpcn/Kconfig"
+source "board/sbc8641d/Kconfig"
+source "board/xes/xpedite517x/Kconfig"
+
+endmenu

+ 1 - 1
arch/powerpc/cpu/mpc86xx/config.mk

@@ -5,4 +5,4 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-PLATFORM_CPPFLAGS += -DCONFIG_MPC86xx -mstring -maltivec -mabi=altivec -msoft-float
+PLATFORM_CPPFLAGS += -mstring -maltivec -mabi=altivec -msoft-float

+ 160 - 0
arch/powerpc/cpu/mpc8xx/Kconfig

@@ -0,0 +1,160 @@
+menu "mpc8xx CPU"
+	depends on 8xx
+
+config SYS_CPU
+	string
+	default "mpc8xx"
+
+choice
+	prompt "Target select"
+
+config TARGET_COGENT_MPC8XX
+	bool "Support cogent_mpc8xx"
+
+config TARGET_ESTEEM192E
+	bool "Support ESTEEM192E"
+
+config TARGET_FLAGADM
+	bool "Support FLAGADM"
+
+config TARGET_GEN860T
+	bool "Support GEN860T"
+
+config TARGET_HERMES
+	bool "Support hermes"
+
+config TARGET_ICU862
+	bool "Support ICU862"
+
+config TARGET_IP860
+	bool "Support IP860"
+
+config TARGET_IVML24
+	bool "Support IVML24"
+
+config TARGET_IVMS8
+	bool "Support IVMS8"
+
+config TARGET_LWMON
+	bool "Support lwmon"
+
+config TARGET_NETVIA
+	bool "Support NETVIA"
+
+config TARGET_R360MPI
+	bool "Support R360MPI"
+
+config TARGET_RRVISION
+	bool "Support RRvision"
+
+config TARGET_SXNI855T
+	bool "Support SXNI855T"
+
+config TARGET_SPD823TS
+	bool "Support SPD823TS"
+
+config TARGET_SVM_SC8XX
+	bool "Support svm_sc8xx"
+
+config TARGET_MHPC
+	bool "Support MHPC"
+
+config TARGET_TOP860
+	bool "Support TOP860"
+
+config TARGET_KUP4K
+	bool "Support KUP4K"
+
+config TARGET_KUP4X
+	bool "Support KUP4X"
+
+config TARGET_ELPT860
+	bool "Support ELPT860"
+
+config TARGET_UC100
+	bool "Support uc100"
+
+config TARGET_STXXTC
+	bool "Support stxxtc"
+
+config TARGET_FPS850L
+	bool "Support FPS850L"
+
+config TARGET_FPS860L
+	bool "Support FPS860L"
+
+config TARGET_NSCU
+	bool "Support NSCU"
+
+config TARGET_SM850
+	bool "Support SM850"
+
+config TARGET_TK885D
+	bool "Support TK885D"
+
+config TARGET_TQM823L
+	bool "Support TQM823L"
+
+config TARGET_TQM823M
+	bool "Support TQM823M"
+
+config TARGET_TQM850L
+	bool "Support TQM850L"
+
+config TARGET_TQM850M
+	bool "Support TQM850M"
+
+config TARGET_TQM855L
+	bool "Support TQM855L"
+
+config TARGET_TQM855M
+	bool "Support TQM855M"
+
+config TARGET_TQM860L
+	bool "Support TQM860L"
+
+config TARGET_TQM860M
+	bool "Support TQM860M"
+
+config TARGET_TQM862L
+	bool "Support TQM862L"
+
+config TARGET_TQM862M
+	bool "Support TQM862M"
+
+config TARGET_TQM866M
+	bool "Support TQM866M"
+
+config TARGET_TQM885D
+	bool "Support TQM885D"
+
+config TARGET_VIRTLAB2
+	bool "Support virtlab2"
+
+endchoice
+
+source "board/LEOX/elpt860/Kconfig"
+source "board/RRvision/Kconfig"
+source "board/cogent/Kconfig"
+source "board/eltec/mhpc/Kconfig"
+source "board/emk/top860/Kconfig"
+source "board/esteem192e/Kconfig"
+source "board/flagadm/Kconfig"
+source "board/gen860t/Kconfig"
+source "board/hermes/Kconfig"
+source "board/icu862/Kconfig"
+source "board/ip860/Kconfig"
+source "board/ivm/Kconfig"
+source "board/kup/kup4k/Kconfig"
+source "board/kup/kup4x/Kconfig"
+source "board/lwmon/Kconfig"
+source "board/manroland/uc100/Kconfig"
+source "board/netvia/Kconfig"
+source "board/r360mpi/Kconfig"
+source "board/sixnet/Kconfig"
+source "board/spd8xx/Kconfig"
+source "board/stx/stxxtc/Kconfig"
+source "board/svm_sc8xx/Kconfig"
+source "board/tqc/tqm8xx/Kconfig"
+
+endmenu

+ 1 - 1
arch/powerpc/cpu/mpc8xx/config.mk

@@ -5,4 +5,4 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-PLATFORM_CPPFLAGS += -DCONFIG_8xx -mstring -mcpu=860 -msoft-float
+PLATFORM_CPPFLAGS += -mstring -mcpu=860 -msoft-float

+ 0 - 1
arch/powerpc/cpu/mpc8xxx/cpu.c

@@ -65,7 +65,6 @@ static struct cpu_type cpu_type_list[] = {
 	CPU_TYPE_ENTRY(T4080, T4080, 4),
 	CPU_TYPE_ENTRY(B4860, B4860, 0),
 	CPU_TYPE_ENTRY(G4860, G4860, 0),
-	CPU_TYPE_ENTRY(G4060, G4060, 0),
 	CPU_TYPE_ENTRY(B4440, B4440, 0),
 	CPU_TYPE_ENTRY(B4460, B4460, 0),
 	CPU_TYPE_ENTRY(G4440, G4440, 0),

+ 322 - 0
arch/powerpc/cpu/ppc4xx/Kconfig

@@ -0,0 +1,322 @@
+menu "ppc4xx CPU"
+	depends on 4xx
+
+config SYS_CPU
+	string
+	default "ppc4xx"
+
+choice
+	prompt "Target select"
+
+config TARGET_CSB272
+	bool "Support csb272"
+
+config TARGET_CSB472
+	bool "Support csb472"
+
+config TARGET_G2000
+	bool "Support G2000"
+
+config TARGET_JSE
+	bool "Support JSE"
+
+config TARGET_KORAT
+	bool "Support korat"
+
+config TARGET_LWMON5
+	bool "Support lwmon5"
+
+config TARGET_PCS440EP
+	bool "Support pcs440ep"
+
+config TARGET_SBC405
+	bool "Support sbc405"
+
+config TARGET_SC3
+	bool "Support sc3"
+
+config TARGET_T3CORP
+	bool "Support t3corp"
+
+config TARGET_W7OLMC
+	bool "Support W7OLMC"
+
+config TARGET_W7OLMG
+	bool "Support W7OLMG"
+
+config TARGET_ZEUS
+	bool "Support zeus"
+
+config TARGET_ACADIA
+	bool "Support acadia"
+
+config TARGET_BAMBOO
+	bool "Support bamboo"
+
+config TARGET_BLUESTONE
+	bool "Support bluestone"
+
+config TARGET_BUBINGA
+	bool "Support bubinga"
+
+config TARGET_CANYONLANDS
+	bool "Support canyonlands"
+
+config TARGET_EBONY
+	bool "Support ebony"
+
+config TARGET_KATMAI
+	bool "Support katmai"
+
+config TARGET_KILAUEA
+	bool "Support kilauea"
+
+config TARGET_LUAN
+	bool "Support luan"
+
+config TARGET_MAKALU
+	bool "Support makalu"
+
+config TARGET_OCOTEA
+	bool "Support ocotea"
+
+config TARGET_REDWOOD
+	bool "Support redwood"
+
+config TARGET_SEQUOIA
+	bool "Support sequoia"
+
+config TARGET_TAIHU
+	bool "Support taihu"
+
+config TARGET_TAISHAN
+	bool "Support taishan"
+
+config TARGET_WALNUT
+	bool "Support walnut"
+
+config TARGET_YOSEMITE
+	bool "Support yosemite"
+
+config TARGET_YUCCA
+	bool "Support yucca"
+
+config TARGET_FX12MM
+	bool "Support fx12mm"
+
+config TARGET_V5FX30TEVAL
+	bool "Support v5fx30teval"
+
+config TARGET_CRAYL1
+	bool "Support CRAYL1"
+
+config TARGET_CATCENTER
+	bool "Support CATcenter"
+
+config TARGET_PPCHAMELEONEVB
+	bool "Support PPChameleonEVB"
+
+config TARGET_APC405
+	bool "Support APC405"
+
+config TARGET_AR405
+	bool "Support AR405"
+
+config TARGET_ASH405
+	bool "Support ASH405"
+
+config TARGET_CMS700
+	bool "Support CMS700"
+
+config TARGET_CPCI2DP
+	bool "Support CPCI2DP"
+
+config TARGET_CPCI405
+	bool "Support CPCI405"
+
+config TARGET_CPCI4052
+	bool "Support CPCI4052"
+
+config TARGET_CPCI405AB
+	bool "Support CPCI405AB"
+
+config TARGET_CPCI405DT
+	bool "Support CPCI405DT"
+
+config TARGET_CPCIISER4
+	bool "Support CPCIISER4"
+
+config TARGET_DP405
+	bool "Support DP405"
+
+config TARGET_DU405
+	bool "Support DU405"
+
+config TARGET_DU440
+	bool "Support DU440"
+
+config TARGET_HH405
+	bool "Support HH405"
+
+config TARGET_HUB405
+	bool "Support HUB405"
+
+config TARGET_OCRTC
+	bool "Support OCRTC"
+
+config TARGET_PCI405
+	bool "Support PCI405"
+
+config TARGET_PLU405
+	bool "Support PLU405"
+
+config TARGET_PMC405
+	bool "Support PMC405"
+
+config TARGET_PMC405DE
+	bool "Support PMC405DE"
+
+config TARGET_PMC440
+	bool "Support PMC440"
+
+config TARGET_VOH405
+	bool "Support VOH405"
+
+config TARGET_VOM405
+	bool "Support VOM405"
+
+config TARGET_WUH405
+	bool "Support WUH405"
+
+config TARGET_DLVISION_10G
+	bool "Support dlvision-10g"
+
+config TARGET_IO
+	bool "Support io"
+
+config TARGET_IOCON
+	bool "Support iocon"
+
+config TARGET_NEO
+	bool "Support neo"
+
+config TARGET_IO64
+	bool "Support io64"
+
+config TARGET_DLVISION
+	bool "Support dlvision"
+
+config TARGET_GDPPC440ETX
+	bool "Support gdppc440etx"
+
+config TARGET_INTIP
+	bool "Support intip"
+
+config TARGET_ICON
+	bool "Support icon"
+
+config TARGET_MIP405
+	bool "Support MIP405"
+
+config TARGET_PIP405
+	bool "Support PIP405"
+
+config TARGET_ALPR
+	bool "Support alpr"
+
+config TARGET_P3P440
+	bool "Support p3p440"
+
+config TARGET_KAREF
+	bool "Support KAREF"
+
+config TARGET_METROBOX
+	bool "Support METROBOX"
+
+config TARGET_XPEDITE1000
+	bool "Support xpedite1000"
+
+config TARGET_ML507
+	bool "Support ml507"
+
+config TARGET_XILINX_PPC405_GENERIC
+	bool "Support xilinx-ppc405-generic"
+
+config TARGET_XILINX_PPC440_GENERIC
+	bool "Support xilinx-ppc440-generic"
+
+endchoice
+
+source "board/amcc/acadia/Kconfig"
+source "board/amcc/bamboo/Kconfig"
+source "board/amcc/bluestone/Kconfig"
+source "board/amcc/bubinga/Kconfig"
+source "board/amcc/canyonlands/Kconfig"
+source "board/amcc/ebony/Kconfig"
+source "board/amcc/katmai/Kconfig"
+source "board/amcc/kilauea/Kconfig"
+source "board/amcc/luan/Kconfig"
+source "board/amcc/makalu/Kconfig"
+source "board/amcc/ocotea/Kconfig"
+source "board/amcc/redwood/Kconfig"
+source "board/amcc/sequoia/Kconfig"
+source "board/amcc/taihu/Kconfig"
+source "board/amcc/taishan/Kconfig"
+source "board/amcc/walnut/Kconfig"
+source "board/amcc/yosemite/Kconfig"
+source "board/amcc/yucca/Kconfig"
+source "board/avnet/fx12mm/Kconfig"
+source "board/avnet/v5fx30teval/Kconfig"
+source "board/cray/L1/Kconfig"
+source "board/csb272/Kconfig"
+source "board/csb472/Kconfig"
+source "board/dave/PPChameleonEVB/Kconfig"
+source "board/esd/apc405/Kconfig"
+source "board/esd/ar405/Kconfig"
+source "board/esd/ash405/Kconfig"
+source "board/esd/cms700/Kconfig"
+source "board/esd/cpci2dp/Kconfig"
+source "board/esd/cpci405/Kconfig"
+source "board/esd/cpciiser4/Kconfig"
+source "board/esd/dp405/Kconfig"
+source "board/esd/du405/Kconfig"
+source "board/esd/du440/Kconfig"
+source "board/esd/hh405/Kconfig"
+source "board/esd/hub405/Kconfig"
+source "board/esd/ocrtc/Kconfig"
+source "board/esd/pci405/Kconfig"
+source "board/esd/plu405/Kconfig"
+source "board/esd/pmc405/Kconfig"
+source "board/esd/pmc405de/Kconfig"
+source "board/esd/pmc440/Kconfig"
+source "board/esd/voh405/Kconfig"
+source "board/esd/vom405/Kconfig"
+source "board/esd/wuh405/Kconfig"
+source "board/g2000/Kconfig"
+source "board/gdsys/405ep/Kconfig"
+source "board/gdsys/405ex/Kconfig"
+source "board/gdsys/dlvision/Kconfig"
+source "board/gdsys/gdppc440etx/Kconfig"
+source "board/gdsys/intip/Kconfig"
+source "board/jse/Kconfig"
+source "board/korat/Kconfig"
+source "board/lwmon5/Kconfig"
+source "board/mosaixtech/icon/Kconfig"
+source "board/mpl/mip405/Kconfig"
+source "board/mpl/pip405/Kconfig"
+source "board/pcs440ep/Kconfig"
+source "board/prodrive/alpr/Kconfig"
+source "board/prodrive/p3p440/Kconfig"
+source "board/sandburst/karef/Kconfig"
+source "board/sandburst/metrobox/Kconfig"
+source "board/sbc405/Kconfig"
+source "board/sc3/Kconfig"
+source "board/t3corp/Kconfig"
+source "board/w7o/Kconfig"
+source "board/xes/xpedite1000/Kconfig"
+source "board/xilinx/ml507/Kconfig"
+source "board/xilinx/ppc405-generic/Kconfig"
+source "board/xilinx/ppc440-generic/Kconfig"
+source "board/zeus/Kconfig"
+
+endmenu

+ 3 - 3
arch/powerpc/cpu/ppc4xx/config.mk

@@ -5,10 +5,10 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-PLATFORM_CPPFLAGS += -DCONFIG_4xx -mstring -msoft-float
+PLATFORM_CPPFLAGS += -mstring -msoft-float
 
-cfg=$(shell grep configs $(objtree)/include/config.h | sed 's/.*<\(configs.*\)>/\1/')
-is440:=$(shell grep CONFIG_440 $(srctree)/include/$(cfg))
+cfg=$(srctree)/include/configs/$(CONFIG_SYS_CONFIG_NAME:"%"=%).h
+is440:=$(shell grep CONFIG_440 $(cfg))
 
 ifneq (,$(findstring CONFIG_440,$(is440)))
 PLATFORM_CPPFLAGS += -Wa,-m440 -mcpu=440

+ 2 - 2
arch/powerpc/cpu/ppc4xx/cpu_init.c

@@ -12,9 +12,7 @@
 #include <asm/ppc4xx-gpio.h>
 #include <asm/ppc4xx.h>
 
-#if defined(CONFIG_405GP)  || defined(CONFIG_405EP)
 DECLARE_GLOBAL_DATA_PTR;
-#endif
 
 #ifndef CONFIG_SYS_PLL_RECONFIG
 #define CONFIG_SYS_PLL_RECONFIG	0
@@ -451,6 +449,8 @@ cpu_init_f (void)
 	mtdcr(PLB4A1_ACR, (mfdcr(PLB4A1_ACR) & ~PLB4Ax_ACR_RDP_MASK) |
 	      PLB4Ax_ACR_RDP_4DEEP);
 #endif /* CONFIG_440SP/SPE || CONFIG_460EX/GT || CONFIG_405EX */
+
+	gd = (gd_t *)(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_GBL_DATA_OFFSET);
 }
 
 /*

+ 6 - 0
arch/powerpc/include/asm/cache.h

@@ -57,6 +57,12 @@ extern void unlock_ram_in_cache(void);
 #endif /* CONFIG_SYS_INIT_RAM_LOCK */
 #endif /* __ASSEMBLY__ */
 
+#if defined(__KERNEL__) && !defined(__ASSEMBLY__)
+int l2cache_init(void);
+void enable_cpc(void);
+void disable_cpc_sram(void);
+#endif
+
 /* prep registers for L2 */
 #define CACHECRBA       0x80000823      /* Cache configuration register address */
 #define L2CACHE_MASK	0x03	/* Mask for 2 L2 Cache bits */

+ 6 - 0
arch/powerpc/include/asm/immap_85xx.h

@@ -2905,6 +2905,8 @@ struct ccsr_sfp_regs {
 #endif
 #define CONFIG_SYS_FSL_CORENET_SERDES_OFFSET	0xEA000
 #define CONFIG_SYS_FSL_CORENET_SERDES2_OFFSET	0xEB000
+#define CONFIG_SYS_FSL_CORENET_SERDES3_OFFSET	0xEC000
+#define CONFIG_SYS_FSL_CORENET_SERDES4_OFFSET	0xED000
 #define CONFIG_SYS_FSL_CPC_OFFSET		0x10000
 #define CONFIG_SYS_FSL_SCFG_OFFSET		0xFC000
 #define CONFIG_SYS_MPC85xx_DMA1_OFFSET		0x100000
@@ -3090,6 +3092,10 @@ struct ccsr_sfp_regs {
 	(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_CORENET_SERDES_OFFSET)
 #define CONFIG_SYS_FSL_CORENET_SERDES2_ADDR \
 	(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_CORENET_SERDES2_OFFSET)
+#define CONFIG_SYS_FSL_CORENET_SERDES3_ADDR \
+	(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_CORENET_SERDES3_OFFSET)
+#define CONFIG_SYS_FSL_CORENET_SERDES4_ADDR \
+	(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_CORENET_SERDES4_OFFSET)
 #define CONFIG_SYS_MPC85xx_USB1_ADDR \
 	(CONFIG_SYS_IMMR + CONFIG_SYS_MPC85xx_USB1_OFFSET)
 #define CONFIG_SYS_MPC85xx_USB2_ADDR \

+ 3 - 0
arch/powerpc/include/asm/io.h

@@ -123,6 +123,9 @@ static inline void isync(void)
 #define iobarrier_r()  eieio()
 #define iobarrier_w()  eieio()
 
+#define mb()	sync()
+#define isb()	isync()
+
 /*
  * Non ordered and non-swapping "raw" accessors
  */

+ 5 - 1
arch/powerpc/include/asm/processor.h

@@ -378,11 +378,16 @@
 #else
 #define SPRN_TCR	0x154	/* Book E Timer Control Register */
 #endif /* CONFIG_BOOKE */
+#ifdef CONFIG_E500MC
+#define  TCR_WP(x)		(((64-x)&0x3)<<30)| \
+				(((64-x)&0x3c)<<15) /* WDT Period 2^x clocks*/
+#else
 #define   TCR_WP(x)		(((x)&0x3)<<30)	/* WDT Period */
 #define     WP_2_17		0		/* 2^17 clocks */
 #define     WP_2_21		1		/* 2^21 clocks */
 #define     WP_2_25		2		/* 2^25 clocks */
 #define     WP_2_29		3		/* 2^29 clocks */
+#endif /* CONFIG_E500 */
 #define   TCR_WRC(x)		(((x)&0x3)<<28)	/* WDT Reset Control */
 #define     WRC_NONE		0		/* No reset will occur */
 #define     WRC_CORE		1		/* Core reset will occur */
@@ -1118,7 +1123,6 @@
 #define SVR_B4860	0X868000
 #define SVR_G4860	0x868001
 #define SVR_B4460	0x868003
-#define SVR_G4060	0x868003
 #define SVR_B4440	0x868100
 #define SVR_G4440	0x868101
 #define SVR_B4420	0x868102

+ 8 - 0
arch/powerpc/lib/board.c

@@ -226,6 +226,9 @@ static int init_func_spi(void)
 #if defined(CONFIG_WATCHDOG)
 int init_func_watchdog_init(void)
 {
+#if defined(CONFIG_MPC85xx)
+	init_85xx_watchdog();
+#endif
 	puts("       Watchdog enabled\n");
 	WATCHDOG_RESET();
 	return 0;
@@ -370,6 +373,11 @@ void board_init_f(ulong bootflag)
 #ifdef CONFIG_DEEP_SLEEP
 	/* Jump to kernel in deep sleep case */
 	if (in_be32(&gur->scrtsr[0]) & (1 << 3)) {
+		l2cache_init();
+#if defined(CONFIG_RAMBOOT_PBL)
+		disable_cpc_sram();
+#endif
+		enable_cpc();
 		start_addr = in_be32(&scfg->sparecr[1]);
 		kernel_resume = (func_t)start_addr;
 		kernel_resume();

+ 16 - 0
arch/sandbox/Kconfig

@@ -0,0 +1,16 @@
+menu "Sandbox architecture"
+	depends on SANDBOX
+
+config SYS_ARCH
+	string
+	default "sandbox"
+
+config SYS_BOARD
+	string
+	default "sandbox"
+
+config SYS_CONFIG_NAME
+	string
+	default "sandbox"
+
+endmenu

+ 1 - 1
arch/sandbox/config.mk

@@ -1,7 +1,7 @@
 # Copyright (c) 2011 The Chromium OS Authors.
 # SPDX-License-Identifier:	GPL-2.0+
 
-PLATFORM_CPPFLAGS += -DCONFIG_SANDBOX -D__SANDBOX__ -U_FORTIFY_SOURCE
+PLATFORM_CPPFLAGS += -D__SANDBOX__ -U_FORTIFY_SOURCE
 PLATFORM_CPPFLAGS += -DCONFIG_ARCH_MAP_SYSMEM -DCONFIG_SYS_GENERIC_BOARD
 PLATFORM_LIBS += -lrt
 

+ 98 - 0
arch/sh/Kconfig

@@ -0,0 +1,98 @@
+menu "SuperH architecture"
+	depends on SH
+
+config SYS_ARCH
+	string
+	default "sh"
+
+choice
+	prompt "Target select"
+
+config TARGET_RSK7203
+	bool "Support rsk7203"
+
+config TARGET_RSK7264
+	bool "Support rsk7264"
+
+config TARGET_RSK7269
+	bool "Support rsk7269"
+
+config TARGET_MPR2
+	bool "Support mpr2"
+
+config TARGET_MS7720SE
+	bool "Support ms7720se"
+
+config TARGET_SHMIN
+	bool "Support shmin"
+
+config TARGET_ESPT
+	bool "Support espt"
+
+config TARGET_MS7722SE
+	bool "Support ms7722se"
+
+config TARGET_MS7750SE
+	bool "Support ms7750se"
+
+config TARGET_AP_SH4A_4A
+	bool "Support ap_sh4a_4a"
+
+config TARGET_AP325RXA
+	bool "Support ap325rxa"
+
+config TARGET_ECOVEC
+	bool "Support ecovec"
+
+config TARGET_MIGOR
+	bool "Support MigoR"
+
+config TARGET_R0P7734
+	bool "Support r0p7734"
+
+config TARGET_R2DPLUS
+	bool "Support r2dplus"
+
+config TARGET_R7780MP
+	bool "Support r7780mp"
+
+config TARGET_SH7752EVB
+	bool "Support sh7752evb"
+
+config TARGET_SH7753EVB
+	bool "Support sh7753evb"
+
+config TARGET_SH7757LCR
+	bool "Support sh7757lcr"
+
+config TARGET_SH7763RDP
+	bool "Support sh7763rdp"
+
+config TARGET_SH7785LCR
+	bool "Support sh7785lcr"
+
+endchoice
+
+source "board/alphaproject/ap_sh4a_4a/Kconfig"
+source "board/espt/Kconfig"
+source "board/mpr2/Kconfig"
+source "board/ms7720se/Kconfig"
+source "board/ms7722se/Kconfig"
+source "board/ms7750se/Kconfig"
+source "board/renesas/MigoR/Kconfig"
+source "board/renesas/ap325rxa/Kconfig"
+source "board/renesas/ecovec/Kconfig"
+source "board/renesas/r0p7734/Kconfig"
+source "board/renesas/r2dplus/Kconfig"
+source "board/renesas/r7780mp/Kconfig"
+source "board/renesas/rsk7203/Kconfig"
+source "board/renesas/rsk7264/Kconfig"
+source "board/renesas/rsk7269/Kconfig"
+source "board/renesas/sh7752evb/Kconfig"
+source "board/renesas/sh7753evb/Kconfig"
+source "board/renesas/sh7757lcr/Kconfig"
+source "board/renesas/sh7763rdp/Kconfig"
+source "board/renesas/sh7785lcr/Kconfig"
+source "board/shmin/Kconfig"
+
+endmenu

+ 34 - 0
arch/sparc/Kconfig

@@ -0,0 +1,34 @@
+menu "SPARC architecture"
+	depends on SPARC
+
+config SYS_ARCH
+	string
+	default "sparc"
+
+choice
+	prompt "Target select"
+
+config TARGET_GRSIM_LEON2
+	bool "Support grsim_leon2"
+
+config TARGET_GR_CPCI_AX2000
+	bool "Support gr_cpci_ax2000"
+
+config TARGET_GR_EP2S60
+	bool "Support gr_ep2s60"
+
+config TARGET_GR_XC3S_1500
+	bool "Support gr_xc3s_1500"
+
+config TARGET_GRSIM
+	bool "Support grsim"
+
+endchoice
+
+source "board/gaisler/gr_cpci_ax2000/Kconfig"
+source "board/gaisler/gr_ep2s60/Kconfig"
+source "board/gaisler/gr_xc3s_1500/Kconfig"
+source "board/gaisler/grsim/Kconfig"
+source "board/gaisler/grsim_leon2/Kconfig"
+
+endmenu

+ 1 - 1
arch/sparc/config.mk

@@ -14,4 +14,4 @@ gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
 CONFIG_STANDALONE_LOAD_ADDR ?= 0x00000000 -L $(gcclibdir) \
 			       -T $(srctree)/examples/standalone/sparc.lds
 
-PLATFORM_CPPFLAGS += -DCONFIG_SPARC -D__sparc__
+PLATFORM_CPPFLAGS += -D__sparc__

+ 18 - 0
arch/x86/Kconfig

@@ -0,0 +1,18 @@
+menu "x86 architecture"
+	depends on X86
+
+config SYS_ARCH
+	string
+	default "x86"
+
+choice
+	prompt "Target select"
+
+config TARGET_COREBOOT
+	bool "Support coreboot"
+
+endchoice
+
+source "board/chromebook-x86/coreboot/Kconfig"
+
+endmenu

+ 1 - 1
arch/x86/cpu/config.mk

@@ -7,7 +7,7 @@
 
 CROSS_COMPILE ?= i386-linux-
 
-PLATFORM_CPPFLAGS += -DCONFIG_X86 -D__I386__ -Werror
+PLATFORM_CPPFLAGS += -D__I386__ -Werror
 
 # DO NOT MODIFY THE FOLLOWING UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!
 LDPPFLAGS += -DRESET_SEG_START=0xffff0000

+ 23 - 0
board/8dtech/eco5pk/Kconfig

@@ -0,0 +1,23 @@
+if TARGET_ECO5PK
+
+config SYS_CPU
+	string
+	default "armv7"
+
+config SYS_BOARD
+	string
+	default "eco5pk"
+
+config SYS_VENDOR
+	string
+	default "8dtech"
+
+config SYS_SOC
+	string
+	default "omap3"
+
+config SYS_CONFIG_NAME
+	string
+	default "eco5pk"
+
+endif

+ 6 - 0
board/8dtech/eco5pk/MAINTAINERS

@@ -0,0 +1,6 @@
+ECO5PK BOARD
+M:	Raphael Assenat <raph@8d.com>
+S:	Maintained
+F:	board/8dtech/eco5pk/
+F:	include/configs/eco5pk.h
+F:	configs/eco5pk_defconfig

+ 23 - 0
board/AndesTech/adp-ag101/Kconfig

@@ -0,0 +1,23 @@
+if TARGET_ADP_AG101
+
+config SYS_CPU
+	string
+	default "n1213"
+
+config SYS_BOARD
+	string
+	default "adp-ag101"
+
+config SYS_VENDOR
+	string
+	default "AndesTech"
+
+config SYS_SOC
+	string
+	default "ag101"
+
+config SYS_CONFIG_NAME
+	string
+	default "adp-ag101"
+
+endif

+ 6 - 0
board/AndesTech/adp-ag101/MAINTAINERS

@@ -0,0 +1,6 @@
+ADP-AG101 BOARD
+M:	Andes <uboot@andestech.com>
+S:	Maintained
+F:	board/AndesTech/adp-ag101/
+F:	include/configs/adp-ag101.h
+F:	configs/adp-ag101_defconfig

+ 23 - 0
board/AndesTech/adp-ag101p/Kconfig

@@ -0,0 +1,23 @@
+if TARGET_ADP_AG101P
+
+config SYS_CPU
+	string
+	default "n1213"
+
+config SYS_BOARD
+	string
+	default "adp-ag101p"
+
+config SYS_VENDOR
+	string
+	default "AndesTech"
+
+config SYS_SOC
+	string
+	default "ag101"
+
+config SYS_CONFIG_NAME
+	string
+	default "adp-ag101p"
+
+endif

+ 6 - 0
board/AndesTech/adp-ag101p/MAINTAINERS

@@ -0,0 +1,6 @@
+ADP-AG101P BOARD
+M:	Andes <uboot@andestech.com>
+S:	Maintained
+F:	board/AndesTech/adp-ag101p/
+F:	include/configs/adp-ag101p.h
+F:	configs/adp-ag101p_defconfig

+ 23 - 0
board/AndesTech/adp-ag102/Kconfig

@@ -0,0 +1,23 @@
+if TARGET_ADP_AG102
+
+config SYS_CPU
+	string
+	default "n1213"
+
+config SYS_BOARD
+	string
+	default "adp-ag102"
+
+config SYS_VENDOR
+	string
+	default "AndesTech"
+
+config SYS_SOC
+	string
+	default "ag102"
+
+config SYS_CONFIG_NAME
+	string
+	default "adp-ag102"
+
+endif

+ 6 - 0
board/AndesTech/adp-ag102/MAINTAINERS

@@ -0,0 +1,6 @@
+ADP-AG102 BOARD
+M:	Andes <uboot@andestech.com>
+S:	Maintained
+F:	board/AndesTech/adp-ag102/
+F:	include/configs/adp-ag102.h
+F:	configs/adp-ag102_defconfig

+ 23 - 0
board/Barix/ipam390/Kconfig

@@ -0,0 +1,23 @@
+if TARGET_IPAM390
+
+config SYS_CPU
+	string
+	default "arm926ejs"
+
+config SYS_BOARD
+	string
+	default "ipam390"
+
+config SYS_VENDOR
+	string
+	default "Barix"
+
+config SYS_SOC
+	string
+	default "davinci"
+
+config SYS_CONFIG_NAME
+	string
+	default "ipam390"
+
+endif

+ 6 - 0
board/Barix/ipam390/MAINTAINERS

@@ -0,0 +1,6 @@
+IPAM390 BOARD
+M:	Heiko Schocher <hs@denx.de>
+S:	Maintained
+F:	board/Barix/ipam390/
+F:	include/configs/ipam390.h
+F:	configs/ipam390_defconfig

+ 23 - 0
board/BuR/kwb/Kconfig

@@ -0,0 +1,23 @@
+if TARGET_KWB
+
+config SYS_CPU
+	string
+	default "armv7"
+
+config SYS_BOARD
+	string
+	default "kwb"
+
+config SYS_VENDOR
+	string
+	default "BuR"
+
+config SYS_SOC
+	string
+	default "am33xx"
+
+config SYS_CONFIG_NAME
+	string
+	default "kwb"
+
+endif

+ 6 - 0
board/BuR/kwb/MAINTAINERS

@@ -0,0 +1,6 @@
+KWB BOARD
+M:	Hannes Petermaier <hannes.petermaier@br-automation.com>
+S:	Maintained
+F:	board/BuR/kwb/
+F:	include/configs/kwb.h
+F:	configs/kwb_defconfig

+ 23 - 0
board/BuR/tseries/Kconfig

@@ -0,0 +1,23 @@
+if TARGET_TSERIES
+
+config SYS_CPU
+	string
+	default "armv7"
+
+config SYS_BOARD
+	string
+	default "tseries"
+
+config SYS_VENDOR
+	string
+	default "BuR"
+
+config SYS_SOC
+	string
+	default "am33xx"
+
+config SYS_CONFIG_NAME
+	string
+	default "tseries"
+
+endif

+ 8 - 0
board/BuR/tseries/MAINTAINERS

@@ -0,0 +1,8 @@
+TSERIES BOARD
+M:	Hannes Petermaier <hannes.petermaier@br-automation.com>
+S:	Maintained
+F:	board/BuR/tseries/
+F:	include/configs/tseries.h
+F:	configs/tseries_mmc_defconfig
+F:	configs/tseries_nand_defconfig
+F:	configs/tseries_spi_defconfig

Some files were not shown because too many files changed in this diff