summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README1
-rw-r--r--arch/arm/Kconfig465
-rw-r--r--arch/arm/cpu/arm1136/u-boot-spl.lds1
-rw-r--r--arch/arm/cpu/arm920t/ep93xx/u-boot.lds58
-rw-r--r--arch/arm/cpu/arm926ejs/davinci/Kconfig79
-rw-r--r--arch/arm/cpu/arm926ejs/kirkwood/Kconfig89
-rw-r--r--arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds1
-rw-r--r--arch/arm/cpu/arm926ejs/nomadik/Kconfig21
-rw-r--r--arch/arm/cpu/arm926ejs/orion5x/Kconfig21
-rw-r--r--arch/arm/cpu/arm926ejs/versatile/Kconfig23
-rw-r--r--arch/arm/cpu/armv7/Makefile1
-rw-r--r--arch/arm/cpu/armv7/am33xx/u-boot-spl.lds1
-rw-r--r--arch/arm/cpu/armv7/bcm281xx/Makefile1
-rw-r--r--arch/arm/cpu/armv7/bcm281xx/clk-bcm281xx.c34
-rw-r--r--arch/arm/cpu/armv7/bcm281xx/clk-eth.c143
-rw-r--r--arch/arm/cpu/armv7/bcmcygnus/Makefile7
-rw-r--r--arch/arm/cpu/armv7/bcmcygnus/reset.c20
-rw-r--r--arch/arm/cpu/armv7/bcmnsp/Makefile7
-rw-r--r--arch/arm/cpu/armv7/bcmnsp/reset.c19
-rw-r--r--arch/arm/cpu/armv7/exynos/Kconfig55
-rw-r--r--arch/arm/cpu/armv7/highbank/Kconfig (renamed from board/highbank/Kconfig)2
-rw-r--r--arch/arm/cpu/armv7/iproc-common/Makefile9
-rw-r--r--arch/arm/cpu/armv7/iproc-common/armpll.c170
-rw-r--r--arch/arm/cpu/armv7/iproc-common/hwinit-common.c15
-rw-r--r--arch/arm/cpu/armv7/iproc-common/timer.c130
-rw-r--r--arch/arm/cpu/armv7/keystone/Kconfig24
-rw-r--r--arch/arm/cpu/armv7/omap-common/u-boot-spl.lds1
-rw-r--r--arch/arm/cpu/armv7/omap3/Kconfig107
-rw-r--r--arch/arm/cpu/armv7/omap4/Kconfig29
-rw-r--r--arch/arm/cpu/armv7/omap5/Kconfig29
-rw-r--r--arch/arm/cpu/armv7/rmobile/Kconfig37
-rw-r--r--arch/arm/cpu/armv7/socfpga/clock_manager.c113
-rw-r--r--arch/arm/cpu/armv7/socfpga/config.mk3
-rw-r--r--arch/arm/cpu/armv7/socfpga/misc.c17
-rw-r--r--arch/arm/cpu/armv7/socfpga/spl.c2
-rw-r--r--arch/arm/cpu/armv7/socfpga/u-boot-spl.lds1
-rw-r--r--arch/arm/cpu/armv7/tegra-common/Kconfig30
-rw-r--r--arch/arm/cpu/armv7/tegra114/Kconfig17
-rw-r--r--arch/arm/cpu/armv7/tegra124/Kconfig21
-rw-r--r--arch/arm/cpu/armv7/tegra20/Kconfig53
-rw-r--r--arch/arm/cpu/armv7/tegra30/Kconfig29
-rw-r--r--arch/arm/cpu/armv7/zynq/Kconfig43
-rw-r--r--arch/arm/cpu/at91-common/u-boot-spl.lds1
-rw-r--r--arch/arm/include/asm/arch-bcm281xx/sysmap.h3
-rw-r--r--arch/arm/include/asm/arch-bcmcygnus/configs.h25
-rw-r--r--arch/arm/include/asm/arch-bcmnsp/configs.h22
-rw-r--r--arch/arm/include/asm/arch-socfpga/clock_manager.h92
-rw-r--r--arch/arm/include/asm/arch-socfpga/scan_manager.h2
-rw-r--r--arch/arm/include/asm/arch-socfpga/socfpga_base_addrs.h2
-rw-r--r--arch/arm/include/asm/arch-tegra114/tegra.h2
-rw-r--r--arch/arm/include/asm/arch-tegra124/tegra.h2
-rw-r--r--arch/arm/include/asm/arch-tegra20/tegra.h2
-rw-r--r--arch/arm/include/asm/arch-tegra30/tegra.h2
-rw-r--r--arch/arm/include/asm/arch-vf610/crm_regs.h14
-rw-r--r--arch/arm/include/asm/arch-vf610/imx-regs.h1
-rw-r--r--arch/arm/include/asm/arch-vf610/iomux-vf610.h34
-rw-r--r--arch/arm/include/asm/imx-common/iomux-v3.h4
-rw-r--r--arch/arm/include/asm/io.h12
-rw-r--r--arch/arm/include/asm/iproc-common/armpll.h14
-rw-r--r--arch/arm/include/asm/iproc-common/configs.h20
-rw-r--r--arch/arm/include/asm/iproc-common/sysmap.h47
-rw-r--r--arch/arm/include/asm/iproc-common/timer.h37
-rw-r--r--arch/arm/lib/bootm.c8
-rw-r--r--arch/arm/lib/cache-cp15.c2
-rw-r--r--arch/arm/lib/vectors.S2
-rw-r--r--board/8dtech/eco5pk/Kconfig8
-rw-r--r--board/Barix/ipam390/Kconfig8
-rw-r--r--board/Barix/ipam390/u-boot-spl-ipam390.lds1
-rw-r--r--board/LaCie/edminiv2/Kconfig8
-rw-r--r--board/LaCie/net2big_v2/Kconfig8
-rw-r--r--board/LaCie/netspace_v2/Kconfig8
-rw-r--r--board/LaCie/wireless_space/Kconfig8
-rw-r--r--board/Marvell/dreamplug/Kconfig8
-rw-r--r--board/Marvell/guruplug/Kconfig8
-rw-r--r--board/Marvell/mv88f6281gtw_ge/Kconfig8
-rw-r--r--board/Marvell/openrd/Kconfig8
-rw-r--r--board/Marvell/rd6281a/Kconfig8
-rw-r--r--board/Marvell/sheevaplug/Kconfig8
-rw-r--r--board/Seagate/dockstar/Kconfig8
-rw-r--r--board/Seagate/goflexhome/Kconfig8
-rw-r--r--board/ait/cam_enc_4xx/Kconfig8
-rw-r--r--board/ait/cam_enc_4xx/u-boot-spl.lds1
-rw-r--r--board/altera/socfpga/Makefile2
-rw-r--r--board/altera/socfpga/socfpga_cyclone5.c9
-rw-r--r--board/armltd/versatile/Kconfig71
-rw-r--r--board/armltd/vexpress/MAINTAINERS2
-rw-r--r--board/atmark-techno/armadillo-800eva/Kconfig8
-rw-r--r--board/avionic-design/medcom-wide/Kconfig9
-rw-r--r--board/avionic-design/plutux/Kconfig9
-rw-r--r--board/avionic-design/tec-ng/Kconfig9
-rw-r--r--board/avionic-design/tec/Kconfig9
-rw-r--r--board/broadcom/bcm28155_w1d/MAINTAINERS6
-rw-r--r--board/broadcom/bcm958300k/Kconfig23
-rw-r--r--board/broadcom/bcm958300k/MAINTAINERS6
-rw-r--r--board/broadcom/bcm958622hr/Kconfig23
-rw-r--r--board/broadcom/bcm958622hr/MAINTAINERS6
-rw-r--r--board/broadcom/bcm_ep/Makefile7
-rw-r--r--board/broadcom/bcm_ep/board.c55
-rw-r--r--board/buffalo/lsxl/Kconfig8
-rw-r--r--board/cirrus/edb93xx/u-boot.lds1
-rw-r--r--board/cloudengines/pogo_e02/Kconfig8
-rw-r--r--board/comelit/dig297/Kconfig8
-rw-r--r--board/compal/paz00/Kconfig9
-rw-r--r--board/compulab/cm_t35/Kconfig8
-rw-r--r--board/compulab/cm_t54/Kconfig8
-rw-r--r--board/compulab/trimslice/Kconfig9
-rw-r--r--board/corscience/tricorder/Kconfig8
-rw-r--r--board/d-link/dns325/Kconfig8
-rw-r--r--board/davinci/da8xxevm/Kconfig24
-rw-r--r--board/davinci/da8xxevm/u-boot-spl-da850evm.lds1
-rw-r--r--board/davinci/da8xxevm/u-boot-spl-hawk.lds1
-rw-r--r--board/davinci/dm355evm/Kconfig8
-rw-r--r--board/davinci/dm355leopard/Kconfig8
-rw-r--r--board/davinci/dm365evm/Kconfig8
-rw-r--r--board/davinci/dm6467evm/Kconfig8
-rw-r--r--board/davinci/dvevm/Kconfig8
-rw-r--r--board/davinci/ea20/Kconfig8
-rw-r--r--board/davinci/schmoogie/Kconfig8
-rw-r--r--board/davinci/sffsdr/Kconfig8
-rw-r--r--board/davinci/sonata/Kconfig8
-rw-r--r--board/enbw/enbw_cmc/Kconfig8
-rw-r--r--board/gumstix/duovero/Kconfig8
-rw-r--r--board/htkw/mcx/Kconfig8
-rw-r--r--board/iomega/iconnect/Kconfig8
-rw-r--r--board/isee/igep00x0/Kconfig8
-rw-r--r--board/karo/tk71/Kconfig8
-rw-r--r--board/keymile/km_arm/Kconfig8
-rw-r--r--board/kmc/kzm9g/Kconfig8
-rw-r--r--board/logicpd/am3517evm/Kconfig8
-rw-r--r--board/logicpd/omap3som/Kconfig8
-rw-r--r--board/logicpd/zoom1/Kconfig8
-rw-r--r--board/matrix_vision/mvblx/Kconfig8
-rw-r--r--board/nokia/rx51/Kconfig8
-rw-r--r--board/nvidia/beaver/Kconfig9
-rw-r--r--board/nvidia/cardhu/Kconfig9
-rw-r--r--board/nvidia/dalmore/Kconfig9
-rw-r--r--board/nvidia/harmony/Kconfig9
-rw-r--r--board/nvidia/jetson-tk1/Kconfig9
-rw-r--r--board/nvidia/seaboard/Kconfig9
-rw-r--r--board/nvidia/venice2/Kconfig9
-rw-r--r--board/nvidia/ventana/Kconfig9
-rw-r--r--board/nvidia/whistler/Kconfig9
-rw-r--r--board/omicron/calimain/Kconfig8
-rw-r--r--board/overo/Kconfig8
-rw-r--r--board/pandora/Kconfig8
-rw-r--r--board/raidsonic/ib62x0/Kconfig8
-rw-r--r--board/renesas/alt/Kconfig8
-rw-r--r--board/renesas/koelsch/Kconfig8
-rw-r--r--board/renesas/lager/Kconfig8
-rw-r--r--board/samsung/arndale/Kconfig8
-rw-r--r--board/samsung/arndale/arndale.c10
-rw-r--r--board/samsung/common/exynos-uboot-spl.lds1
-rw-r--r--board/samsung/origen/Kconfig8
-rw-r--r--board/samsung/smdk5250/Kconfig16
-rw-r--r--board/samsung/smdk5420/Kconfig16
-rw-r--r--board/samsung/smdkv310/Kconfig8
-rw-r--r--board/samsung/trats/Kconfig8
-rw-r--r--board/samsung/trats2/Kconfig8
-rw-r--r--board/samsung/universal_c210/Kconfig8
-rw-r--r--board/st/nhk8815/Kconfig10
-rw-r--r--board/technexion/tao3530/Kconfig8
-rw-r--r--board/technexion/twister/Kconfig8
-rw-r--r--board/teejet/mt_ventoux/Kconfig8
-rw-r--r--board/ti/am3517crane/Kconfig8
-rw-r--r--board/ti/beagle/Kconfig8
-rw-r--r--board/ti/dra7xx/Kconfig8
-rw-r--r--board/ti/evm/Kconfig24
-rw-r--r--board/ti/ks2_evm/Kconfig16
-rw-r--r--board/ti/omap5_uevm/Kconfig8
-rw-r--r--board/ti/panda/Kconfig8
-rw-r--r--board/ti/sdp3430/Kconfig8
-rw-r--r--board/ti/sdp4430/Kconfig8
-rw-r--r--board/timll/devkit8000/Kconfig8
-rw-r--r--board/toradex/colibri_t20_iris/Kconfig9
-rw-r--r--board/toradex/colibri_t30/Kconfig9
-rw-r--r--board/vpac270/u-boot-spl.lds1
-rw-r--r--board/xilinx/zynq/Kconfig95
-rw-r--r--board/xilinx/zynq/MAINTAINERS12
-rw-r--r--common/cmd_bootm.c140
-rw-r--r--configs/alt_defconfig1
-rw-r--r--configs/am3517_crane_defconfig1
-rw-r--r--configs/am3517_evm_defconfig1
-rw-r--r--configs/armadillo-800eva_defconfig1
-rw-r--r--configs/arndale_defconfig1
-rw-r--r--configs/bcm28155_w1d_defconfig3
-rw-r--r--configs/bcm958300k_defconfig3
-rw-r--r--configs/bcm958622hr_defconfig3
-rw-r--r--configs/beaver_defconfig3
-rw-r--r--configs/calimain_defconfig1
-rw-r--r--configs/cam_enc_4xx_defconfig1
-rw-r--r--configs/cardhu_defconfig3
-rw-r--r--configs/cm_t35_defconfig1
-rw-r--r--configs/cm_t54_defconfig1
-rw-r--r--configs/colibri_t20_iris_defconfig3
-rw-r--r--configs/colibri_t30_defconfig3
-rw-r--r--configs/d2net_v2_defconfig1
-rw-r--r--configs/da830evm_defconfig1
-rw-r--r--configs/da850_am18xxevm_defconfig1
-rw-r--r--configs/da850evm_defconfig1
-rw-r--r--configs/da850evm_direct_nor_defconfig1
-rw-r--r--configs/dalmore_defconfig3
-rw-r--r--configs/davinci_dm355evm_defconfig1
-rw-r--r--configs/davinci_dm355leopard_defconfig1
-rw-r--r--configs/davinci_dm365evm_defconfig1
-rw-r--r--configs/davinci_dm6467Tevm_defconfig1
-rw-r--r--configs/davinci_dm6467evm_defconfig1
-rw-r--r--configs/davinci_dvevm_defconfig1
-rw-r--r--configs/davinci_schmoogie_defconfig1
-rw-r--r--configs/davinci_sffsdr_defconfig1
-rw-r--r--configs/davinci_sonata_defconfig1
-rw-r--r--configs/devkit8000_defconfig1
-rw-r--r--configs/dig297_defconfig1
-rw-r--r--configs/dns325_defconfig1
-rw-r--r--configs/dockstar_defconfig1
-rw-r--r--configs/dra7xx_evm_defconfig1
-rw-r--r--configs/dra7xx_evm_qspiboot_defconfig1
-rw-r--r--configs/dra7xx_evm_uart3_defconfig1
-rw-r--r--configs/dreamplug_defconfig1
-rw-r--r--configs/duovero_defconfig1
-rw-r--r--configs/ea20_defconfig1
-rw-r--r--configs/eco5pk_defconfig1
-rw-r--r--configs/edminiv2_defconfig1
-rw-r--r--configs/enbw_cmc_defconfig1
-rw-r--r--configs/goflexhome_defconfig1
-rw-r--r--configs/guruplug_defconfig1
-rw-r--r--configs/harmony_defconfig3
-rw-r--r--configs/hawkboard_defconfig1
-rw-r--r--configs/hawkboard_uart_defconfig1
-rw-r--r--configs/highbank_defconfig2
-rw-r--r--configs/ib62x0_defconfig1
-rw-r--r--configs/iconnect_defconfig1
-rw-r--r--configs/igep0020_defconfig1
-rw-r--r--configs/igep0020_nand_defconfig1
-rw-r--r--configs/igep0030_defconfig1
-rw-r--r--configs/igep0030_nand_defconfig1
-rw-r--r--configs/igep0032_defconfig1
-rw-r--r--configs/inetspace_v2_defconfig1
-rw-r--r--configs/ipam390_defconfig1
-rw-r--r--configs/jetson-tk1_defconfig3
-rw-r--r--configs/k2e_evm_defconfig1
-rw-r--r--configs/k2hk_evm_defconfig1
-rw-r--r--configs/km_kirkwood_128m16_defconfig1
-rw-r--r--configs/km_kirkwood_defconfig1
-rw-r--r--configs/km_kirkwood_pci_defconfig1
-rw-r--r--configs/kmcoge5un_defconfig1
-rw-r--r--configs/kmnusa_defconfig1
-rw-r--r--configs/kmsugp1_defconfig1
-rw-r--r--configs/kmsuv31_defconfig1
-rw-r--r--configs/koelsch_defconfig1
-rw-r--r--configs/kzm9g_defconfig1
-rw-r--r--configs/lager_defconfig1
-rw-r--r--configs/lschlv2_defconfig1
-rw-r--r--configs/lsxhl_defconfig1
-rw-r--r--configs/mcx_defconfig1
-rw-r--r--configs/medcom-wide_defconfig3
-rw-r--r--configs/mgcoge3un_defconfig1
-rw-r--r--configs/mt_ventoux_defconfig1
-rw-r--r--configs/mv88f6281gtw_ge_defconfig1
-rw-r--r--configs/net2big_v2_defconfig1
-rw-r--r--configs/netspace_lite_v2_defconfig1
-rw-r--r--configs/netspace_max_v2_defconfig1
-rw-r--r--configs/netspace_mini_v2_defconfig1
-rw-r--r--configs/netspace_v2_defconfig1
-rw-r--r--configs/nhk8815_defconfig3
-rw-r--r--configs/nhk8815_onenand_defconfig3
-rw-r--r--configs/nokia_rx51_defconfig1
-rw-r--r--configs/omap3_beagle_defconfig1
-rw-r--r--configs/omap3_evm_defconfig1
-rw-r--r--configs/omap3_evm_quick_mmc_defconfig1
-rw-r--r--configs/omap3_evm_quick_nand_defconfig1
-rw-r--r--configs/omap3_ha_defconfig1
-rw-r--r--configs/omap3_logic_defconfig1
-rw-r--r--configs/omap3_mvblx_defconfig1
-rw-r--r--configs/omap3_overo_defconfig1
-rw-r--r--configs/omap3_pandora_defconfig1
-rw-r--r--configs/omap3_sdp3430_defconfig1
-rw-r--r--configs/omap3_zoom1_defconfig1
-rw-r--r--configs/omap4_panda_defconfig1
-rw-r--r--configs/omap4_sdp4430_defconfig1
-rw-r--r--configs/omap5_uevm_defconfig1
-rw-r--r--configs/openrd_base_defconfig1
-rw-r--r--configs/openrd_client_defconfig1
-rw-r--r--configs/openrd_ultimate_defconfig1
-rw-r--r--configs/origen_defconfig1
-rw-r--r--configs/paz00_defconfig3
-rw-r--r--configs/peach-pit_defconfig1
-rw-r--r--configs/plutux_defconfig3
-rw-r--r--configs/pogo_e02_defconfig1
-rw-r--r--configs/portl2_defconfig1
-rw-r--r--configs/rd6281a_defconfig1
-rw-r--r--configs/s5pc210_universal_defconfig1
-rw-r--r--configs/seaboard_defconfig3
-rw-r--r--configs/sheevaplug_defconfig1
-rw-r--r--configs/smdk5250_defconfig1
-rw-r--r--configs/smdk5420_defconfig1
-rw-r--r--configs/smdkv310_defconfig1
-rw-r--r--configs/snow_defconfig1
-rw-r--r--configs/tao3530_defconfig1
-rw-r--r--configs/tec-ng_defconfig3
-rw-r--r--configs/tec_defconfig3
-rw-r--r--configs/tk71_defconfig1
-rw-r--r--configs/trats2_defconfig1
-rw-r--r--configs/trats_defconfig1
-rw-r--r--configs/tricorder_defconfig1
-rw-r--r--configs/tricorder_flash_defconfig1
-rw-r--r--configs/trimslice_defconfig3
-rw-r--r--configs/twister_defconfig1
-rw-r--r--configs/venice2_defconfig3
-rw-r--r--configs/ventana_defconfig3
-rw-r--r--configs/versatileab_defconfig2
-rw-r--r--configs/versatilepb_defconfig2
-rw-r--r--configs/versatileqemu_defconfig2
-rw-r--r--configs/whistler_defconfig3
-rw-r--r--configs/wireless_space_defconfig1
-rw-r--r--configs/zynq_microzed_defconfig1
-rw-r--r--configs/zynq_zc70x_defconfig1
-rw-r--r--configs/zynq_zc770_xm010_defconfig1
-rw-r--r--configs/zynq_zc770_xm012_defconfig1
-rw-r--r--configs/zynq_zc770_xm013_defconfig1
-rw-r--r--configs/zynq_zed_defconfig1
-rw-r--r--drivers/mmc/socfpga_dw_mmc.c12
-rw-r--r--drivers/mtd/nand/kirkwood_nand.c3
-rw-r--r--drivers/net/Makefile2
-rw-r--r--drivers/net/bcm-sf2-eth-gmac.c971
-rw-r--r--drivers/net/bcm-sf2-eth-gmac.h224
-rw-r--r--drivers/net/bcm-sf2-eth.c268
-rw-r--r--drivers/net/bcm-sf2-eth.h70
-rw-r--r--include/bootm.h2
-rw-r--r--include/configs/alt.h1
-rw-r--r--include/configs/am3517_crane.h1
-rw-r--r--include/configs/am3517_evm.h1
-rw-r--r--include/configs/armadillo-800eva.h1
-rw-r--r--include/configs/arndale.h8
-rw-r--r--include/configs/bcm_ep_board.h115
-rw-r--r--include/configs/cm_t35.h1
-rw-r--r--include/configs/devkit8000.h1
-rw-r--r--include/configs/dig297.h1
-rw-r--r--include/configs/dns325.h1
-rw-r--r--include/configs/dockstar.h1
-rw-r--r--include/configs/dreamplug.h1
-rw-r--r--include/configs/edminiv2.h1
-rw-r--r--include/configs/goflexhome.h1
-rw-r--r--include/configs/guruplug.h1
-rw-r--r--include/configs/ib62x0.h1
-rw-r--r--include/configs/iconnect.h1
-rw-r--r--include/configs/km/km_arm.h1
-rw-r--r--include/configs/km_kirkwood.h5
-rw-r--r--include/configs/koelsch.h1
-rw-r--r--include/configs/kzm9g.h1
-rw-r--r--include/configs/lacie_kw.h1
-rw-r--r--include/configs/lager.h1
-rw-r--r--include/configs/lsxl.h1
-rw-r--r--include/configs/mcx.h1
-rw-r--r--include/configs/mv88f6281gtw_ge.h1
-rw-r--r--include/configs/nhk8815.h2
-rw-r--r--include/configs/nokia_rx51.h1
-rw-r--r--include/configs/omap3_evm_common.h1
-rw-r--r--include/configs/omap3_logic.h1
-rw-r--r--include/configs/omap3_mvblx.h1
-rw-r--r--include/configs/omap3_pandora.h1
-rw-r--r--include/configs/omap3_sdp3430.h1
-rw-r--r--include/configs/openrd.h1
-rw-r--r--include/configs/pogo_e02.h1
-rw-r--r--include/configs/rd6281a.h1
-rw-r--r--include/configs/sheevaplug.h1
-rw-r--r--include/configs/socfpga_cyclone5.h34
-rw-r--r--include/configs/tam3517-common.h1
-rw-r--r--include/configs/tao3530.h1
-rw-r--r--include/configs/tegra-common.h1
-rw-r--r--include/configs/ti_omap3_common.h1
-rw-r--r--include/configs/ti_omap4_common.h1
-rw-r--r--include/configs/ti_omap5_common.h1
-rw-r--r--include/configs/tk71.h1
-rw-r--r--include/configs/tricorder.h1
-rw-r--r--include/configs/vexpress_aemv8a.h15
-rw-r--r--include/configs/wireless_space.h1
-rw-r--r--include/configs/zynq-common.h1
-rw-r--r--include/netdev.h1
378 files changed, 3869 insertions, 1659 deletions
diff --git a/README b/README
index 517b0b4..0a0f528 100644
--- a/README
+++ b/README
@@ -959,6 +959,7 @@ The following options need to be configured:
CONFIG_CMD_BMP * BMP support
CONFIG_CMD_BSP * Board specific commands
CONFIG_CMD_BOOTD bootd
+ CONFIG_CMD_BOOTI * ARM64 Linux kernel Image support
CONFIG_CMD_CACHE * icache, dcache
CONFIG_CMD_CLK * clock command support
CONFIG_CMD_CONSOLE coninfo
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4f26d28..3094ed6 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -131,107 +131,13 @@ config TARGET_TAURUS
config TARGET_STAMP9G20
bool "Support stamp9g20"
-config TARGET_CAM_ENC_4XX
- bool "Support cam_enc_4xx"
+config ARCH_DAVINCI
+ bool "TI DaVinci"
+ help
+ Support for TI's DaVinci platform.
-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 KIRKWOOD
+ bool "Marvell Kirkwood"
config TARGET_DEVKIT3250
bool "Support devkit3250"
@@ -284,11 +190,11 @@ config TARGET_SANSA_FUZE_PLUS
config TARGET_SC_SPS_1
bool "Support sc_sps_1"
-config TARGET_NHK8815
- bool "Support nhk8815"
+config ARCH_NOMADIK
+ bool "ST-Ericsson Nomadik"
-config TARGET_EDMINIV2
- bool "Support edminiv2"
+config ORION5X
+ bool "Marvell Orion"
config TARGET_DKB
bool "Support dkb"
@@ -308,14 +214,8 @@ config TARGET_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 ARCH_VERSATILE
+ bool "ARM Ltd. Versatile family"
config TARGET_INTEGRATORCP_CM1136
bool "Support integratorcp_cm1136"
@@ -425,44 +325,20 @@ config TARGET_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_BCM958300K
+ bool "Support bcm958300k"
-config TARGET_TRATS
- bool "Support trats"
+config TARGET_BCM958622HR
+ bool "Support bcm958622hr"
-config TARGET_TRATS2
- bool "Support trats2"
+config ARCH_EXYNOS
+ bool "Samsung EXYNOS"
-config TARGET_S5PC210_UNIVERSAL
- bool "Support s5pc210_universal"
+config ARCH_HIGHBANK
+ bool "Calxeda Highbank"
-config TARGET_HIGHBANK
- bool "Support highbank"
-
-config TARGET_K2E_EVM
- bool "Support k2e_evm"
-
-config TARGET_K2HK_EVM
- bool "Support k2hk_evm"
+config ARCH_KEYSTONE
+ bool "TI Keystone"
config TARGET_M53EVK
bool "Support m53evk"
@@ -533,107 +409,17 @@ config TARGET_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 OMAP34XX
+ bool "OMAP34XX SoC"
-config TARGET_NOKIA_RX51
- bool "Support nokia_rx51"
+config OMAP44XX
+ bool "OMAP44XX SoC"
-config TARGET_TAO3530
- bool "Support tao3530"
+config OMAP54XX
+ bool "OMAP54XX SoC"
-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 RMOBILE
+ bool "Renesas ARM SoCs"
config TARGET_S5P_GONI
bool "Support s5p_goni"
@@ -662,68 +448,12 @@ config TARGET_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 ZYNQ
+ bool "Xilinx Zynq Platform"
-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_COLIBRI_T30
- bool "Support Colibri T30"
-
-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 TEGRA
+ bool "NVIDIA Tegra"
+ select SPL
config TARGET_VEXPRESS_AEMV8A
bool "Support vexpress_aemv8a"
@@ -778,38 +508,49 @@ config TARGET_JORNADA
endchoice
-source "board/8dtech/eco5pk/Kconfig"
+source "arch/arm/cpu/arm926ejs/davinci/Kconfig"
+
+source "arch/arm/cpu/armv7/exynos/Kconfig"
+
+source "arch/arm/cpu/armv7/highbank/Kconfig"
+
+source "arch/arm/cpu/armv7/keystone/Kconfig"
+
+source "arch/arm/cpu/arm926ejs/kirkwood/Kconfig"
+
+source "arch/arm/cpu/arm926ejs/nomadik/Kconfig"
+
+source "arch/arm/cpu/armv7/omap3/Kconfig"
+
+source "arch/arm/cpu/armv7/omap4/Kconfig"
+
+source "arch/arm/cpu/armv7/omap5/Kconfig"
+
+source "arch/arm/cpu/arm926ejs/orion5x/Kconfig"
+
+source "arch/arm/cpu/armv7/rmobile/Kconfig"
+
+source "arch/arm/cpu/armv7/tegra-common/Kconfig"
+
+source "arch/arm/cpu/arm926ejs/versatile/Kconfig"
+
+source "arch/arm/cpu/armv7/zynq/Kconfig"
+
source "board/aristainetos/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"
@@ -820,51 +561,29 @@ 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/broadcom/bcm958300k/Kconfig"
+source "board/broadcom/bcm958622hr/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"
@@ -891,68 +610,31 @@ source "board/freescale/mx6sxsabresd/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"
@@ -970,33 +652,17 @@ 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/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/toradex/colibri_t30/Kconfig"
source "board/trizepsiv/Kconfig"
source "board/ttcontrol/vision2/Kconfig"
source "board/udoo/Kconfig"
@@ -1004,7 +670,6 @@ 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
diff --git a/arch/arm/cpu/arm1136/u-boot-spl.lds b/arch/arm/cpu/arm1136/u-boot-spl.lds
index 0299902..97e4a8b 100644
--- a/arch/arm/cpu/arm1136/u-boot-spl.lds
+++ b/arch/arm/cpu/arm1136/u-boot-spl.lds
@@ -22,6 +22,7 @@ SECTIONS
.text :
{
__start = .;
+ *(.vectors)
arch/arm/cpu/arm1136/start.o (.text*)
*(.text*)
} >.sram
diff --git a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
deleted file mode 100644
index 623a635..0000000
--- a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * (C) Copyright 2002
- * Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-SECTIONS
-{
- . = 0x00000000;
-
- . = ALIGN(4);
- .text :
- {
- *(.__image_copy_start)
- *(.vectors)
- arch/arm/cpu/arm920t/start.o (.text*)
- /* the EP93xx expects to find the pattern 'CRUS' at 0x1000 */
- . = 0x1000;
- LONG(0x53555243)
- *(.text*)
- }
-
- . = ALIGN(4);
- .rodata : { *(.rodata*) }
-
- . = ALIGN(4);
- .data : { *(.data*) }
-
- . = ALIGN(4);
- .got : { *(.got) }
-
- . = .;
-
- . = ALIGN(4);
- .u_boot_list : {
- KEEP(*(SORT(.u_boot_list*)));
- }
-
- . = ALIGN(4);
-
- .image_copy_end :
- {
- *(.__image_copy_end)
- }
-
- __bss_start = .;
- .bss : { *(.bss*) }
- __bss_end = .;
-
- .end :
- {
- *(.__end)
- }
-}
diff --git a/arch/arm/cpu/arm926ejs/davinci/Kconfig b/arch/arm/cpu/arm926ejs/davinci/Kconfig
new file mode 100644
index 0000000..be1b0f9
--- /dev/null
+++ b/arch/arm/cpu/arm926ejs/davinci/Kconfig
@@ -0,0 +1,79 @@
+if ARCH_DAVINCI
+
+choice
+ prompt "DaVinci board select"
+
+config TARGET_ENBW_CMC
+ bool "EnBW CMC board"
+
+config TARGET_IPAM390
+ bool "IPAM390 board"
+
+config TARGET_DA830EVM
+ bool "DA830 EVM board"
+
+config TARGET_DA850EVM
+ bool "DA850 EVM board"
+
+config TARGET_CAM_ENC_4XX
+ bool "CAM ENC 4xx board"
+
+config TARGET_HAWKBOARD
+ bool "Hawkboard"
+
+config TARGET_DAVINCI_DM355EVM
+ bool "DM355 EVM board"
+
+config TARGET_DAVINCI_DM355LEOPARD
+ bool "DM355 Leopard board"
+
+config TARGET_DAVINCI_DM365EVM
+ bool "DM365 EVM board"
+
+config TARGET_DAVINCI_DM6467EVM
+ bool "DM6467 EVM board"
+
+config TARGET_DAVINCI_DVEVM
+ bool "DVEVM board"
+
+config TARGET_EA20
+ bool "EA20 board"
+
+config TARGET_DAVINCI_SCHMOOGIE
+ bool "Schmoogie board"
+
+config TARGET_DAVINCI_SFFSDR
+ bool "SFFSDR board"
+
+config TARGET_DAVINCI_SONATA
+ bool "Sonata board"
+
+config TARGET_CALIMAIN
+ bool "Calimain board"
+
+endchoice
+
+config SYS_CPU
+ string
+ default "arm926ejs"
+
+config SYS_SOC
+ string
+ default "davinci"
+
+source "board/enbw/enbw_cmc/Kconfig"
+source "board/ait/cam_enc_4xx/Kconfig"
+source "board/Barix/ipam390/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/omicron/calimain/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/arm926ejs/kirkwood/Kconfig b/arch/arm/cpu/arm926ejs/kirkwood/Kconfig
new file mode 100644
index 0000000..58867f3
--- /dev/null
+++ b/arch/arm/cpu/arm926ejs/kirkwood/Kconfig
@@ -0,0 +1,89 @@
+if KIRKWOOD
+
+choice
+ prompt "Marvell Kirkwood board select"
+
+config TARGET_OPENRD
+ bool "Marvell OpenRD Board"
+
+config TARGET_MV88F6281GTW_GE
+ bool "MV88f6281GTW_GE Board"
+
+config TARGET_RD6281A
+ bool "RD6281A Board"
+
+config TARGET_DREAMPLUG
+ bool "DreamPlug Board"
+
+config TARGET_GURUPLUG
+ bool "GuruPlug Board"
+
+config TARGET_SHEEVAPLUG
+ bool "SheevaPlug Board"
+
+config TARGET_LSXL
+ bool "lsxl Board"
+
+config TARGET_POGO_E02
+ bool "pogo_e02 Board"
+
+config TARGET_DNS325
+ bool "dns325 Board"
+
+config TARGET_ICONNECT
+ bool "iconnect Board"
+
+config TARGET_TK71
+ bool "TK71 Board"
+
+config TARGET_KM_KIRKWOOD
+ bool "KM_KIRKWOOD Board"
+
+config TARGET_NET2BIG_V2
+ bool "LaCie 2Big Network v2 NAS Board"
+
+config TARGET_NETSPACE_V2
+ bool "LaCie netspace_v2 Board"
+
+config TARGET_WIRELESS_SPACE
+ bool "LaCie Wireless_space Board"
+
+config TARGET_IB62X0
+ bool "ib62x0 Board"
+
+config TARGET_DOCKSTAR
+ bool "Dockstar Board"
+
+config TARGET_GOFLEXHOME
+ bool "GoFlex Home Board"
+
+endchoice
+
+config SYS_CPU
+ string
+ default "arm926ejs"
+
+config SYS_SOC
+ string
+ default "kirkwood"
+
+source "board/Marvell/openrd/Kconfig"
+source "board/Marvell/mv88f6281gtw_ge/Kconfig"
+source "board/Marvell/rd6281a/Kconfig"
+source "board/Marvell/dreamplug/Kconfig"
+source "board/Marvell/guruplug/Kconfig"
+source "board/Marvell/sheevaplug/Kconfig"
+source "board/buffalo/lsxl/Kconfig"
+source "board/cloudengines/pogo_e02/Kconfig"
+source "board/d-link/dns325/Kconfig"
+source "board/iomega/iconnect/Kconfig"
+source "board/karo/tk71/Kconfig"
+source "board/keymile/km_arm/Kconfig"
+source "board/LaCie/net2big_v2/Kconfig"
+source "board/LaCie/netspace_v2/Kconfig"
+source "board/LaCie/wireless_space/Kconfig"
+source "board/raidsonic/ib62x0/Kconfig"
+source "board/Seagate/dockstar/Kconfig"
+source "board/Seagate/goflexhome/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
index f4bf8ac..bf2ac13 100644
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
@@ -21,6 +21,7 @@ SECTIONS
. = ALIGN(4);
.text :
{
+ *(.vectors)
arch/arm/cpu/arm926ejs/mxs/start.o (.text*)
*(.text*)
}
diff --git a/arch/arm/cpu/arm926ejs/nomadik/Kconfig b/arch/arm/cpu/arm926ejs/nomadik/Kconfig
new file mode 100644
index 0000000..7177800
--- /dev/null
+++ b/arch/arm/cpu/arm926ejs/nomadik/Kconfig
@@ -0,0 +1,21 @@
+if ARCH_NOMADIK
+
+choice
+ prompt "Nomadik board select"
+
+config NOMADIK_NHK8815
+ bool "ST 8815 Nomadik Hardware Kit"
+
+endchoice
+
+config SYS_CPU
+ string
+ default "arm926ejs"
+
+config SYS_SOC
+ string
+ default "nomadik"
+
+source "board/st/nhk8815/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/arm926ejs/orion5x/Kconfig b/arch/arm/cpu/arm926ejs/orion5x/Kconfig
new file mode 100644
index 0000000..aa40099
--- /dev/null
+++ b/arch/arm/cpu/arm926ejs/orion5x/Kconfig
@@ -0,0 +1,21 @@
+if ORION5X
+
+choice
+ prompt "Marvell Orion board select"
+
+config TARGET_EDMINIV2
+ bool "LaCie Ethernet Disk mini V2"
+
+endchoice
+
+config SYS_CPU
+ string
+ default "arm926ejs"
+
+config SYS_SOC
+ string
+ default "orion5x"
+
+source "board/LaCie/edminiv2/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/arm926ejs/versatile/Kconfig b/arch/arm/cpu/arm926ejs/versatile/Kconfig
new file mode 100644
index 0000000..fc29c98
--- /dev/null
+++ b/arch/arm/cpu/arm926ejs/versatile/Kconfig
@@ -0,0 +1,23 @@
+if ARCH_VERSATILE
+
+config SYS_CPU
+ string
+ default "arm926ejs"
+
+config SYS_BOARD
+ string
+ default "versatile"
+
+config SYS_VENDOR
+ string
+ default "armltd"
+
+config SYS_SOC
+ string
+ default "versatile"
+
+config SYS_CONFIG_NAME
+ string
+ default "versatile"
+
+endif
diff --git a/arch/arm/cpu/armv7/Makefile b/arch/arm/cpu/armv7/Makefile
index 703ce8c..afeed4d 100644
--- a/arch/arm/cpu/armv7/Makefile
+++ b/arch/arm/cpu/armv7/Makefile
@@ -28,6 +28,7 @@ ifneq ($(CONFIG_ARMV7_PSCI),)
obj-y += psci.o
endif
+obj-$(CONFIG_IPROC) += iproc-common/
obj-$(CONFIG_KONA) += kona-common/
obj-$(CONFIG_OMAP_COMMON) += omap-common/
obj-$(CONFIG_SYS_ARCH_TIMER) += arch_timer.o
diff --git a/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds b/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds
index b1c28c9..07cf267 100644
--- a/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds
+++ b/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds
@@ -22,6 +22,7 @@ SECTIONS
.text :
{
__start = .;
+ *(.vectors)
arch/arm/cpu/armv7/start.o (.text)
*(.text*)
} >.sram
diff --git a/arch/arm/cpu/armv7/bcm281xx/Makefile b/arch/arm/cpu/armv7/bcm281xx/Makefile
index 98f5aa5..bd867a2 100644
--- a/arch/arm/cpu/armv7/bcm281xx/Makefile
+++ b/arch/arm/cpu/armv7/bcm281xx/Makefile
@@ -9,3 +9,4 @@ obj-y += clk-core.o
obj-y += clk-bcm281xx.o
obj-y += clk-sdio.o
obj-y += clk-bsc.o
+obj-$(CONFIG_BCM_SF2_ETH) += clk-eth.o
diff --git a/arch/arm/cpu/armv7/bcm281xx/clk-bcm281xx.c b/arch/arm/cpu/armv7/bcm281xx/clk-bcm281xx.c
index bc8a170..d16b99f 100644
--- a/arch/arm/cpu/armv7/bcm281xx/clk-bcm281xx.c
+++ b/arch/arm/cpu/armv7/bcm281xx/clk-bcm281xx.c
@@ -118,6 +118,16 @@ unsigned long slave_apb_freq_tbl[8] = {
78 * CLOCK_1M
};
+unsigned long esub_freq_tbl[8] = {
+ 78 * CLOCK_1M,
+ 156 * CLOCK_1M,
+ 156 * CLOCK_1M,
+ 156 * CLOCK_1M,
+ 208 * CLOCK_1M,
+ 208 * CLOCK_1M,
+ 208 * CLOCK_1M
+};
+
static struct bus_clk_data bsc1_apb_data = {
.gate = HW_SW_GATE_AUTO(0x0458, 16, 0, 1),
};
@@ -295,6 +305,27 @@ static struct ccu_clock kps_ccu_clk = {
.freq_tbl = slave_axi_freq_tbl,
};
+#ifdef CONFIG_BCM_SF2_ETH
+static struct ccu_clock esub_ccu_clk = {
+ .clk = {
+ .name = "esub_ccu_clk",
+ .ops = &ccu_clk_ops,
+ .ccu_clk_mgr_base = ESUB_CLK_BASE_ADDR,
+ },
+ .num_policy_masks = 1,
+ .policy_freq_offset = 0x00000008,
+ .freq_bit_shift = 8,
+ .policy_ctl_offset = 0x0000000c,
+ .policy0_mask_offset = 0x00000010,
+ .policy1_mask_offset = 0x00000014,
+ .policy2_mask_offset = 0x00000018,
+ .policy3_mask_offset = 0x0000001c,
+ .lvm_en_offset = 0x00000034,
+ .freq_id = 2,
+ .freq_tbl = esub_freq_tbl,
+};
+#endif
+
/*
* Bus clocks
*/
@@ -517,6 +548,9 @@ struct clk_lookup arch_clk_tbl[] = {
CLK_LK(bsc1_apb),
CLK_LK(bsc2_apb),
CLK_LK(bsc3_apb),
+#ifdef CONFIG_BCM_SF2_ETH
+ CLK_LK(esub_ccu),
+#endif
};
/* public array size */
diff --git a/arch/arm/cpu/armv7/bcm281xx/clk-eth.c b/arch/arm/cpu/armv7/bcm281xx/clk-eth.c
new file mode 100644
index 0000000..b0b92b9
--- /dev/null
+++ b/arch/arm/cpu/armv7/bcm281xx/clk-eth.c
@@ -0,0 +1,143 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/io.h>
+#include <asm/errno.h>
+#include <asm/arch/sysmap.h>
+#include <asm/kona-common/clk.h>
+#include "clk-core.h"
+
+#define WR_ACCESS_ADDR ESUB_CLK_BASE_ADDR
+#define WR_ACCESS_PASSWORD 0xA5A500
+
+#define PLLE_POST_RESETB_ADDR (ESUB_CLK_BASE_ADDR + 0x00000C00)
+
+#define PLLE_RESETB_ADDR (ESUB_CLK_BASE_ADDR + 0x00000C58)
+#define PLLE_RESETB_I_PLL_RESETB_PLLE_MASK 0x00010000
+#define PLLE_POST_RESETB_I_POST_RESETB_PLLE_MASK 0x00000001
+
+#define PLL_LOCK_ADDR (ESUB_CLK_BASE_ADDR + 0x00000C38)
+#define PLL_LOCK_PLL_LOCK_PLLE_MASK 0x00000001
+
+#define ESW_SYS_DIV_ADDR (ESUB_CLK_BASE_ADDR + 0x00000A04)
+#define ESW_SYS_DIV_PLL_SELECT_MASK 0x00000300
+#define ESW_SYS_DIV_DIV_MASK 0x0000001C
+#define ESW_SYS_DIV_PLL_VAR_208M_CLK_SELECT 0x00000100
+#define ESW_SYS_DIV_DIV_SELECT 0x4
+#define ESW_SYS_DIV_TRIGGER_MASK 0x00000001
+
+#define ESUB_AXI_DIV_DEBUG_ADDR (ESUB_CLK_BASE_ADDR + 0x00000E04)
+#define ESUB_AXI_DIV_DEBUG_PLL_SELECT_MASK 0x0000001C
+#define ESUB_AXI_DIV_DEBUG_PLL_SELECT_OVERRIDE_MASK 0x00000040
+#define ESUB_AXI_DIV_DEBUG_PLL_VAR_208M_CLK_SELECT 0x0
+#define ESUB_AXI_DIV_DEBUG_TRIGGER_MASK 0x00000001
+
+#define PLL_MAX_RETRY 100
+
+/* Enable appropriate clocks for Ethernet */
+int clk_eth_enable(void)
+{
+ int rc = -1;
+ int retry_count = 0;
+ rc = clk_get_and_enable("esub_ccu_clk");
+
+ /* Enable Access to CCU registers */
+ writel((1 | WR_ACCESS_PASSWORD), WR_ACCESS_ADDR);
+
+ writel(readl(PLLE_POST_RESETB_ADDR) &
+ ~PLLE_POST_RESETB_I_POST_RESETB_PLLE_MASK,
+ PLLE_POST_RESETB_ADDR);
+
+ /* Take PLL out of reset and put into normal mode */
+ writel(readl(PLLE_RESETB_ADDR) | PLLE_RESETB_I_PLL_RESETB_PLLE_MASK,
+ PLLE_RESETB_ADDR);
+
+ /* Wait for PLL lock */
+ rc = -1;
+ while (retry_count < PLL_MAX_RETRY) {
+ udelay(100);
+ if (readl(PLL_LOCK_ADDR) & PLL_LOCK_PLL_LOCK_PLLE_MASK) {
+ rc = 0;
+ break;
+ }
+ retry_count++;
+ }
+
+ if (rc == -1) {
+ printf("%s: ETH-PLL lock timeout, Ethernet is not enabled!\n",
+ __func__);
+ return -1;
+ }
+
+ writel(readl(PLLE_POST_RESETB_ADDR) |
+ PLLE_POST_RESETB_I_POST_RESETB_PLLE_MASK,
+ PLLE_POST_RESETB_ADDR);
+
+ /* Switch esw_sys_clk to use 104MHz(208MHz/2) clock */
+ writel((readl(ESW_SYS_DIV_ADDR) &
+ ~(ESW_SYS_DIV_PLL_SELECT_MASK | ESW_SYS_DIV_DIV_MASK)) |
+ ESW_SYS_DIV_PLL_VAR_208M_CLK_SELECT | ESW_SYS_DIV_DIV_SELECT,
+ ESW_SYS_DIV_ADDR);
+
+ writel(readl(ESW_SYS_DIV_ADDR) | ESW_SYS_DIV_TRIGGER_MASK,
+ ESW_SYS_DIV_ADDR);
+
+ /* Wait for trigger complete */
+ rc = -1;
+ retry_count = 0;
+ while (retry_count < PLL_MAX_RETRY) {
+ udelay(100);
+ if (!(readl(ESW_SYS_DIV_ADDR) & ESW_SYS_DIV_TRIGGER_MASK)) {
+ rc = 0;
+ break;
+ }
+ retry_count++;
+ }
+
+ if (rc == -1) {
+ printf("%s: SYS CLK Trigger timeout, Ethernet is not enabled!\n",
+ __func__);
+ return -1;
+ }
+
+ /* switch Esub AXI clock to 208MHz */
+ writel((readl(ESUB_AXI_DIV_DEBUG_ADDR) &
+ ~(ESUB_AXI_DIV_DEBUG_PLL_SELECT_MASK |
+ ESUB_AXI_DIV_DEBUG_PLL_SELECT_OVERRIDE_MASK |
+ ESUB_AXI_DIV_DEBUG_TRIGGER_MASK)) |
+ ESUB_AXI_DIV_DEBUG_PLL_VAR_208M_CLK_SELECT |
+ ESUB_AXI_DIV_DEBUG_PLL_SELECT_OVERRIDE_MASK,
+ ESUB_AXI_DIV_DEBUG_ADDR);
+
+ writel(readl(ESUB_AXI_DIV_DEBUG_ADDR) |
+ ESUB_AXI_DIV_DEBUG_TRIGGER_MASK,
+ ESUB_AXI_DIV_DEBUG_ADDR);
+
+ /* Wait for trigger complete */
+ rc = -1;
+ retry_count = 0;
+ while (retry_count < PLL_MAX_RETRY) {
+ udelay(100);
+ if (!(readl(ESUB_AXI_DIV_DEBUG_ADDR) &
+ ESUB_AXI_DIV_DEBUG_TRIGGER_MASK)) {
+ rc = 0;
+ break;
+ }
+ retry_count++;
+ }
+
+ if (rc == -1) {
+ printf("%s: AXI CLK Trigger timeout, Ethernet is not enabled!\n",
+ __func__);
+ return -1;
+ }
+
+ /* Disable Access to CCU registers */
+ writel(WR_ACCESS_PASSWORD, WR_ACCESS_ADDR);
+
+ return rc;
+}
diff --git a/arch/arm/cpu/armv7/bcmcygnus/Makefile b/arch/arm/cpu/armv7/bcmcygnus/Makefile
new file mode 100644
index 0000000..04afcf9
--- /dev/null
+++ b/arch/arm/cpu/armv7/bcmcygnus/Makefile
@@ -0,0 +1,7 @@
+#
+# Copyright 2014 Broadcom Corporation.
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y += reset.o
diff --git a/arch/arm/cpu/armv7/bcmcygnus/reset.c b/arch/arm/cpu/armv7/bcmcygnus/reset.c
new file mode 100644
index 0000000..53ecc0c
--- /dev/null
+++ b/arch/arm/cpu/armv7/bcmcygnus/reset.c
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/io.h>
+
+#define CRMU_MAIL_BOX1 0x03024028
+#define CRMU_SOFT_RESET_CMD 0xFFFFFFFF
+
+void reset_cpu(ulong ignored)
+{
+ /* Send soft reset command via Mailbox. */
+ writel(CRMU_SOFT_RESET_CMD, CRMU_MAIL_BOX1);
+
+ while (1)
+ ; /* loop forever till reset */
+}
diff --git a/arch/arm/cpu/armv7/bcmnsp/Makefile b/arch/arm/cpu/armv7/bcmnsp/Makefile
new file mode 100644
index 0000000..04afcf9
--- /dev/null
+++ b/arch/arm/cpu/armv7/bcmnsp/Makefile
@@ -0,0 +1,7 @@
+#
+# Copyright 2014 Broadcom Corporation.
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y += reset.o
diff --git a/arch/arm/cpu/armv7/bcmnsp/reset.c b/arch/arm/cpu/armv7/bcmnsp/reset.c
new file mode 100644
index 0000000..d79d9aa
--- /dev/null
+++ b/arch/arm/cpu/armv7/bcmnsp/reset.c
@@ -0,0 +1,19 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/io.h>
+
+#define CRU_RESET_OFFSET 0x1803F184
+
+void reset_cpu(ulong ignored)
+{
+ /* Reset the cpu by setting software reset request bit */
+ writel(0x1, CRU_RESET_OFFSET);
+
+ while (1)
+ ; /* loop forever till reset */
+}
diff --git a/arch/arm/cpu/armv7/exynos/Kconfig b/arch/arm/cpu/armv7/exynos/Kconfig
new file mode 100644
index 0000000..f1cacdc
--- /dev/null
+++ b/arch/arm/cpu/armv7/exynos/Kconfig
@@ -0,0 +1,55 @@
+if ARCH_EXYNOS
+
+choice
+ prompt "EXYNOS board select"
+
+config TARGET_SMDKV310
+ bool "Exynos4210 SMDKV310 board"
+
+config TARGET_TRATS
+ bool "Exynos4210 Trats board"
+
+config TARGET_S5PC210_UNIVERSAL
+ bool "EXYNOS4210 Universal C210 board"
+
+config TARGET_ORIGEN
+ bool "Exynos4412 Origen board"
+
+config TARGET_TRATS2
+ bool "Exynos4412 Trat2 board"
+
+config TARGET_ARNDALE
+ bool "Exynos5250 Arndale board"
+
+config TARGET_SMDK5250
+ bool "SMDK5250 board"
+
+config TARGET_SNOW
+ bool "Snow board"
+
+config TARGET_SMDK5420
+ bool "SMDK5420 board"
+
+config TARGET_PEACH_PIT
+ bool "Peach Pi board"
+
+endchoice
+
+config SYS_CPU
+ string
+ default "armv7"
+
+config SYS_SOC
+ string
+ default "exynos"
+
+source "board/samsung/smdkv310/Kconfig"
+source "board/samsung/trats/Kconfig"
+source "board/samsung/universal_c210/Kconfig"
+source "board/samsung/origen/Kconfig"
+source "board/samsung/trats2/Kconfig"
+source "board/samsung/arndale/Kconfig"
+source "board/samsung/smdk5250/Kconfig"
+source "board/samsung/smdk5420/Kconfig"
+
+endif
diff --git a/board/highbank/Kconfig b/arch/arm/cpu/armv7/highbank/Kconfig
index 1c32490..9527928 100644
--- a/board/highbank/Kconfig
+++ b/arch/arm/cpu/armv7/highbank/Kconfig
@@ -1,4 +1,4 @@
-if TARGET_HIGHBANK
+if ARCH_HIGHBANK
config SYS_CPU
string
diff --git a/arch/arm/cpu/armv7/iproc-common/Makefile b/arch/arm/cpu/armv7/iproc-common/Makefile
new file mode 100644
index 0000000..c071a17
--- /dev/null
+++ b/arch/arm/cpu/armv7/iproc-common/Makefile
@@ -0,0 +1,9 @@
+#
+# Copyright 2014 Broadcom Corporation.
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y += armpll.o
+obj-y += hwinit-common.o
+obj-y += timer.o
diff --git a/arch/arm/cpu/armv7/iproc-common/armpll.c b/arch/arm/cpu/armv7/iproc-common/armpll.c
new file mode 100644
index 0000000..49b61bf
--- /dev/null
+++ b/arch/arm/cpu/armv7/iproc-common/armpll.c
@@ -0,0 +1,170 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/io.h>
+#include <asm/iproc-common/armpll.h>
+#include <asm/iproc-common/sysmap.h>
+
+#define NELEMS(x) (sizeof(x) / sizeof(x[0]))
+
+struct armpll_parameters {
+ unsigned int mode;
+ unsigned int ndiv_int;
+ unsigned int ndiv_frac;
+ unsigned int pdiv;
+ unsigned int freqid;
+};
+
+struct armpll_parameters armpll_clk_tab[] = {
+ { 25, 64, 1, 1, 0},
+ { 100, 64, 1, 1, 2},
+ { 400, 64, 1, 1, 6},
+ { 448, 71, 713050, 1, 6},
+ { 500, 80, 1, 1, 6},
+ { 560, 89, 629145, 1, 6},
+ { 600, 96, 1, 1, 6},
+ { 800, 64, 1, 1, 7},
+ { 896, 71, 713050, 1, 7},
+ { 1000, 80, 1, 1, 7},
+ { 1100, 88, 1, 1, 7},
+ { 1120, 89, 629145, 1, 7},
+ { 1200, 96, 1, 1, 7},
+};
+
+uint32_t armpll_config(uint32_t clkmhz)
+{
+ uint32_t freqid;
+ uint32_t ndiv_frac;
+ uint32_t pll;
+ uint32_t status = 1;
+ uint32_t timeout_countdown;
+ int i;
+
+ for (i = 0; i < NELEMS(armpll_clk_tab); i++) {
+ if (armpll_clk_tab[i].mode == clkmhz) {
+ status = 0;
+ break;
+ }
+ }
+
+ if (status) {
+ printf("Error: Clock configuration not supported\n");
+ goto armpll_config_done;
+ }
+
+ /* Enable write access */
+ writel(IPROC_REG_WRITE_ACCESS, IHOST_PROC_CLK_WR_ACCESS);
+
+ if (clkmhz == 25)
+ freqid = 0;
+ else
+ freqid = 2;
+
+ /* Bypass ARM clock and run on sysclk */
+ writel(1 << IHOST_PROC_CLK_POLICY_FREQ__PRIV_ACCESS_MODE |
+ freqid << IHOST_PROC_CLK_POLICY_FREQ__POLICY3_FREQ_R |
+ freqid << IHOST_PROC_CLK_POLICY_FREQ__POLICY2_FREQ_R |
+ freqid << IHOST_PROC_CLK_POLICY_FREQ__POLICY1_FREQ_R |
+ freqid << IHOST_PROC_CLK_POLICY_FREQ__POLICY0_FREQ_R,
+ IHOST_PROC_CLK_POLICY_FREQ);
+
+ writel(1 << IHOST_PROC_CLK_POLICY_CTL__GO |
+ 1 << IHOST_PROC_CLK_POLICY_CTL__GO_AC,
+ IHOST_PROC_CLK_POLICY_CTL);
+
+ /* Poll CCU until operation complete */
+ timeout_countdown = 0x100000;
+ while (readl(IHOST_PROC_CLK_POLICY_CTL) &
+ (1 << IHOST_PROC_CLK_POLICY_CTL__GO)) {
+ timeout_countdown--;
+ if (timeout_countdown == 0) {
+ printf("CCU polling timedout\n");
+ status = 1;
+ goto armpll_config_done;
+ }
+ }
+
+ if (clkmhz == 25 || clkmhz == 100) {
+ status = 0;
+ goto armpll_config_done;
+ }
+
+ /* Now it is safe to program the PLL */
+ pll = readl(IHOST_PROC_CLK_PLLARMB);
+ pll &= ~((1 << IHOST_PROC_CLK_PLLARMB__PLLARM_NDIV_FRAC_WIDTH) - 1);
+ ndiv_frac =
+ ((1 << IHOST_PROC_CLK_PLLARMB__PLLARM_NDIV_FRAC_WIDTH) - 1) &
+ (armpll_clk_tab[i].ndiv_frac <<
+ IHOST_PROC_CLK_PLLARMB__PLLARM_NDIV_FRAC_R);
+ pll |= ndiv_frac;
+ writel(pll, IHOST_PROC_CLK_PLLARMB);
+
+ writel(1 << IHOST_PROC_CLK_PLLARMA__PLLARM_LOCK |
+ armpll_clk_tab[i].ndiv_int <<
+ IHOST_PROC_CLK_PLLARMA__PLLARM_NDIV_INT_R |
+ armpll_clk_tab[i].pdiv <<
+ IHOST_PROC_CLK_PLLARMA__PLLARM_PDIV_R |
+ 1 << IHOST_PROC_CLK_PLLARMA__PLLARM_SOFT_RESETB,
+ IHOST_PROC_CLK_PLLARMA);
+
+ /* Poll ARM PLL Lock until operation complete */
+ timeout_countdown = 0x100000;
+ while (readl(IHOST_PROC_CLK_PLLARMA) &
+ (1 << IHOST_PROC_CLK_PLLARMA__PLLARM_LOCK)) {
+ timeout_countdown--;
+ if (timeout_countdown == 0) {
+ printf("ARM PLL lock failed\n");
+ status = 1;
+ goto armpll_config_done;
+ }
+ }
+
+ pll = readl(IHOST_PROC_CLK_PLLARMA);
+ pll |= (1 << IHOST_PROC_CLK_PLLARMA__PLLARM_SOFT_POST_RESETB);
+ writel(pll, IHOST_PROC_CLK_PLLARMA);
+
+ /* Set the policy */
+ writel(1 << IHOST_PROC_CLK_POLICY_FREQ__PRIV_ACCESS_MODE |
+ armpll_clk_tab[i].freqid <<
+ IHOST_PROC_CLK_POLICY_FREQ__POLICY3_FREQ_R |
+ armpll_clk_tab[i].freqid <<
+ IHOST_PROC_CLK_POLICY_FREQ__POLICY2_FREQ_R |
+ armpll_clk_tab[i].freqid <<
+ IHOST_PROC_CLK_POLICY_FREQ__POLICY1_FREQ_R |
+ armpll_clk_tab[i+4].freqid <<
+ IHOST_PROC_CLK_POLICY_FREQ__POLICY0_FREQ_R,
+ IHOST_PROC_CLK_POLICY_FREQ);
+
+ writel(IPROC_CLKCT_HDELAY_SW_EN, IHOST_PROC_CLK_CORE0_CLKGATE);
+ writel(IPROC_CLKCT_HDELAY_SW_EN, IHOST_PROC_CLK_CORE1_CLKGATE);
+ writel(IPROC_CLKCT_HDELAY_SW_EN, IHOST_PROC_CLK_ARM_SWITCH_CLKGATE);
+ writel(IPROC_CLKCT_HDELAY_SW_EN, IHOST_PROC_CLK_ARM_PERIPH_CLKGATE);
+ writel(IPROC_CLKCT_HDELAY_SW_EN, IHOST_PROC_CLK_APB0_CLKGATE);
+
+ writel(1 << IHOST_PROC_CLK_POLICY_CTL__GO |
+ 1 << IHOST_PROC_CLK_POLICY_CTL__GO_AC,
+ IHOST_PROC_CLK_POLICY_CTL);
+
+ /* Poll CCU until operation complete */
+ timeout_countdown = 0x100000;
+ while (readl(IHOST_PROC_CLK_POLICY_CTL) &
+ (1 << IHOST_PROC_CLK_POLICY_CTL__GO)) {
+ timeout_countdown--;
+ if (timeout_countdown == 0) {
+ printf("CCU polling failed\n");
+ status = 1;
+ goto armpll_config_done;
+ }
+ }
+
+ status = 0;
+armpll_config_done:
+ /* Disable access to PLL registers */
+ writel(0, IHOST_PROC_CLK_WR_ACCESS);
+
+ return status;
+}
diff --git a/arch/arm/cpu/armv7/iproc-common/hwinit-common.c b/arch/arm/cpu/armv7/iproc-common/hwinit-common.c
new file mode 100644
index 0000000..7131524
--- /dev/null
+++ b/arch/arm/cpu/armv7/iproc-common/hwinit-common.c
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+
+#ifndef CONFIG_SYS_DCACHE_OFF
+void enable_caches(void)
+{
+ /* Enable D-cache. I-cache is already enabled in start.S */
+ dcache_enable();
+}
+#endif
diff --git a/arch/arm/cpu/armv7/iproc-common/timer.c b/arch/arm/cpu/armv7/iproc-common/timer.c
new file mode 100644
index 0000000..373d8ec
--- /dev/null
+++ b/arch/arm/cpu/armv7/iproc-common/timer.c
@@ -0,0 +1,130 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <div64.h>
+#include <asm/io.h>
+#include <asm/iproc-common/timer.h>
+#include <asm/iproc-common/sysmap.h>
+
+static inline uint64_t timer_global_read(void)
+{
+ uint64_t cur_tick;
+ uint32_t count_h;
+ uint32_t count_l;
+
+ do {
+ count_h = readl(IPROC_PERIPH_GLB_TIM_REG_BASE +
+ TIMER_GLB_HI_OFFSET);
+ count_l = readl(IPROC_PERIPH_GLB_TIM_REG_BASE +
+ TIMER_GLB_LOW_OFFSET);
+ cur_tick = readl(IPROC_PERIPH_GLB_TIM_REG_BASE +
+ TIMER_GLB_HI_OFFSET);
+ } while (cur_tick != count_h);
+
+ return (cur_tick << 32) + count_l;
+}
+
+void timer_global_init(void)
+{
+ writel(0, IPROC_PERIPH_GLB_TIM_REG_BASE + TIMER_GLB_CTRL_OFFSET);
+ writel(0, IPROC_PERIPH_GLB_TIM_REG_BASE + TIMER_GLB_LOW_OFFSET);
+ writel(0, IPROC_PERIPH_GLB_TIM_REG_BASE + TIMER_GLB_HI_OFFSET);
+ writel(TIMER_GLB_TIM_CTRL_TIM_EN,
+ IPROC_PERIPH_GLB_TIM_REG_BASE + TIMER_GLB_CTRL_OFFSET);
+}
+
+int timer_init(void)
+{
+ timer_global_init();
+ return 0;
+}
+
+unsigned long get_timer(unsigned long base)
+{
+ uint64_t count;
+ uint64_t ret;
+ uint64_t tim_clk;
+ uint64_t periph_clk;
+
+ count = timer_global_read();
+
+ /* default arm clk is 1GHz, periph_clk=arm_clk/2, tick per msec */
+ periph_clk = 500000;
+ tim_clk = lldiv(periph_clk,
+ (((readl(IPROC_PERIPH_GLB_TIM_REG_BASE +
+ TIMER_GLB_CTRL_OFFSET) &
+ TIMER_GLB_TIM_CTRL_PRESC_MASK) >> 8) + 1));
+
+ ret = lldiv(count, (uint32_t)tim_clk);
+
+ /* returns msec */
+ return ret - base;
+}
+
+void __udelay(unsigned long usec)
+{
+ uint64_t cur_tick, end_tick;
+ uint64_t tim_clk;
+ uint64_t periph_clk;
+
+ /* default arm clk is 1GHz, periph_clk=arm_clk/2, tick per usec */
+ periph_clk = 500;
+
+ tim_clk = lldiv(periph_clk,
+ (((readl(IPROC_PERIPH_GLB_TIM_REG_BASE +
+ TIMER_GLB_CTRL_OFFSET) &
+ TIMER_GLB_TIM_CTRL_PRESC_MASK) >> 8) + 1));
+
+ cur_tick = timer_global_read();
+
+ end_tick = tim_clk;
+ end_tick *= usec;
+ end_tick += cur_tick;
+
+ do {
+ cur_tick = timer_global_read();
+
+ } while (cur_tick < end_tick);
+}
+
+void timer_systick_init(uint32_t tick_ms)
+{
+ /* Disable timer and clear interrupt status*/
+ writel(0, IPROC_PERIPH_PVT_TIM_REG_BASE + TIMER_PVT_CTRL_OFFSET);
+ writel(TIMER_PVT_TIM_INT_STATUS_SET,
+ IPROC_PERIPH_PVT_TIM_REG_BASE + TIMER_PVT_STATUS_OFFSET);
+ writel((PLL_AXI_CLK/1000) * tick_ms,
+ IPROC_PERIPH_PVT_TIM_REG_BASE + TIMER_PVT_LOAD_OFFSET);
+ writel(TIMER_PVT_TIM_CTRL_INT_EN |
+ TIMER_PVT_TIM_CTRL_AUTO_RELD |
+ TIMER_PVT_TIM_CTRL_TIM_EN,
+ IPROC_PERIPH_PVT_TIM_REG_BASE + TIMER_PVT_CTRL_OFFSET);
+}
+
+void timer_systick_isr(void *data)
+{
+ writel(TIMER_PVT_TIM_INT_STATUS_SET,
+ IPROC_PERIPH_PVT_TIM_REG_BASE + TIMER_PVT_STATUS_OFFSET);
+}
+
+/*
+ * This function is derived from PowerPC code (read timebase as long long).
+ * On ARM it just returns the timer value in msec.
+ */
+unsigned long long get_ticks(void)
+{
+ return get_timer(0);
+}
+
+/*
+ * This is used in conjuction with get_ticks, which returns msec as ticks.
+ * Here we just return ticks/sec = msec/sec = 1000
+ */
+ulong get_tbclk(void)
+{
+ return 1000;
+}
diff --git a/arch/arm/cpu/armv7/keystone/Kconfig b/arch/arm/cpu/armv7/keystone/Kconfig
new file mode 100644
index 0000000..24d0cbe
--- /dev/null
+++ b/arch/arm/cpu/armv7/keystone/Kconfig
@@ -0,0 +1,24 @@
+if ARCH_KEYSTONE
+
+choice
+ prompt "TI Keystone board select"
+
+config TARGET_K2HK_EVM
+ bool "TI Keystone 2 Kepler/Hawking EVM"
+
+config TARGET_K2E_EVM
+ bool "TI Keystone 2 Edison EVM"
+
+endchoice
+
+config SYS_CPU
+ string
+ default "armv7"
+
+config SYS_SOC
+ string
+ default "keystone"
+
+source "board/ti/ks2_evm/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
index 745603d..ccd0c83 100644
--- a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
+++ b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
@@ -22,6 +22,7 @@ SECTIONS
.text :
{
__start = .;
+ *(.vectors)
arch/arm/cpu/armv7/start.o (.text*)
*(.text*)
} >.sram
diff --git a/arch/arm/cpu/armv7/omap3/Kconfig b/arch/arm/cpu/armv7/omap3/Kconfig
new file mode 100644
index 0000000..6578f0c
--- /dev/null
+++ b/arch/arm/cpu/armv7/omap3/Kconfig
@@ -0,0 +1,107 @@
+if OMAP34XX
+
+choice
+ prompt "OMAP3 board select"
+
+config TARGET_AM3517_EVM
+ bool "AM3517 EVM"
+
+config TARGET_MT_VENTOUX
+ bool "TeeJet Mt.Ventoux"
+
+config TARGET_OMAP3_SDP3430
+ bool "TI OMAP3430 SDP"
+
+config TARGET_OMAP3_BEAGLE
+ bool "TI OMAP3 BeagleBoard"
+
+config TARGET_CM_T35
+ bool "CompuLab CM-T35"
+
+config TARGET_DEVKIT8000
+ bool "TimLL OMAP3 Devkit8000"
+
+config TARGET_OMAP3_EVM
+ bool "TI OMAP3 EVM"
+
+config TARGET_OMAP3_EVM_QUICK_MMC
+ bool "TI OMAP3 EVM Quick MMC"
+
+config TARGET_OMAP3_EVM_QUICK_NAND
+ bool "TI OMAP3 EVM Quick NAND"
+
+config TARGET_OMAP3_IGEP00X0
+ bool "IGEP"
+
+config TARGET_OMAP3_OVERO
+ bool "OMAP35xx Gumstix Overo"
+
+config TARGET_OMAP3_ZOOM1
+ bool "TI Zoom1"
+
+config TARGET_AM3517_CRANE
+ bool "am3517_crane"
+
+config TARGET_OMAP3_PANDORA
+ bool "OMAP3 Pandora"
+
+config TARGET_ECO5PK
+ bool "ECO5PK"
+
+config TARGET_DIG297
+ bool "DIG297"
+
+config TARGET_TRICORDER
+ bool "Tricorder"
+
+config TARGET_MCX
+ bool "MCX"
+
+config TARGET_OMAP3_LOGIC
+ bool "OMAP3 Logic"
+
+config TARGET_OMAP3_MVBLX
+ bool "OMAP3 MVBLX"
+
+config TARGET_NOKIA_RX51
+ bool "Nokia RX51"
+
+config TARGET_TAO3530
+ bool "TAO3530"
+
+config TARGET_TWISTER
+ bool "Twister"
+
+endchoice
+
+config SYS_CPU
+ string
+ default "armv7"
+
+config SYS_SOC
+ string
+ default "omap3"
+
+source "board/logicpd/am3517evm/Kconfig"
+source "board/teejet/mt_ventoux/Kconfig"
+source "board/ti/sdp3430/Kconfig"
+source "board/ti/beagle/Kconfig"
+source "board/compulab/cm_t35/Kconfig"
+source "board/timll/devkit8000/Kconfig"
+source "board/ti/evm/Kconfig"
+source "board/isee/igep00x0/Kconfig"
+source "board/overo/Kconfig"
+source "board/logicpd/zoom1/Kconfig"
+source "board/ti/am3517crane/Kconfig"
+source "board/pandora/Kconfig"
+source "board/8dtech/eco5pk/Kconfig"
+source "board/comelit/dig297/Kconfig"
+source "board/corscience/tricorder/Kconfig"
+source "board/htkw/mcx/Kconfig"
+source "board/logicpd/omap3som/Kconfig"
+source "board/matrix_vision/mvblx/Kconfig"
+source "board/nokia/rx51/Kconfig"
+source "board/technexion/tao3530/Kconfig"
+source "board/technexion/twister/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/armv7/omap4/Kconfig b/arch/arm/cpu/armv7/omap4/Kconfig
new file mode 100644
index 0000000..20d2c11
--- /dev/null
+++ b/arch/arm/cpu/armv7/omap4/Kconfig
@@ -0,0 +1,29 @@
+if OMAP44XX
+
+choice
+ prompt "OMAP4 board select"
+
+config TARGET_DUOVERO
+ bool "OMAP4430 Gumstix Duovero"
+
+config TARGET_OMAP4_PANDA
+ bool "TI OMAP4 PandaBoard"
+
+config TARGET_OMAP4_SDP4430
+ bool "TI OMAP4 SDP4430"
+
+endchoice
+
+config SYS_CPU
+ string
+ default "armv7"
+
+config SYS_SOC
+ string
+ default "omap4"
+
+source "board/gumstix/duovero/Kconfig"
+source "board/ti/panda/Kconfig"
+source "board/ti/sdp4430/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/armv7/omap5/Kconfig b/arch/arm/cpu/armv7/omap5/Kconfig
new file mode 100644
index 0000000..be80393
--- /dev/null
+++ b/arch/arm/cpu/armv7/omap5/Kconfig
@@ -0,0 +1,29 @@
+if OMAP54XX
+
+choice
+ prompt "OMAP5 board select"
+
+config TARGET_CM_T54
+ bool "CompuLab CM-T54"
+
+config TARGET_OMAP5_UEVM
+ bool "TI OMAP5 uEVM board"
+
+config TARGET_DRA7XX_EVM
+ bool "TI DRA7XX"
+
+endchoice
+
+config SYS_CPU
+ string
+ default "armv7"
+
+config SYS_SOC
+ string
+ default "omap5"
+
+source "board/compulab/cm_t54/Kconfig"
+source "board/ti/omap5_uevm/Kconfig"
+source "board/ti/dra7xx/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/armv7/rmobile/Kconfig b/arch/arm/cpu/armv7/rmobile/Kconfig
new file mode 100644
index 0000000..55c620a
--- /dev/null
+++ b/arch/arm/cpu/armv7/rmobile/Kconfig
@@ -0,0 +1,37 @@
+if RMOBILE
+
+choice
+ prompt "Renesus ARM SoCs board select"
+
+config TARGET_ARMADILLO_800EVA
+ bool "armadillo 800 eva board"
+
+config TARGET_KOELSCH
+ bool "Koelsch board"
+
+config TARGET_LAGER
+ bool "Lager board"
+
+config TARGET_KZM9G
+ bool "KZM9D board"
+
+config TARGET_ALT
+ bool "Alt board"
+
+endchoice
+
+config SYS_CPU
+ string
+ default "armv7"
+
+config SYS_SOC
+ string
+ default "rmobile"
+
+source "board/atmark-techno/armadillo-800eva/Kconfig"
+source "board/renesas/koelsch/Kconfig"
+source "board/renesas/lager/Kconfig"
+source "board/kmc/kzm9g/Kconfig"
+source "board/renesas/alt/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/armv7/socfpga/clock_manager.c b/arch/arm/cpu/armv7/socfpga/clock_manager.c
index 23d697d..158501a 100644
--- a/arch/arm/cpu/armv7/socfpga/clock_manager.c
+++ b/arch/arm/cpu/armv7/socfpga/clock_manager.c
@@ -110,8 +110,8 @@ void cm_basic_init(const cm_config_t *cfg)
* gatting off the rest of the periperal clocks.
*/
writel(~CLKMGR_PERPLLGRP_EN_NANDCLK_MASK &
- readl(&clock_manager_base->per_pll_en),
- &clock_manager_base->per_pll_en);
+ readl(&clock_manager_base->per_pll.en),
+ &clock_manager_base->per_pll.en);
/* DO NOT GATE OFF DEBUG CLOCKS & BRIDGE CLOCKS */
writel(CLKMGR_MAINPLLGRP_EN_DBGTIMERCLK_MASK |
@@ -120,12 +120,12 @@ void cm_basic_init(const cm_config_t *cfg)
CLKMGR_MAINPLLGRP_EN_DBGATCLK_MASK |
CLKMGR_MAINPLLGRP_EN_S2FUSER0CLK_MASK |
CLKMGR_MAINPLLGRP_EN_L4MPCLK_MASK,
- &clock_manager_base->main_pll_en);
+ &clock_manager_base->main_pll.en);
- writel(0, &clock_manager_base->sdr_pll_en);
+ writel(0, &clock_manager_base->sdr_pll.en);
/* now we can gate off the rest of the peripheral clocks */
- writel(0, &clock_manager_base->per_pll_en);
+ writel(0, &clock_manager_base->per_pll.en);
/* Put all plls in bypass */
cm_write_bypass(
@@ -142,11 +142,11 @@ void cm_basic_init(const cm_config_t *cfg)
* Some code might have messed with them.
*/
writel(CLKMGR_MAINPLLGRP_VCO_RESET_VALUE,
- &clock_manager_base->main_pll_vco);
+ &clock_manager_base->main_pll.vco);
writel(CLKMGR_PERPLLGRP_VCO_RESET_VALUE,
- &clock_manager_base->per_pll_vco);
+ &clock_manager_base->per_pll.vco);
writel(CLKMGR_SDRPLLGRP_VCO_RESET_VALUE,
- &clock_manager_base->sdr_pll_vco);
+ &clock_manager_base->sdr_pll.vco);
/*
* The clocks to the flash devices and the L4_MAIN clocks can
@@ -156,14 +156,14 @@ void cm_basic_init(const cm_config_t *cfg)
* after exiting safe mode but before ungating the clocks.
*/
writel(CLKMGR_PERPLLGRP_SRC_RESET_VALUE,
- &clock_manager_base->per_pll_src);
+ &clock_manager_base->per_pll.src);
writel(CLKMGR_MAINPLLGRP_L4SRC_RESET_VALUE,
- &clock_manager_base->main_pll_l4src);
+ &clock_manager_base->main_pll.l4src);
/* read back for the required 5 us delay. */
- readl(&clock_manager_base->main_pll_vco);
- readl(&clock_manager_base->per_pll_vco);
- readl(&clock_manager_base->sdr_pll_vco);
+ readl(&clock_manager_base->main_pll.vco);
+ readl(&clock_manager_base->per_pll.vco);
+ readl(&clock_manager_base->sdr_pll.vco);
/*
@@ -172,60 +172,59 @@ void cm_basic_init(const cm_config_t *cfg)
*/
writel(cfg->main_vco_base | CLEAR_BGP_EN_PWRDN |
CLKMGR_MAINPLLGRP_VCO_REGEXTSEL_MASK,
- &clock_manager_base->main_pll_vco);
+ &clock_manager_base->main_pll.vco);
writel(cfg->peri_vco_base | CLEAR_BGP_EN_PWRDN |
CLKMGR_PERPLLGRP_VCO_REGEXTSEL_MASK,
- &clock_manager_base->per_pll_vco);
+ &clock_manager_base->per_pll.vco);
writel(CLKMGR_SDRPLLGRP_VCO_OUTRESET_SET(0) |
CLKMGR_SDRPLLGRP_VCO_OUTRESETALL_SET(0) |
cfg->sdram_vco_base | CLEAR_BGP_EN_PWRDN |
CLKMGR_SDRPLLGRP_VCO_REGEXTSEL_MASK,
- &clock_manager_base->sdr_pll_vco);
+ &clock_manager_base->sdr_pll.vco);
/*
* Time starts here
* must wait 7 us from BGPWRDN_SET(0) to VCO_ENABLE_SET(1)
*/
- reset_timer();
start = get_timer(0);
/* timeout in unit of us as CONFIG_SYS_HZ = 1000*1000 */
timeout = 7;
/* main mpu */
- writel(cfg->mpuclk, &clock_manager_base->main_pll_mpuclk);
+ writel(cfg->mpuclk, &clock_manager_base->main_pll.mpuclk);
/* main main clock */
- writel(cfg->mainclk, &clock_manager_base->main_pll_mainclk);
+ writel(cfg->mainclk, &clock_manager_base->main_pll.mainclk);
/* main for dbg */
- writel(cfg->dbgatclk, &clock_manager_base->main_pll_dbgatclk);
+ writel(cfg->dbgatclk, &clock_manager_base->main_pll.dbgatclk);
/* main for cfgs2fuser0clk */
writel(cfg->cfg2fuser0clk,
- &clock_manager_base->main_pll_cfgs2fuser0clk);
+ &clock_manager_base->main_pll.cfgs2fuser0clk);
/* Peri emac0 50 MHz default to RMII */
- writel(cfg->emac0clk, &clock_manager_base->per_pll_emac0clk);
+ writel(cfg->emac0clk, &clock_manager_base->per_pll.emac0clk);
/* Peri emac1 50 MHz default to RMII */
- writel(cfg->emac1clk, &clock_manager_base->per_pll_emac1clk);
+ writel(cfg->emac1clk, &clock_manager_base->per_pll.emac1clk);
/* Peri QSPI */
- writel(cfg->mainqspiclk, &clock_manager_base->main_pll_mainqspiclk);
+ writel(cfg->mainqspiclk, &clock_manager_base->main_pll.mainqspiclk);
- writel(cfg->perqspiclk, &clock_manager_base->per_pll_perqspiclk);
+ writel(cfg->perqspiclk, &clock_manager_base->per_pll.perqspiclk);
/* Peri pernandsdmmcclk */
writel(cfg->pernandsdmmcclk,
- &clock_manager_base->per_pll_pernandsdmmcclk);
+ &clock_manager_base->per_pll.pernandsdmmcclk);
/* Peri perbaseclk */
- writel(cfg->perbaseclk, &clock_manager_base->per_pll_perbaseclk);
+ writel(cfg->perbaseclk, &clock_manager_base->per_pll.perbaseclk);
/* Peri s2fuser1clk */
- writel(cfg->s2fuser1clk, &clock_manager_base->per_pll_s2fuser1clk);
+ writel(cfg->s2fuser1clk, &clock_manager_base->per_pll.s2fuser1clk);
/* 7 us must have elapsed before we can enable the VCO */
while (get_timer(start) < timeout)
@@ -234,29 +233,29 @@ void cm_basic_init(const cm_config_t *cfg)
/* Enable vco */
/* main pll vco */
writel(cfg->main_vco_base | VCO_EN_BASE,
- &clock_manager_base->main_pll_vco);
+ &clock_manager_base->main_pll.vco);
/* periferal pll */
writel(cfg->peri_vco_base | VCO_EN_BASE,
- &clock_manager_base->per_pll_vco);
+ &clock_manager_base->per_pll.vco);
/* sdram pll vco */
writel(CLKMGR_SDRPLLGRP_VCO_OUTRESET_SET(0) |
CLKMGR_SDRPLLGRP_VCO_OUTRESETALL_SET(0) |
cfg->sdram_vco_base | VCO_EN_BASE,
- &clock_manager_base->sdr_pll_vco);
+ &clock_manager_base->sdr_pll.vco);
/* L3 MP and L3 SP */
- writel(cfg->maindiv, &clock_manager_base->main_pll_maindiv);
+ writel(cfg->maindiv, &clock_manager_base->main_pll.maindiv);
- writel(cfg->dbgdiv, &clock_manager_base->main_pll_dbgdiv);
+ writel(cfg->dbgdiv, &clock_manager_base->main_pll.dbgdiv);
- writel(cfg->tracediv, &clock_manager_base->main_pll_tracediv);
+ writel(cfg->tracediv, &clock_manager_base->main_pll.tracediv);
/* L4 MP, L4 SP, can0, and can1 */
- writel(cfg->perdiv, &clock_manager_base->per_pll_div);
+ writel(cfg->perdiv, &clock_manager_base->per_pll.div);
- writel(cfg->gpiodiv, &clock_manager_base->per_pll_gpiodiv);
+ writel(cfg->gpiodiv, &clock_manager_base->per_pll.gpiodiv);
#define LOCKED_MASK \
(CLKMGR_INTER_SDRPLLLOCKED_MASK | \
@@ -267,70 +266,70 @@ void cm_basic_init(const cm_config_t *cfg)
/* write the sdram clock counters before toggling outreset all */
writel(cfg->ddrdqsclk & CLKMGR_SDRPLLGRP_DDRDQSCLK_CNT_MASK,
- &clock_manager_base->sdr_pll_ddrdqsclk);
+ &clock_manager_base->sdr_pll.ddrdqsclk);
writel(cfg->ddr2xdqsclk & CLKMGR_SDRPLLGRP_DDR2XDQSCLK_CNT_MASK,
- &clock_manager_base->sdr_pll_ddr2xdqsclk);
+ &clock_manager_base->sdr_pll.ddr2xdqsclk);
writel(cfg->ddrdqclk & CLKMGR_SDRPLLGRP_DDRDQCLK_CNT_MASK,
- &clock_manager_base->sdr_pll_ddrdqclk);
+ &clock_manager_base->sdr_pll.ddrdqclk);
writel(cfg->s2fuser2clk & CLKMGR_SDRPLLGRP_S2FUSER2CLK_CNT_MASK,
- &clock_manager_base->sdr_pll_s2fuser2clk);
+ &clock_manager_base->sdr_pll.s2fuser2clk);
/*
* after locking, but before taking out of bypass
* assert/deassert outresetall
*/
- uint32_t mainvco = readl(&clock_manager_base->main_pll_vco);
+ uint32_t mainvco = readl(&clock_manager_base->main_pll.vco);
/* assert main outresetall */
writel(mainvco | CLKMGR_MAINPLLGRP_VCO_OUTRESETALL_MASK,
- &clock_manager_base->main_pll_vco);
+ &clock_manager_base->main_pll.vco);
- uint32_t periphvco = readl(&clock_manager_base->per_pll_vco);
+ uint32_t periphvco = readl(&clock_manager_base->per_pll.vco);
/* assert pheriph outresetall */
writel(periphvco | CLKMGR_PERPLLGRP_VCO_OUTRESETALL_MASK,
- &clock_manager_base->per_pll_vco);
+ &clock_manager_base->per_pll.vco);
/* assert sdram outresetall */
writel(cfg->sdram_vco_base | VCO_EN_BASE|
CLKMGR_SDRPLLGRP_VCO_OUTRESETALL_SET(1),
- &clock_manager_base->sdr_pll_vco);
+ &clock_manager_base->sdr_pll.vco);
/* deassert main outresetall */
writel(mainvco & ~CLKMGR_MAINPLLGRP_VCO_OUTRESETALL_MASK,
- &clock_manager_base->main_pll_vco);
+ &clock_manager_base->main_pll.vco);
/* deassert pheriph outresetall */
writel(periphvco & ~CLKMGR_PERPLLGRP_VCO_OUTRESETALL_MASK,
- &clock_manager_base->per_pll_vco);
+ &clock_manager_base->per_pll.vco);
/* deassert sdram outresetall */
writel(CLKMGR_SDRPLLGRP_VCO_OUTRESETALL_SET(0) |
cfg->sdram_vco_base | VCO_EN_BASE,
- &clock_manager_base->sdr_pll_vco);
+ &clock_manager_base->sdr_pll.vco);
/*
* now that we've toggled outreset all, all the clocks
* are aligned nicely; so we can change any phase.
*/
cm_write_with_phase(cfg->ddrdqsclk,
- (uint32_t)&clock_manager_base->sdr_pll_ddrdqsclk,
+ (uint32_t)&clock_manager_base->sdr_pll.ddrdqsclk,
CLKMGR_SDRPLLGRP_DDRDQSCLK_PHASE_MASK);
/* SDRAM DDR2XDQSCLK */
cm_write_with_phase(cfg->ddr2xdqsclk,
- (uint32_t)&clock_manager_base->sdr_pll_ddr2xdqsclk,
+ (uint32_t)&clock_manager_base->sdr_pll.ddr2xdqsclk,
CLKMGR_SDRPLLGRP_DDR2XDQSCLK_PHASE_MASK);
cm_write_with_phase(cfg->ddrdqclk,
- (uint32_t)&clock_manager_base->sdr_pll_ddrdqclk,
+ (uint32_t)&clock_manager_base->sdr_pll.ddrdqclk,
CLKMGR_SDRPLLGRP_DDRDQCLK_PHASE_MASK);
cm_write_with_phase(cfg->s2fuser2clk,
- (uint32_t)&clock_manager_base->sdr_pll_s2fuser2clk,
+ (uint32_t)&clock_manager_base->sdr_pll.s2fuser2clk,
CLKMGR_SDRPLLGRP_S2FUSER2CLK_PHASE_MASK);
/* Take all three PLLs out of bypass when safe mode is cleared. */
@@ -351,11 +350,11 @@ void cm_basic_init(const cm_config_t *cfg)
* now that safe mode is clear with clocks gated
* it safe to change the source mux for the flashes the the L4_MAIN
*/
- writel(cfg->persrc, &clock_manager_base->per_pll_src);
- writel(cfg->l4src, &clock_manager_base->main_pll_l4src);
+ writel(cfg->persrc, &clock_manager_base->per_pll.src);
+ writel(cfg->l4src, &clock_manager_base->main_pll.l4src);
/* Now ungate non-hw-managed clocks */
- writel(~0, &clock_manager_base->main_pll_en);
- writel(~0, &clock_manager_base->per_pll_en);
- writel(~0, &clock_manager_base->sdr_pll_en);
+ writel(~0, &clock_manager_base->main_pll.en);
+ writel(~0, &clock_manager_base->per_pll.en);
+ writel(~0, &clock_manager_base->sdr_pll.en);
}
diff --git a/arch/arm/cpu/armv7/socfpga/config.mk b/arch/arm/cpu/armv7/socfpga/config.mk
index 3d18491..2a99c72 100644
--- a/arch/arm/cpu/armv7/socfpga/config.mk
+++ b/arch/arm/cpu/armv7/socfpga/config.mk
@@ -6,3 +6,6 @@
ifndef CONFIG_SPL_BUILD
ALL-y += u-boot.img
endif
+
+# Added for handoff support
+PLATFORM_RELFLAGS += -Iboard/$(VENDOR)/$(BOARD)
diff --git a/arch/arm/cpu/armv7/socfpga/misc.c b/arch/arm/cpu/armv7/socfpga/misc.c
index 5268f2c..ecae393 100644
--- a/arch/arm/cpu/armv7/socfpga/misc.c
+++ b/arch/arm/cpu/armv7/socfpga/misc.c
@@ -6,6 +6,8 @@
#include <common.h>
#include <asm/io.h>
+#include <miiphy.h>
+#include <netdev.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -38,3 +40,18 @@ int misc_init_r(void)
{
return 0;
}
+
+
+/*
+ * DesignWare Ethernet initialization
+ */
+int cpu_eth_init(bd_t *bis)
+{
+#if !defined(CONFIG_SOCFPGA_VIRTUAL_TARGET) && !defined(CONFIG_SPL_BUILD)
+ /* initialize and register the emac */
+ return designware_initialize(CONFIG_EMAC_BASE,
+ CONFIG_PHY_INTERFACE_MODE);
+#else
+ return 0;
+#endif
+}
diff --git a/arch/arm/cpu/armv7/socfpga/spl.c b/arch/arm/cpu/armv7/socfpga/spl.c
index 4bed19d..27efde6 100644
--- a/arch/arm/cpu/armv7/socfpga/spl.c
+++ b/arch/arm/cpu/armv7/socfpga/spl.c
@@ -14,6 +14,8 @@
#include <spl.h>
#include <asm/arch/system_manager.h>
#include <asm/arch/freeze_controller.h>
+#include <asm/arch/clock_manager.h>
+#include <asm/arch/scan_manager.h>
DECLARE_GLOBAL_DATA_PTR;
diff --git a/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds b/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds
index 4282beb..db9bdad 100644
--- a/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds
+++ b/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds
@@ -16,6 +16,7 @@ SECTIONS
. = ALIGN(4);
.text :
{
+ *(.vectors)
arch/arm/cpu/armv7/start.o (.text*)
*(.text*)
} >.sdram
diff --git a/arch/arm/cpu/armv7/tegra-common/Kconfig b/arch/arm/cpu/armv7/tegra-common/Kconfig
new file mode 100644
index 0000000..8e2153b
--- /dev/null
+++ b/arch/arm/cpu/armv7/tegra-common/Kconfig
@@ -0,0 +1,30 @@
+if TEGRA
+
+choice
+ prompt "Tegra SoC select"
+
+config TEGRA20
+ bool "Tegra20 family"
+
+config TEGRA30
+ bool "Tegra30 family"
+
+config TEGRA114
+ bool "Tegra114 family"
+
+config TEGRA124
+ bool "Tegra124 family"
+
+endchoice
+
+config SYS_CPU
+ string
+ default "arm720t" if SPL_BUILD
+ default "armv7" if !SPL_BUILD
+
+source "arch/arm/cpu/armv7/tegra20/Kconfig"
+source "arch/arm/cpu/armv7/tegra30/Kconfig"
+source "arch/arm/cpu/armv7/tegra114/Kconfig"
+source "arch/arm/cpu/armv7/tegra124/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/armv7/tegra114/Kconfig b/arch/arm/cpu/armv7/tegra114/Kconfig
new file mode 100644
index 0000000..33a22da
--- /dev/null
+++ b/arch/arm/cpu/armv7/tegra114/Kconfig
@@ -0,0 +1,17 @@
+if TEGRA114
+
+choice
+ prompt "Tegra114 board select"
+
+config TARGET_DALMORE
+ bool "NVIDIA Tegra114 Dalmore evaluation board"
+
+endchoice
+
+config SYS_SOC
+ string
+ default "tegra114"
+
+source "board/nvidia/dalmore/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/armv7/tegra124/Kconfig b/arch/arm/cpu/armv7/tegra124/Kconfig
new file mode 100644
index 0000000..753f511
--- /dev/null
+++ b/arch/arm/cpu/armv7/tegra124/Kconfig
@@ -0,0 +1,21 @@
+if TEGRA124
+
+choice
+ prompt "Tegra124 board select"
+
+config TARGET_JETSON_TK1
+ bool "NVIDIA Tegra124 Jetson TK1 board"
+
+config TARGET_VENICE2
+ bool "NVIDIA Tegra124 Venice2"
+
+endchoice
+
+config SYS_SOC
+ string
+ default "tegra124"
+
+source "board/nvidia/jetson-tk1/Kconfig"
+source "board/nvidia/venice2/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/armv7/tegra20/Kconfig b/arch/arm/cpu/armv7/tegra20/Kconfig
new file mode 100644
index 0000000..e2e0890
--- /dev/null
+++ b/arch/arm/cpu/armv7/tegra20/Kconfig
@@ -0,0 +1,53 @@
+if TEGRA20
+
+choice
+ prompt "Tegra20 board select"
+
+config TARGET_HARMONY
+ bool "NVIDIA Tegra20 Harmony evaluation board"
+
+config TARGET_MEDCOM_WIDE
+ bool "Avionic Design Medcom-Wide board"
+
+config TARGET_PAZ00
+ bool "Paz00 board"
+
+config TARGET_PLUTUX
+ bool "Avionic Design Plutux board"
+
+config TARGET_SEABOARD
+ bool "NVIDIA Seaboard"
+
+config TARGET_TEC
+ bool "Avionic Design Tamonten Evaluation Carrier"
+
+config TARGET_TRIMSLICE
+ bool "Compulab TrimSlice board"
+
+config TARGET_VENTANA
+ bool "NVIDIA Tegra20 Ventana evaluation board"
+
+config TARGET_WHISTLER
+ bool "NVIDIA Tegra20 Whistler evaluation board"
+
+config TARGET_COLIBRI_T20_IRIS
+ bool "Toradex Colibri T20 board"
+
+endchoice
+
+config SYS_SOC
+ string
+ default "tegra20"
+
+source "board/nvidia/harmony/Kconfig"
+source "board/avionic-design/medcom-wide/Kconfig"
+source "board/compal/paz00/Kconfig"
+source "board/avionic-design/plutux/Kconfig"
+source "board/nvidia/seaboard/Kconfig"
+source "board/avionic-design/tec/Kconfig"
+source "board/compulab/trimslice/Kconfig"
+source "board/nvidia/ventana/Kconfig"
+source "board/nvidia/whistler/Kconfig"
+source "board/toradex/colibri_t20_iris/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/armv7/tegra30/Kconfig b/arch/arm/cpu/armv7/tegra30/Kconfig
new file mode 100644
index 0000000..694e1cd
--- /dev/null
+++ b/arch/arm/cpu/armv7/tegra30/Kconfig
@@ -0,0 +1,29 @@
+if TEGRA30
+
+choice
+ prompt "Tegra30 board select"
+
+config TARGET_BEAVER
+ bool "NVIDIA Tegra30 Beaver evaluation board"
+
+config TARGET_CARDHU
+ bool "NVIDIA Tegra30 Cardhu evaluation board"
+
+config TARGET_COLIBRI_T30
+ bool "Toradex Colibri T30 board"
+
+config TARGET_TEC_NG
+ bool "Avionic Design TEC-NG board"
+
+endchoice
+
+config SYS_SOC
+ string
+ default "tegra30"
+
+source "board/nvidia/beaver/Kconfig"
+source "board/nvidia/cardhu/Kconfig"
+source "board/toradex/colibri_t30/Kconfig"
+source "board/avionic-design/tec-ng/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/armv7/zynq/Kconfig b/arch/arm/cpu/armv7/zynq/Kconfig
new file mode 100644
index 0000000..6b88f18
--- /dev/null
+++ b/arch/arm/cpu/armv7/zynq/Kconfig
@@ -0,0 +1,43 @@
+if ZYNQ
+
+choice
+ prompt "Xilinx Zynq board select"
+
+config TARGET_ZYNQ_ZED
+ bool "Zynq ZedBoard"
+
+config TARGET_ZYNQ_MICROZED
+ bool "Zynq MicroZed"
+
+config TARGET_ZYNQ_ZC70X
+ bool "Zynq ZC702/ZC706 Board"
+
+config TARGET_ZYNQ_ZC770
+ bool "Zynq ZC770 Board"
+
+endchoice
+
+config SYS_CPU
+ string
+ default "armv7"
+
+config SYS_BOARD
+ string
+ default "zynq"
+
+config SYS_VENDOR
+ string
+ default "xilinx"
+
+config SYS_SOC
+ string
+ default "zynq"
+
+config SYS_CONFIG_NAME
+ string
+ default "zynq_zed" if TARGET_ZYNQ_ZED
+ default "zynq_microzed" if TARGET_ZYNQ_MICROZED
+ default "zynq_zc70x" if TARGET_ZYNQ_ZC70X
+ default "zynq_zc770" if TARGET_ZYNQ_ZC770
+
+endif
diff --git a/arch/arm/cpu/at91-common/u-boot-spl.lds b/arch/arm/cpu/at91-common/u-boot-spl.lds
index 57ac1eb..eccca43 100644
--- a/arch/arm/cpu/at91-common/u-boot-spl.lds
+++ b/arch/arm/cpu/at91-common/u-boot-spl.lds
@@ -25,6 +25,7 @@ SECTIONS
.text :
{
__start = .;
+ *(.vectors)
arch/arm/cpu/armv7/start.o (.text*)
*(.text*)
} >.sram
diff --git a/arch/arm/include/asm/arch-bcm281xx/sysmap.h b/arch/arm/include/asm/arch-bcm281xx/sysmap.h
index 880b4e0..350e7f6 100644
--- a/arch/arm/include/asm/arch-bcm281xx/sysmap.h
+++ b/arch/arm/include/asm/arch-bcm281xx/sysmap.h
@@ -9,6 +9,9 @@
#define BSC1_BASE_ADDR 0x3e016000
#define BSC2_BASE_ADDR 0x3e017000
#define BSC3_BASE_ADDR 0x3e018000
+#define DWDMA_AHB_BASE_ADDR 0x38100000
+#define ESUB_CLK_BASE_ADDR 0x38000000
+#define ESW_CONTRL_BASE_ADDR 0x38200000
#define GPIO2_BASE_ADDR 0x35003000
#define KONA_MST_CLK_BASE_ADDR 0x3f001000
#define KONA_SLV_CLK_BASE_ADDR 0x3e011000
diff --git a/arch/arm/include/asm/arch-bcmcygnus/configs.h b/arch/arm/include/asm/arch-bcmcygnus/configs.h
new file mode 100644
index 0000000..5354637
--- /dev/null
+++ b/arch/arm/include/asm/arch-bcmcygnus/configs.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __ARCH_CONFIGS_H
+#define __ARCH_CONFIGS_H
+
+#include <asm/iproc-common/configs.h>
+
+/* uArchitecture specifics */
+
+/* Serial Info */
+/* Post pad 3 bytes after each reg addr */
+#define CONFIG_SYS_NS16550_REG_SIZE (-4)
+#define CONFIG_SYS_NS16550_MEM32
+
+#define CONFIG_SYS_NS16550_CLK 100000000
+#define CONFIG_SYS_NS16550_CLK_DIV 54
+#define CONFIG_SERIAL_MULTI
+#define CONFIG_CONS_INDEX 3
+#define CONFIG_SYS_NS16550_COM3 0x18023000
+
+#endif /* __ARCH_CONFIGS_H */
diff --git a/arch/arm/include/asm/arch-bcmnsp/configs.h b/arch/arm/include/asm/arch-bcmnsp/configs.h
new file mode 100644
index 0000000..786deae
--- /dev/null
+++ b/arch/arm/include/asm/arch-bcmnsp/configs.h
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __ARCH_CONFIGS_H
+#define __ARCH_CONFIGS_H
+
+#include <asm/iproc-common/configs.h>
+
+/* uArchitecture specifics */
+
+/* Serial Info */
+/* no padding */
+#define CONFIG_SYS_NS16550_REG_SIZE 1
+
+#define CONFIG_SYS_NS16550_CLK 0x03b9aca0
+#define CONFIG_CONS_INDEX 1
+#define CONFIG_SYS_NS16550_COM1 0x18000300
+
+#endif /* __ARCH_CONFIGS_H */
diff --git a/arch/arm/include/asm/arch-socfpga/clock_manager.h b/arch/arm/include/asm/arch-socfpga/clock_manager.h
index 966add3..babac0e 100644
--- a/arch/arm/include/asm/arch-socfpga/clock_manager.h
+++ b/arch/arm/include/asm/arch-socfpga/clock_manager.h
@@ -43,6 +43,52 @@ typedef struct {
extern void cm_basic_init(const cm_config_t *cfg);
+struct socfpga_clock_manager_main_pll {
+ u32 vco;
+ u32 misc;
+ u32 mpuclk;
+ u32 mainclk;
+ u32 dbgatclk;
+ u32 mainqspiclk;
+ u32 mainnandsdmmcclk;
+ u32 cfgs2fuser0clk;
+ u32 en;
+ u32 maindiv;
+ u32 dbgdiv;
+ u32 tracediv;
+ u32 l4src;
+ u32 stat;
+ u32 _pad_0x38_0x40[2];
+};
+
+struct socfpga_clock_manager_per_pll {
+ u32 vco;
+ u32 misc;
+ u32 emac0clk;
+ u32 emac1clk;
+ u32 perqspiclk;
+ u32 pernandsdmmcclk;
+ u32 perbaseclk;
+ u32 s2fuser1clk;
+ u32 en;
+ u32 div;
+ u32 gpiodiv;
+ u32 src;
+ u32 stat;
+ u32 _pad_0x34_0x40[3];
+};
+
+struct socfpga_clock_manager_sdr_pll {
+ u32 vco;
+ u32 ctrl;
+ u32 ddrdqsclk;
+ u32 ddr2xdqsclk;
+ u32 ddrdqclk;
+ u32 s2fuser2clk;
+ u32 en;
+ u32 stat;
+};
+
struct socfpga_clock_manager {
u32 ctrl;
u32 bypass;
@@ -51,50 +97,10 @@ struct socfpga_clock_manager {
u32 dbctrl;
u32 stat;
u32 _pad_0x18_0x3f[10];
- u32 mainpllgrp;
- u32 perpllgrp;
- u32 sdrpllgrp;
+ struct socfpga_clock_manager_main_pll main_pll;
+ struct socfpga_clock_manager_per_pll per_pll;
+ struct socfpga_clock_manager_sdr_pll sdr_pll;
u32 _pad_0xe0_0x200[72];
-
- u32 main_pll_vco;
- u32 main_pll_misc;
- u32 main_pll_mpuclk;
- u32 main_pll_mainclk;
- u32 main_pll_dbgatclk;
- u32 main_pll_mainqspiclk;
- u32 main_pll_mainnandsdmmcclk;
- u32 main_pll_cfgs2fuser0clk;
- u32 main_pll_en;
- u32 main_pll_maindiv;
- u32 main_pll_dbgdiv;
- u32 main_pll_tracediv;
- u32 main_pll_l4src;
- u32 main_pll_stat;
- u32 main_pll__pad_0x38_0x40[2];
-
- u32 per_pll_vco;
- u32 per_pll_misc;
- u32 per_pll_emac0clk;
- u32 per_pll_emac1clk;
- u32 per_pll_perqspiclk;
- u32 per_pll_pernandsdmmcclk;
- u32 per_pll_perbaseclk;
- u32 per_pll_s2fuser1clk;
- u32 per_pll_en;
- u32 per_pll_div;
- u32 per_pll_gpiodiv;
- u32 per_pll_src;
- u32 per_pll_stat;
- u32 per_pll__pad_0x34_0x40[3];
-
- u32 sdr_pll_vco;
- u32 sdr_pll_ctrl;
- u32 sdr_pll_ddrdqsclk;
- u32 sdr_pll_ddr2xdqsclk;
- u32 sdr_pll_ddrdqclk;
- u32 sdr_pll_s2fuser2clk;
- u32 sdr_pll_en;
- u32 sdr_pll_stat;
};
#define CLKMGR_MAINPLLGRP_EN_S2FUSER0CLK_MASK 0x00000200
diff --git a/arch/arm/include/asm/arch-socfpga/scan_manager.h b/arch/arm/include/asm/arch-socfpga/scan_manager.h
index f9be621..b2686d3 100644
--- a/arch/arm/include/asm/arch-socfpga/scan_manager.h
+++ b/arch/arm/include/asm/arch-socfpga/scan_manager.h
@@ -87,4 +87,6 @@ extern const uint32_t iocsr_scan_chain2_table[
extern const uint32_t iocsr_scan_chain3_table[
((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH / 32) + 1)];
+int scan_mgr_configure_iocsr(void);
+
#endif /* _SCAN_MANAGER_H_ */
diff --git a/arch/arm/include/asm/arch-socfpga/socfpga_base_addrs.h b/arch/arm/include/asm/arch-socfpga/socfpga_base_addrs.h
index 5f73824..2d3152d 100644
--- a/arch/arm/include/asm/arch-socfpga/socfpga_base_addrs.h
+++ b/arch/arm/include/asm/arch-socfpga/socfpga_base_addrs.h
@@ -16,5 +16,7 @@
#define SOCFPGA_RSTMGR_ADDRESS 0xffd05000
#define SOCFPGA_SYSMGR_ADDRESS 0xffd08000
#define SOCFPGA_SCANMGR_ADDRESS 0xfff02000
+#define SOCFPGA_EMAC0_ADDRESS 0xff700000
+#define SOCFPGA_EMAC1_ADDRESS 0xff702000
#endif /* _SOCFPGA_BASE_ADDRS_H_ */
diff --git a/arch/arm/include/asm/arch-tegra114/tegra.h b/arch/arm/include/asm/arch-tegra114/tegra.h
index 705ca57..5d426b5 100644
--- a/arch/arm/include/asm/arch-tegra114/tegra.h
+++ b/arch/arm/include/asm/arch-tegra114/tegra.h
@@ -17,8 +17,6 @@
#ifndef _TEGRA114_H_
#define _TEGRA114_H_
-#define CONFIG_TEGRA114
-
#define NV_PA_SDRAM_BASE 0x80000000 /* 0x80000000 for real T114 */
#define NV_PA_TSC_BASE 0x700F0000 /* System Counter TSC regs */
diff --git a/arch/arm/include/asm/arch-tegra124/tegra.h b/arch/arm/include/asm/arch-tegra124/tegra.h
index 86ebd19..db3d837 100644
--- a/arch/arm/include/asm/arch-tegra124/tegra.h
+++ b/arch/arm/include/asm/arch-tegra124/tegra.h
@@ -8,8 +8,6 @@
#ifndef _TEGRA124_H_
#define _TEGRA124_H_
-#define CONFIG_TEGRA124
-
#define NV_PA_SDRAM_BASE 0x80000000
#define NV_PA_TSC_BASE 0x700F0000 /* System Counter TSC regs */
#define NV_PA_MC_BASE 0x70019000 /* Mem Ctlr regs (MCB, etc.) */
diff --git a/arch/arm/include/asm/arch-tegra20/tegra.h b/arch/arm/include/asm/arch-tegra20/tegra.h
index 6a4b40e..18856ac 100644
--- a/arch/arm/include/asm/arch-tegra20/tegra.h
+++ b/arch/arm/include/asm/arch-tegra20/tegra.h
@@ -8,8 +8,6 @@
#ifndef _TEGRA20_H_
#define _TEGRA20_H_
-#define CONFIG_TEGRA20
-
#define NV_PA_SDRAM_BASE 0x00000000
#include <asm/arch-tegra/tegra.h>
diff --git a/arch/arm/include/asm/arch-tegra30/tegra.h b/arch/arm/include/asm/arch-tegra30/tegra.h
index 4ad8b1c..c02c5d8 100644
--- a/arch/arm/include/asm/arch-tegra30/tegra.h
+++ b/arch/arm/include/asm/arch-tegra30/tegra.h
@@ -17,8 +17,6 @@
#ifndef _TEGRA30_H_
#define _TEGRA30_H_
-#define CONFIG_TEGRA30
-
#define NV_PA_SDRAM_BASE 0x80000000 /* 0x80000000 for real T30 */
#include <asm/arch-tegra/tegra.h>
diff --git a/arch/arm/include/asm/arch-vf610/crm_regs.h b/arch/arm/include/asm/arch-vf610/crm_regs.h
index 5256624..724682c 100644
--- a/arch/arm/include/asm/arch-vf610/crm_regs.h
+++ b/arch/arm/include/asm/arch-vf610/crm_regs.h
@@ -156,14 +156,27 @@ struct anadig_reg {
#define CCM_CSCMR1_ESDHC1_CLK_SEL_OFFSET 18
#define CCM_CSCMR1_ESDHC1_CLK_SEL_MASK (0x3 << 18)
#define CCM_CSCMR1_ESDHC1_CLK_SEL(v) (((v) & 0x3) << 18)
+#define CCM_CSCMR1_NFC_CLK_SEL_OFFSET 12
+#define CCM_CSCMR1_NFC_CLK_SEL_MASK (0x3 << 12)
+#define CCM_CSCMR1_NFC_CLK_SEL(v) (((v) & 0x3) << 12)
#define CCM_CSCDR1_RMII_CLK_EN (1 << 24)
+#define CCM_CSCDR2_NFC_EN (1 << 9)
+#define CCM_CSCDR2_NFC_FRAC_DIV_EN (1 << 13)
+#define CCM_CSCDR2_NFC_CLK_INV (1 << 14)
+#define CCM_CSCDR2_NFC_FRAC_DIV_OFFSET 4
+#define CCM_CSCDR2_NFC_FRAC_DIV_MASK (0xf << 4)
+#define CCM_CSCDR2_NFC_FRAC_DIV(v) (((v) & 0xf) << 4)
+
#define CCM_CSCDR2_ESDHC1_EN (1 << 29)
#define CCM_CSCDR2_ESDHC1_CLK_DIV_OFFSET 20
#define CCM_CSCDR2_ESDHC1_CLK_DIV_MASK (0xf << 20)
#define CCM_CSCDR2_ESDHC1_CLK_DIV(v) (((v) & 0xf) << 20)
+#define CCM_CSCDR3_NFC_PRE_DIV_OFFSET 13
+#define CCM_CSCDR3_NFC_PRE_DIV_MASK (0x7 << 13)
+#define CCM_CSCDR3_NFC_PRE_DIV(v) (((v) & 0x7) << 13)
#define CCM_CSCDR3_QSPI0_EN (1 << 4)
#define CCM_CSCDR3_QSPI0_DIV(v) ((v) << 3)
#define CCM_CSCDR3_QSPI0_X2_DIV(v) ((v) << 2)
@@ -195,6 +208,7 @@ struct anadig_reg {
#define CCM_CCGR7_SDHC1_CTRL_MASK (0x3 << 4)
#define CCM_CCGR9_FEC0_CTRL_MASK 0x3
#define CCM_CCGR9_FEC1_CTRL_MASK (0x3 << 2)
+#define CCM_CCGR10_NFC_CTRL_MASK 0x3
#define ANADIG_PLL5_CTRL_BYPASS (1 << 16)
#define ANADIG_PLL5_CTRL_ENABLE (1 << 13)
diff --git a/arch/arm/include/asm/arch-vf610/imx-regs.h b/arch/arm/include/asm/arch-vf610/imx-regs.h
index bd6f680..bb00217 100644
--- a/arch/arm/include/asm/arch-vf610/imx-regs.h
+++ b/arch/arm/include/asm/arch-vf610/imx-regs.h
@@ -86,6 +86,7 @@
#define ESDHC1_BASE_ADDR (AIPS1_BASE_ADDR + 0x00032000)
#define ENET_BASE_ADDR (AIPS1_BASE_ADDR + 0x00050000)
#define ENET1_BASE_ADDR (AIPS1_BASE_ADDR + 0x00051000)
+#define NFC_BASE_ADDR (AIPS1_BASE_ADDR + 0x00060000)
#define QSPI0_AMBA_BASE 0x20000000
diff --git a/arch/arm/include/asm/arch-vf610/iomux-vf610.h b/arch/arm/include/asm/arch-vf610/iomux-vf610.h
index a965641..7464da8 100644
--- a/arch/arm/include/asm/arch-vf610/iomux-vf610.h
+++ b/arch/arm/include/asm/arch-vf610/iomux-vf610.h
@@ -19,6 +19,13 @@
#define VF610_DDR_PAD_CTRL PAD_CTL_DSE_25ohm
#define VF610_I2C_PAD_CTRL (PAD_CTL_PUS_47K_UP | PAD_CTL_DSE_50ohm | \
PAD_CTL_SPEED_HIGH | PAD_CTL_OBE_IBE_ENABLE)
+#define VF610_NFC_IO_PAD_CTRL (PAD_CTL_SPEED_MED | PAD_CTL_SRE | \
+ PAD_CTL_DSE_50ohm | PAD_CTL_PUS_47K_UP | \
+ PAD_CTL_OBE_IBE_ENABLE)
+#define VF610_NFC_CN_PAD_CTRL (PAD_CTL_SPEED_MED | PAD_CTL_SRE | \
+ PAD_CTL_DSE_25ohm | PAD_CTL_OBE_ENABLE)
+#define VF610_NFC_RB_PAD_CTRL (PAD_CTL_SPEED_MED | PAD_CTL_SRE | \
+ PAD_CTL_PUS_22K_UP | PAD_CTL_IBE_ENABLE)
#define VF610_QSPI_PAD_CTRL (PAD_CTL_SPEED_HIGH | PAD_CTL_DSE_150ohm | \
PAD_CTL_PUS_22K_UP | PAD_CTL_OBE_IBE_ENABLE)
@@ -56,6 +63,15 @@ enum {
VF610_PAD_PTA29__ESDHC1_DAT3 = IOMUX_PAD(0x004c, 0x004c, 5, __NA_, 0, VF610_SDHC_PAD_CTRL),
VF610_PAD_PTB14__I2C0_SCL = IOMUX_PAD(0x0090, 0x0090, 2, 0x033c, 1, VF610_I2C_PAD_CTRL),
VF610_PAD_PTB15__I2C0_SDA = IOMUX_PAD(0x0094, 0x0094, 2, 0x0340, 1, VF610_I2C_PAD_CTRL),
+ VF610_PAD_PTD31__NF_IO15 = IOMUX_PAD(0x00fc, 0x00fc, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD30__NF_IO14 = IOMUX_PAD(0x0100, 0x0100, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD29__NF_IO13 = IOMUX_PAD(0x0104, 0x0104, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD28__NF_IO12 = IOMUX_PAD(0x0108, 0x0108, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD27__NF_IO11 = IOMUX_PAD(0x010c, 0x010c, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD26__NF_IO10 = IOMUX_PAD(0x0110, 0x0110, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD25__NF_IO9 = IOMUX_PAD(0x0114, 0x0114, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD24__NF_IO8 = IOMUX_PAD(0x0118, 0x0118, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD23__NF_IO7 = IOMUX_PAD(0x011c, 0x011c, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
VF610_PAD_PTD0__QSPI0_A_QSCK = IOMUX_PAD(0x013c, 0x013c, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
VF610_PAD_PTD1__QSPI0_A_CS0 = IOMUX_PAD(0x0140, 0x0140, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
VF610_PAD_PTD2__QSPI0_A_DATA3 = IOMUX_PAD(0x0144, 0x0144, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
@@ -68,6 +84,24 @@ enum {
VF610_PAD_PTD10__QSPI0_B_DATA2 = IOMUX_PAD(0x0164, 0x0164, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
VF610_PAD_PTD11__QSPI0_B_DATA1 = IOMUX_PAD(0x0168, 0x0168, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
VF610_PAD_PTD12__QSPI0_B_DATA0 = IOMUX_PAD(0x016c, 0x016c, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
+ VF610_PAD_PTD22__NF_IO6 = IOMUX_PAD(0x0120, 0x0120, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD21__NF_IO5 = IOMUX_PAD(0x0124, 0x0124, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD20__NF_IO4 = IOMUX_PAD(0x0128, 0x0128, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD19__NF_IO3 = IOMUX_PAD(0x012c, 0x012c, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD18__NF_IO2 = IOMUX_PAD(0x0130, 0x0130, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD17__NF_IO1 = IOMUX_PAD(0x0134, 0x0134, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTD16__NF_IO0 = IOMUX_PAD(0x0138, 0x0138, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
+ VF610_PAD_PTB24__NF_WE_B = IOMUX_PAD(0x0178, 0x0178, 5, __NA_, 0, VF610_NFC_CN_PAD_CTRL),
+ VF610_PAD_PTB25__NF_CE0_B = IOMUX_PAD(0x017c, 0x017c, 5, __NA_, 0, VF610_NFC_CN_PAD_CTRL),
+
+ VF610_PAD_PTB27__NF_RE_B = IOMUX_PAD(0x0184, 0x0184, 6, __NA_, 0, VF610_NFC_CN_PAD_CTRL),
+
+ VF610_PAD_PTC26__NF_RB_B = IOMUX_PAD(0x018C, 0x018C, 5, __NA_, 0, VF610_NFC_RB_PAD_CTRL),
+
+ VF610_PAD_PTC27__NF_ALE = IOMUX_PAD(0x0190, 0x0190, 6, __NA_, 0, VF610_NFC_CN_PAD_CTRL),
+
+ VF610_PAD_PTC28__NF_CLE = IOMUX_PAD(0x0194, 0x0194, 6, __NA_, 0, VF610_NFC_CN_PAD_CTRL),
+
VF610_PAD_DDR_A15__DDR_A_15 = IOMUX_PAD(0x0220, 0x0220, 0, __NA_, 0, VF610_DDR_PAD_CTRL),
VF610_PAD_DDR_A14__DDR_A_14 = IOMUX_PAD(0x0224, 0x0224, 0, __NA_, 0, VF610_DDR_PAD_CTRL),
VF610_PAD_DDR_A13__DDR_A_13 = IOMUX_PAD(0x0228, 0x0228, 0, __NA_, 0, VF610_DDR_PAD_CTRL),
diff --git a/arch/arm/include/asm/imx-common/iomux-v3.h b/arch/arm/include/asm/imx-common/iomux-v3.h
index e91d4ac..70ee86c 100644
--- a/arch/arm/include/asm/imx-common/iomux-v3.h
+++ b/arch/arm/include/asm/imx-common/iomux-v3.h
@@ -123,6 +123,8 @@ typedef u64 iomux_v3_cfg_t;
#define PAD_CTL_SPEED_MED (1 << 12)
#define PAD_CTL_SPEED_HIGH (3 << 12)
+#define PAD_CTL_SRE (1 << 11)
+
#define PAD_CTL_DSE_150ohm (1 << 6)
#define PAD_CTL_DSE_50ohm (3 << 6)
#define PAD_CTL_DSE_25ohm (6 << 6)
@@ -135,6 +137,8 @@ typedef u64 iomux_v3_cfg_t;
#define PAD_CTL_PUE (1 << 2 | PAD_CTL_PKE)
#define PAD_CTL_OBE_IBE_ENABLE (3 << 0)
+#define PAD_CTL_OBE_ENABLE (1 << 1)
+#define PAD_CTL_IBE_ENABLE (1 << 0)
#else
diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
index 6d18eb3..88ecddb 100644
--- a/arch/arm/include/asm/io.h
+++ b/arch/arm/include/asm/io.h
@@ -77,7 +77,7 @@ static inline phys_addr_t virt_to_phys(void * vaddr)
#define __arch_putl(v,a) (*(volatile unsigned int *)(a) = (v))
#define __arch_putq(v,a) (*(volatile unsigned long long *)(a) = (v))
-extern inline void __raw_writesb(unsigned long addr, const void *data,
+static inline void __raw_writesb(unsigned long addr, const void *data,
int bytelen)
{
uint8_t *buf = (uint8_t *)data;
@@ -85,7 +85,7 @@ extern inline void __raw_writesb(unsigned long addr, const void *data,
__arch_putb(*buf++, addr);
}
-extern inline void __raw_writesw(unsigned long addr, const void *data,
+static inline void __raw_writesw(unsigned long addr, const void *data,
int wordlen)
{
uint16_t *buf = (uint16_t *)data;
@@ -93,7 +93,7 @@ extern inline void __raw_writesw(unsigned long addr, const void *data,
__arch_putw(*buf++, addr);
}
-extern inline void __raw_writesl(unsigned long addr, const void *data,
+static inline void __raw_writesl(unsigned long addr, const void *data,
int longlen)
{
uint32_t *buf = (uint32_t *)data;
@@ -101,21 +101,21 @@ extern inline void __raw_writesl(unsigned long addr, const void *data,
__arch_putl(*buf++, addr);
}
-extern inline void __raw_readsb(unsigned long addr, void *data, int bytelen)
+static inline void __raw_readsb(unsigned long addr, void *data, int bytelen)
{
uint8_t *buf = (uint8_t *)data;
while(bytelen--)
*buf++ = __arch_getb(addr);
}
-extern inline void __raw_readsw(unsigned long addr, void *data, int wordlen)
+static inline void __raw_readsw(unsigned long addr, void *data, int wordlen)
{
uint16_t *buf = (uint16_t *)data;
while(wordlen--)
*buf++ = __arch_getw(addr);
}
-extern inline void __raw_readsl(unsigned long addr, void *data, int longlen)
+static inline void __raw_readsl(unsigned long addr, void *data, int longlen)
{
uint32_t *buf = (uint32_t *)data;
while(longlen--)
diff --git a/arch/arm/include/asm/iproc-common/armpll.h b/arch/arm/include/asm/iproc-common/armpll.h
new file mode 100644
index 0000000..1bee350
--- /dev/null
+++ b/arch/arm/include/asm/iproc-common/armpll.h
@@ -0,0 +1,14 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __ARMPLL_H
+#define __ARMPLL_H
+
+#include <linux/types.h>
+
+uint32_t armpll_config(uint32_t clkmhz);
+
+#endif /*__ARMPLL_H */
diff --git a/arch/arm/include/asm/iproc-common/configs.h b/arch/arm/include/asm/iproc-common/configs.h
new file mode 100644
index 0000000..c24de1f
--- /dev/null
+++ b/arch/arm/include/asm/iproc-common/configs.h
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __IPROC_COMMON_CONFIGS_H
+#define __IPROC_COMMON_CONFIGS_H
+
+#include <linux/stringify.h>
+
+/* Architecture, CPU, chip, etc */
+#define CONFIG_IPROC
+#define CONFIG_SYS_ARM_CACHE_WRITETHROUGH
+
+/* Memory Info */
+#define CONFIG_SYS_TEXT_BASE 0x61000000
+#define CONFIG_SYS_SDRAM_BASE 0x61000000
+
+#endif /* __IPROC_COMMON_CONFIGS_H */
diff --git a/arch/arm/include/asm/iproc-common/sysmap.h b/arch/arm/include/asm/iproc-common/sysmap.h
new file mode 100644
index 0000000..5766dc9
--- /dev/null
+++ b/arch/arm/include/asm/iproc-common/sysmap.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __SYSMAP_H
+#define __SYSMAP_H
+
+#define IHOST_PROC_CLK_PLLARMA 0X19000C00
+#define IHOST_PROC_CLK_PLLARMB 0X19000C04
+#define IHOST_PROC_CLK_PLLARMA__PLLARM_PDIV_R 24
+
+#define IHOST_PROC_CLK_WR_ACCESS 0X19000000
+#define IHOST_PROC_CLK_POLICY_FREQ 0X19000008
+#define IHOST_PROC_CLK_POLICY_FREQ__PRIV_ACCESS_MODE 31
+#define IHOST_PROC_CLK_POLICY_FREQ__POLICY3_FREQ_R 24
+#define IHOST_PROC_CLK_POLICY_FREQ__POLICY2_FREQ_R 16
+#define IHOST_PROC_CLK_POLICY_FREQ__POLICY1_FREQ_R 8
+#define IHOST_PROC_CLK_POLICY_CTL 0X1900000C
+#define IHOST_PROC_CLK_POLICY_CTL__GO 0
+#define IHOST_PROC_CLK_POLICY_CTL__GO_AC 1
+#define IHOST_PROC_CLK_PLLARMB__PLLARM_NDIV_FRAC_R 0
+#define IHOST_PROC_CLK_PLLARMB__PLLARM_NDIV_FRAC_WIDTH 20
+#define IHOST_PROC_CLK_PLLARMA__PLLARM_LOCK 28
+#define IHOST_PROC_CLK_POLICY_FREQ__POLICY0_FREQ_R 0
+#define IHOST_PROC_CLK_PLLARMA__PLLARM_NDIV_INT_R 8
+#define IHOST_PROC_CLK_PLLARMA__PLLARM_SOFT_POST_RESETB 1
+#define IHOST_PROC_CLK_PLLARMA__PLLARM_SOFT_RESETB 0
+#define IHOST_PROC_CLK_CORE0_CLKGATE 0X19000200
+#define IHOST_PROC_CLK_CORE1_CLKGATE 0X19000204
+#define IHOST_PROC_CLK_ARM_SWITCH_CLKGATE 0X19000210
+#define IHOST_PROC_CLK_ARM_PERIPH_CLKGATE 0X19000300
+#define IHOST_PROC_CLK_APB0_CLKGATE 0X19000400
+#define IPROC_CLKCT_HDELAY_SW_EN 0x00000303
+
+#define IPROC_REG_WRITE_ACCESS 0x00a5a501
+
+#define IPROC_PERIPH_BASE 0x19020000
+#define IPROC_PERIPH_INT_CTRL_REG_BASE (IPROC_PERIPH_BASE + 0x100)
+#define IPROC_PERIPH_GLB_TIM_REG_BASE (IPROC_PERIPH_BASE + 0x200)
+#define IPROC_PERIPH_PVT_TIM_REG_BASE (IPROC_PERIPH_BASE + 0x600)
+#define IPROC_PERIPH_INT_DISTR_REG_BASE (IPROC_PERIPH_BASE + 0x1000)
+
+#define PLL_AXI_CLK 0x1DCD6500
+
+#endif /* __SYSMAP_H */
diff --git a/arch/arm/include/asm/iproc-common/timer.h b/arch/arm/include/asm/iproc-common/timer.h
new file mode 100644
index 0000000..2bc2322
--- /dev/null
+++ b/arch/arm/include/asm/iproc-common/timer.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __TIMER_H
+#define __TIMER_H
+
+#include <linux/types.h>
+
+void timer_systick_init(uint32_t tick_ms);
+void timer_global_init(void);
+
+/* ARM A9 Private Timer */
+#define TIMER_PVT_LOAD_OFFSET 0x00000000
+#define TIMER_PVT_COUNTER_OFFSET 0x00000004
+#define TIMER_PVT_CTRL_OFFSET 0x00000008
+#define TIMER_PVT_STATUS_OFFSET 0x0000000C
+#define TIMER_PVT_TIM_CTRL_TIM_EN 0x00000001
+#define TIMER_PVT_TIM_CTRL_AUTO_RELD 0x00000002
+#define TIMER_PVT_TIM_CTRL_INT_EN 0x00000004
+#define TIMER_PVT_TIM_CTRL_PRESC_MASK 0x0000FF00
+#define TIMER_PVT_TIM_INT_STATUS_SET 0x00000001
+
+/* Global timer */
+#define TIMER_GLB_LOW_OFFSET 0x00000000
+#define TIMER_GLB_HI_OFFSET 0x00000004
+#define TIMER_GLB_CTRL_OFFSET 0x00000008
+#define TIMER_GLB_TIM_CTRL_TIM_EN 0x00000001
+#define TIMER_GLB_TIM_CTRL_COMP_EN 0x00000002
+#define TIMER_GLB_TIM_CTRL_INT_EN 0x00000004
+#define TIMER_GLB_TIM_CTRL_AUTO_INC 0x00000008
+#define TIMER_GLB_TIM_CTRL_PRESC_MASK 0x0000FF00
+#define TIMER_GLB_TIM_INT_STATUS_SET 0x00000001
+
+#endif /*__TIMER_H */
diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index 178e8fb..39fe7a1 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -239,10 +239,12 @@ static void boot_prep_linux(bootm_headers_t *images)
static void boot_jump_linux(bootm_headers_t *images, int flag)
{
#ifdef CONFIG_ARM64
- void (*kernel_entry)(void *fdt_addr);
+ void (*kernel_entry)(void *fdt_addr, void *res0, void *res1,
+ void *res2);
int fake = (flag & BOOTM_STATE_OS_FAKE_GO);
- kernel_entry = (void (*)(void *fdt_addr))images->ep;
+ kernel_entry = (void (*)(void *fdt_addr, void *res0, void *res1,
+ void *res2))images->ep;
debug("## Transferring control to Linux (at address %lx)...\n",
(ulong) kernel_entry);
@@ -252,7 +254,7 @@ static void boot_jump_linux(bootm_headers_t *images, int flag)
if (!fake) {
do_nonsec_virt_switch();
- kernel_entry(images->ft_addr);
+ kernel_entry(images->ft_addr, NULL, NULL, NULL);
}
#else
unsigned long machid = gd->bd->bi_arch_number;
diff --git a/arch/arm/lib/cache-cp15.c b/arch/arm/lib/cache-cp15.c
index 5fdfdbf..3e62d58 100644
--- a/arch/arm/lib/cache-cp15.c
+++ b/arch/arm/lib/cache-cp15.c
@@ -69,7 +69,7 @@ __weak void dram_bank_mmu_setup(int bank)
debug("%s: bank: %d\n", __func__, bank);
for (i = bd->bi_dram[bank].start >> 20;
- i < (bd->bi_dram[bank].start + bd->bi_dram[bank].size) >> 20;
+ i < (bd->bi_dram[bank].start >> 20) + (bd->bi_dram[bank].size >> 20);
i++) {
#if defined(CONFIG_SYS_ARM_CACHE_WRITETHROUGH)
set_section_dcache(i, DCACHE_WRITETHROUGH);
diff --git a/arch/arm/lib/vectors.S b/arch/arm/lib/vectors.S
index e6538ef..493f337 100644
--- a/arch/arm/lib/vectors.S
+++ b/arch/arm/lib/vectors.S
@@ -13,6 +13,8 @@
* SPDX-License-Identifier: GPL-2.0+
*/
+#include <config.h>
+
/*
*************************************************************************
*
diff --git a/board/8dtech/eco5pk/Kconfig b/board/8dtech/eco5pk/Kconfig
index fb1b308..0af1b30 100644
--- a/board/8dtech/eco5pk/Kconfig
+++ b/board/8dtech/eco5pk/Kconfig
@@ -1,9 +1,5 @@
if TARGET_ECO5PK
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "eco5pk"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "8dtech"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "eco5pk"
diff --git a/board/Barix/ipam390/Kconfig b/board/Barix/ipam390/Kconfig
index a8134479..588ee73 100644
--- a/board/Barix/ipam390/Kconfig
+++ b/board/Barix/ipam390/Kconfig
@@ -1,9 +1,5 @@
if TARGET_IPAM390
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "ipam390"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "Barix"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "ipam390"
diff --git a/board/Barix/ipam390/u-boot-spl-ipam390.lds b/board/Barix/ipam390/u-boot-spl-ipam390.lds
index 8604696..5f290ec 100644
--- a/board/Barix/ipam390/u-boot-spl-ipam390.lds
+++ b/board/Barix/ipam390/u-boot-spl-ipam390.lds
@@ -22,6 +22,7 @@ SECTIONS
.text :
{
__start = .;
+ *(.vectors)
arch/arm/cpu/arm926ejs/start.o (.text*)
*(.text*)
} >.sram
diff --git a/board/LaCie/edminiv2/Kconfig b/board/LaCie/edminiv2/Kconfig
index f1151d1..9675a9e 100644
--- a/board/LaCie/edminiv2/Kconfig
+++ b/board/LaCie/edminiv2/Kconfig
@@ -1,9 +1,5 @@
if TARGET_EDMINIV2
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "edminiv2"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "LaCie"
-config SYS_SOC
- string
- default "orion5x"
-
config SYS_CONFIG_NAME
string
default "edminiv2"
diff --git a/board/LaCie/net2big_v2/Kconfig b/board/LaCie/net2big_v2/Kconfig
index 867d0d3..e8eb9ad 100644
--- a/board/LaCie/net2big_v2/Kconfig
+++ b/board/LaCie/net2big_v2/Kconfig
@@ -1,9 +1,5 @@
if TARGET_NET2BIG_V2
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "net2big_v2"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "LaCie"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "lacie_kw"
diff --git a/board/LaCie/netspace_v2/Kconfig b/board/LaCie/netspace_v2/Kconfig
index fb6fbef..6242a42 100644
--- a/board/LaCie/netspace_v2/Kconfig
+++ b/board/LaCie/netspace_v2/Kconfig
@@ -1,9 +1,5 @@
if TARGET_NETSPACE_V2
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "netspace_v2"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "LaCie"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "lacie_kw"
diff --git a/board/LaCie/wireless_space/Kconfig b/board/LaCie/wireless_space/Kconfig
index 4815cde..ea6850f 100644
--- a/board/LaCie/wireless_space/Kconfig
+++ b/board/LaCie/wireless_space/Kconfig
@@ -1,9 +1,5 @@
if TARGET_WIRELESS_SPACE
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "wireless_space"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "LaCie"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "wireless_space"
diff --git a/board/Marvell/dreamplug/Kconfig b/board/Marvell/dreamplug/Kconfig
index e067318..afaddf4 100644
--- a/board/Marvell/dreamplug/Kconfig
+++ b/board/Marvell/dreamplug/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DREAMPLUG
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "dreamplug"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "Marvell"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "dreamplug"
diff --git a/board/Marvell/guruplug/Kconfig b/board/Marvell/guruplug/Kconfig
index fce8562..0b10e9f 100644
--- a/board/Marvell/guruplug/Kconfig
+++ b/board/Marvell/guruplug/Kconfig
@@ -1,9 +1,5 @@
if TARGET_GURUPLUG
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "guruplug"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "Marvell"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "guruplug"
diff --git a/board/Marvell/mv88f6281gtw_ge/Kconfig b/board/Marvell/mv88f6281gtw_ge/Kconfig
index 17adab0..49654fe 100644
--- a/board/Marvell/mv88f6281gtw_ge/Kconfig
+++ b/board/Marvell/mv88f6281gtw_ge/Kconfig
@@ -1,9 +1,5 @@
if TARGET_MV88F6281GTW_GE
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "mv88f6281gtw_ge"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "Marvell"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "mv88f6281gtw_ge"
diff --git a/board/Marvell/openrd/Kconfig b/board/Marvell/openrd/Kconfig
index 2dfed34..7032ba5 100644
--- a/board/Marvell/openrd/Kconfig
+++ b/board/Marvell/openrd/Kconfig
@@ -1,9 +1,5 @@
if TARGET_OPENRD
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "openrd"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "Marvell"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "openrd"
diff --git a/board/Marvell/rd6281a/Kconfig b/board/Marvell/rd6281a/Kconfig
index ae753b0..e8702a7 100644
--- a/board/Marvell/rd6281a/Kconfig
+++ b/board/Marvell/rd6281a/Kconfig
@@ -1,9 +1,5 @@
if TARGET_RD6281A
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "rd6281a"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "Marvell"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "rd6281a"
diff --git a/board/Marvell/sheevaplug/Kconfig b/board/Marvell/sheevaplug/Kconfig
index 6f3eb38..1c24d24 100644
--- a/board/Marvell/sheevaplug/Kconfig
+++ b/board/Marvell/sheevaplug/Kconfig
@@ -1,9 +1,5 @@
if TARGET_SHEEVAPLUG
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "sheevaplug"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "Marvell"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "sheevaplug"
diff --git a/board/Seagate/dockstar/Kconfig b/board/Seagate/dockstar/Kconfig
index 4696ac6..13ea620 100644
--- a/board/Seagate/dockstar/Kconfig
+++ b/board/Seagate/dockstar/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DOCKSTAR
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "dockstar"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "Seagate"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "dockstar"
diff --git a/board/Seagate/goflexhome/Kconfig b/board/Seagate/goflexhome/Kconfig
index 0f918cb..2fb14ef 100644
--- a/board/Seagate/goflexhome/Kconfig
+++ b/board/Seagate/goflexhome/Kconfig
@@ -1,9 +1,5 @@
if TARGET_GOFLEXHOME
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "goflexhome"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "Seagate"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "goflexhome"
diff --git a/board/ait/cam_enc_4xx/Kconfig b/board/ait/cam_enc_4xx/Kconfig
index d1f89df..2b88692 100644
--- a/board/ait/cam_enc_4xx/Kconfig
+++ b/board/ait/cam_enc_4xx/Kconfig
@@ -1,9 +1,5 @@
if TARGET_CAM_ENC_4XX
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "cam_enc_4xx"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "ait"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "cam_enc_4xx"
diff --git a/board/ait/cam_enc_4xx/u-boot-spl.lds b/board/ait/cam_enc_4xx/u-boot-spl.lds
index c0d09ad..f5c19df 100644
--- a/board/ait/cam_enc_4xx/u-boot-spl.lds
+++ b/board/ait/cam_enc_4xx/u-boot-spl.lds
@@ -22,6 +22,7 @@ SECTIONS
.text :
{
__start = .;
+ *(.vectors)
arch/arm/cpu/arm926ejs/start.o (.text*)
*(.text*)
} >.sram
diff --git a/board/altera/socfpga/Makefile b/board/altera/socfpga/Makefile
index de339ec..44baa00 100644
--- a/board/altera/socfpga/Makefile
+++ b/board/altera/socfpga/Makefile
@@ -7,4 +7,4 @@
#
obj-y := socfpga_cyclone5.o
-obj-$(CONFIG_SPL_BUILD) += pinmux_config.o
+obj-$(CONFIG_SPL_BUILD) += pinmux_config.o iocsr_config.o
diff --git a/board/altera/socfpga/socfpga_cyclone5.c b/board/altera/socfpga/socfpga_cyclone5.c
index f366565..fb92852 100644
--- a/board/altera/socfpga/socfpga_cyclone5.c
+++ b/board/altera/socfpga/socfpga_cyclone5.c
@@ -37,12 +37,3 @@ int board_init(void)
icache_enable();
return 0;
}
-
-/*
- * DesignWare Ethernet initialization
- */
-/* We know all the init functions have been run now */
-int board_eth_init(bd_t *bis)
-{
- return 0;
-}
diff --git a/board/armltd/versatile/Kconfig b/board/armltd/versatile/Kconfig
deleted file mode 100644
index f96d0b2..0000000
--- a/board/armltd/versatile/Kconfig
+++ /dev/null
@@ -1,71 +0,0 @@
-if TARGET_VERSATILEAB
-
-config SYS_CPU
- string
- default "arm926ejs"
-
-config SYS_BOARD
- string
- default "versatile"
-
-config SYS_VENDOR
- string
- default "armltd"
-
-config SYS_SOC
- string
- default "versatile"
-
-config SYS_CONFIG_NAME
- string
- default "versatile"
-
-endif
-
-if TARGET_VERSATILEPB
-
-config SYS_CPU
- string
- default "arm926ejs"
-
-config SYS_BOARD
- string
- default "versatile"
-
-config SYS_VENDOR
- string
- default "armltd"
-
-config SYS_SOC
- string
- default "versatile"
-
-config SYS_CONFIG_NAME
- string
- default "versatile"
-
-endif
-
-if TARGET_VERSATILEQEMU
-
-config SYS_CPU
- string
- default "arm926ejs"
-
-config SYS_BOARD
- string
- default "versatile"
-
-config SYS_VENDOR
- string
- default "armltd"
-
-config SYS_SOC
- string
- default "versatile"
-
-config SYS_CONFIG_NAME
- string
- default "versatile"
-
-endif
diff --git a/board/armltd/vexpress/MAINTAINERS b/board/armltd/vexpress/MAINTAINERS
index cfde7f2..e730f4f 100644
--- a/board/armltd/vexpress/MAINTAINERS
+++ b/board/armltd/vexpress/MAINTAINERS
@@ -7,7 +7,7 @@ F: configs/vexpress_ca15_tc2_defconfig
VEXPRESS_CA5X2 BOARD
M: Matt Waddel <matt.waddel@linaro.org>
-S: Maintained
+S: Orphan (since 2014-08)
F: include/configs/vexpress_ca5x2.h
F: configs/vexpress_ca5x2_defconfig
F: include/configs/vexpress_ca9x4.h
diff --git a/board/atmark-techno/armadillo-800eva/Kconfig b/board/atmark-techno/armadillo-800eva/Kconfig
index c8f89fe..3365c7b 100644
--- a/board/atmark-techno/armadillo-800eva/Kconfig
+++ b/board/atmark-techno/armadillo-800eva/Kconfig
@@ -1,9 +1,5 @@
if TARGET_ARMADILLO_800EVA
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "armadillo-800eva"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "atmark-techno"
-config SYS_SOC
- string
- default "rmobile"
-
config SYS_CONFIG_NAME
string
default "armadillo-800eva"
diff --git a/board/avionic-design/medcom-wide/Kconfig b/board/avionic-design/medcom-wide/Kconfig
index 2472fe2..16001e4 100644
--- a/board/avionic-design/medcom-wide/Kconfig
+++ b/board/avionic-design/medcom-wide/Kconfig
@@ -1,10 +1,5 @@
if TARGET_MEDCOM_WIDE
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "medcom-wide"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "avionic-design"
-config SYS_SOC
- string
- default "tegra20"
-
config SYS_CONFIG_NAME
string
default "medcom-wide"
diff --git a/board/avionic-design/plutux/Kconfig b/board/avionic-design/plutux/Kconfig
index a697a54..c9a90247 100644
--- a/board/avionic-design/plutux/Kconfig
+++ b/board/avionic-design/plutux/Kconfig
@@ -1,10 +1,5 @@
if TARGET_PLUTUX
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "plutux"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "avionic-design"
-config SYS_SOC
- string
- default "tegra20"
-
config SYS_CONFIG_NAME
string
default "plutux"
diff --git a/board/avionic-design/tec-ng/Kconfig b/board/avionic-design/tec-ng/Kconfig
index f52edda..e6b69e8 100644
--- a/board/avionic-design/tec-ng/Kconfig
+++ b/board/avionic-design/tec-ng/Kconfig
@@ -1,10 +1,5 @@
if TARGET_TEC_NG
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "tec-ng"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "avionic-design"
-config SYS_SOC
- string
- default "tegra30"
-
config SYS_CONFIG_NAME
string
default "tec-ng"
diff --git a/board/avionic-design/tec/Kconfig b/board/avionic-design/tec/Kconfig
index d19e3f4..fbf7f46 100644
--- a/board/avionic-design/tec/Kconfig
+++ b/board/avionic-design/tec/Kconfig
@@ -1,10 +1,5 @@
if TARGET_TEC
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "tec"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "avionic-design"
-config SYS_SOC
- string
- default "tegra20"
-
config SYS_CONFIG_NAME
string
default "tec"
diff --git a/board/broadcom/bcm28155_w1d/MAINTAINERS b/board/broadcom/bcm28155_w1d/MAINTAINERS
new file mode 100644
index 0000000..a436490
--- /dev/null
+++ b/board/broadcom/bcm28155_w1d/MAINTAINERS
@@ -0,0 +1,6 @@
+BCM28155_W1D BOARD
+M: Steve Rae <srae@broadcom.com>
+S: Maintained
+F: board/broadcom/bcm28155_ap/
+F: include/configs/bcm28155_ap.h
+F: configs/bcm28155_w1d_defconfig
diff --git a/board/broadcom/bcm958300k/Kconfig b/board/broadcom/bcm958300k/Kconfig
new file mode 100644
index 0000000..165cee7
--- /dev/null
+++ b/board/broadcom/bcm958300k/Kconfig
@@ -0,0 +1,23 @@
+if TARGET_BCM958300K
+
+config SYS_CPU
+ string
+ default "armv7"
+
+config SYS_BOARD
+ string
+ default "bcm_ep"
+
+config SYS_VENDOR
+ string
+ default "broadcom"
+
+config SYS_SOC
+ string
+ default "bcmcygnus"
+
+config SYS_CONFIG_NAME
+ string
+ default "bcm_ep_board"
+
+endif
diff --git a/board/broadcom/bcm958300k/MAINTAINERS b/board/broadcom/bcm958300k/MAINTAINERS
new file mode 100644
index 0000000..f75ee6e
--- /dev/null
+++ b/board/broadcom/bcm958300k/MAINTAINERS
@@ -0,0 +1,6 @@
+Broadcom: Cygnus
+M: Steve Rae <srae@broadcom.com>
+S: Maintained
+F: board/broadcom/bcm958300k/
+F: include/configs/bcm_ep_board.h
+F: configs/bcm958300k_defconfig
diff --git a/board/broadcom/bcm958622hr/Kconfig b/board/broadcom/bcm958622hr/Kconfig
new file mode 100644
index 0000000..6d09592
--- /dev/null
+++ b/board/broadcom/bcm958622hr/Kconfig
@@ -0,0 +1,23 @@
+if TARGET_BCM958622HR
+
+config SYS_CPU
+ string
+ default "armv7"
+
+config SYS_BOARD
+ string
+ default "bcm_ep"
+
+config SYS_VENDOR
+ string
+ default "broadcom"
+
+config SYS_SOC
+ string
+ default "bcmnsp"
+
+config SYS_CONFIG_NAME
+ string
+ default "bcm_ep_board"
+
+endif
diff --git a/board/broadcom/bcm958622hr/MAINTAINERS b/board/broadcom/bcm958622hr/MAINTAINERS
new file mode 100644
index 0000000..c34272f
--- /dev/null
+++ b/board/broadcom/bcm958622hr/MAINTAINERS
@@ -0,0 +1,6 @@
+Broadcom: Northstar Plus
+M: Steve Rae <srae@broadcom.com>
+S: Maintained
+F: board/broadcom/bcm958622hr/
+F: include/configs/bcm_ep_board.h
+F: configs/bcm958622hr_defconfig
diff --git a/board/broadcom/bcm_ep/Makefile b/board/broadcom/bcm_ep/Makefile
new file mode 100644
index 0000000..8914e54
--- /dev/null
+++ b/board/broadcom/bcm_ep/Makefile
@@ -0,0 +1,7 @@
+#
+# Copyright 2014 Broadcom Corporation.
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y += board.o
diff --git a/board/broadcom/bcm_ep/board.c b/board/broadcom/bcm_ep/board.c
new file mode 100644
index 0000000..e48cd3f
--- /dev/null
+++ b/board/broadcom/bcm_ep/board.c
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/io.h>
+#include <config.h>
+#include <asm/system.h>
+#include <asm/iproc-common/armpll.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/*
+ * board_init - early hardware init
+ */
+int board_init(void)
+{
+ /*
+ * Address of boot parameters passed to kernel
+ * Use default offset 0x100
+ */
+ gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
+
+ return 0;
+}
+
+/*
+ * dram_init - sets u-boot's idea of sdram size
+ */
+int dram_init(void)
+{
+ gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE,
+ CONFIG_SYS_SDRAM_SIZE);
+ return 0;
+}
+
+void dram_init_banksize(void)
+{
+ gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
+ gd->bd->bi_dram[0].size = gd->ram_size;
+}
+
+int board_early_init_f(void)
+{
+ uint32_t status = 0;
+
+ /* Setup PLL if required */
+#if defined(CONFIG_ARMCLK)
+ armpll_config(CONFIG_ARMCLK);
+#endif
+
+ return status;
+}
diff --git a/board/buffalo/lsxl/Kconfig b/board/buffalo/lsxl/Kconfig
index 99f7b7c..50a620e 100644
--- a/board/buffalo/lsxl/Kconfig
+++ b/board/buffalo/lsxl/Kconfig
@@ -1,9 +1,5 @@
if TARGET_LSXL
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "lsxl"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "buffalo"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "lsxl"
diff --git a/board/cirrus/edb93xx/u-boot.lds b/board/cirrus/edb93xx/u-boot.lds
index b0d892a..4aa7891 100644
--- a/board/cirrus/edb93xx/u-boot.lds
+++ b/board/cirrus/edb93xx/u-boot.lds
@@ -21,6 +21,7 @@ SECTIONS
. = ALIGN(4);
.text : {
*(.__image_copy_start)
+ *(.vectors)
arch/arm/cpu/arm920t/start.o (.text*)
. = 0x1000;
diff --git a/board/cloudengines/pogo_e02/Kconfig b/board/cloudengines/pogo_e02/Kconfig
index 149a1a2..fe36314 100644
--- a/board/cloudengines/pogo_e02/Kconfig
+++ b/board/cloudengines/pogo_e02/Kconfig
@@ -1,9 +1,5 @@
if TARGET_POGO_E02
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "pogo_e02"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "cloudengines"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "pogo_e02"
diff --git a/board/comelit/dig297/Kconfig b/board/comelit/dig297/Kconfig
index d7a2bf2..4c5ea09 100644
--- a/board/comelit/dig297/Kconfig
+++ b/board/comelit/dig297/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DIG297
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "dig297"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "comelit"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "dig297"
diff --git a/board/compal/paz00/Kconfig b/board/compal/paz00/Kconfig
index 4f0f09f..690d7a7 100644
--- a/board/compal/paz00/Kconfig
+++ b/board/compal/paz00/Kconfig
@@ -1,10 +1,5 @@
if TARGET_PAZ00
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "paz00"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "compal"
-config SYS_SOC
- string
- default "tegra20"
-
config SYS_CONFIG_NAME
string
default "paz00"
diff --git a/board/compulab/cm_t35/Kconfig b/board/compulab/cm_t35/Kconfig
index fd960bc..06de692 100644
--- a/board/compulab/cm_t35/Kconfig
+++ b/board/compulab/cm_t35/Kconfig
@@ -1,9 +1,5 @@
if TARGET_CM_T35
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "cm_t35"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "compulab"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "cm_t35"
diff --git a/board/compulab/cm_t54/Kconfig b/board/compulab/cm_t54/Kconfig
index 0fe3692..0edab5c 100644
--- a/board/compulab/cm_t54/Kconfig
+++ b/board/compulab/cm_t54/Kconfig
@@ -1,9 +1,5 @@
if TARGET_CM_T54
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "cm_t54"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "compulab"
-config SYS_SOC
- string
- default "omap5"
-
config SYS_CONFIG_NAME
string
default "cm_t54"
diff --git a/board/compulab/trimslice/Kconfig b/board/compulab/trimslice/Kconfig
index e545f0c..6ae030c 100644
--- a/board/compulab/trimslice/Kconfig
+++ b/board/compulab/trimslice/Kconfig
@@ -1,10 +1,5 @@
if TARGET_TRIMSLICE
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "trimslice"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "compulab"
-config SYS_SOC
- string
- default "tegra20"
-
config SYS_CONFIG_NAME
string
default "trimslice"
diff --git a/board/corscience/tricorder/Kconfig b/board/corscience/tricorder/Kconfig
index a1e06e7..5147fd7 100644
--- a/board/corscience/tricorder/Kconfig
+++ b/board/corscience/tricorder/Kconfig
@@ -1,9 +1,5 @@
if TARGET_TRICORDER
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "tricorder"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "corscience"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "tricorder"
diff --git a/board/d-link/dns325/Kconfig b/board/d-link/dns325/Kconfig
index dea6071..763f93c 100644
--- a/board/d-link/dns325/Kconfig
+++ b/board/d-link/dns325/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DNS325
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "dns325"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "d-link"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "dns325"
diff --git a/board/davinci/da8xxevm/Kconfig b/board/davinci/da8xxevm/Kconfig
index 89f78d7..b123703 100644
--- a/board/davinci/da8xxevm/Kconfig
+++ b/board/davinci/da8xxevm/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DA830EVM
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "da8xxevm"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "davinci"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "da830evm"
@@ -24,10 +16,6 @@ endif
if TARGET_DA850EVM
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "da8xxevm"
@@ -36,10 +24,6 @@ config SYS_VENDOR
string
default "davinci"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "da850evm"
@@ -48,10 +32,6 @@ endif
if TARGET_HAWKBOARD
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "da8xxevm"
@@ -60,10 +40,6 @@ config SYS_VENDOR
string
default "davinci"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "hawkboard"
diff --git a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
index de21a13..ab4f50c 100644
--- a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
+++ b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
@@ -22,6 +22,7 @@ SECTIONS
.text :
{
__start = .;
+ *(.vectors)
arch/arm/cpu/arm926ejs/start.o (.text*)
*(.text*)
} >.sram
diff --git a/board/davinci/da8xxevm/u-boot-spl-hawk.lds b/board/davinci/da8xxevm/u-boot-spl-hawk.lds
index 299226b..682f268 100644
--- a/board/davinci/da8xxevm/u-boot-spl-hawk.lds
+++ b/board/davinci/da8xxevm/u-boot-spl-hawk.lds
@@ -18,6 +18,7 @@ SECTIONS
. = ALIGN(4);
.text :
{
+ *(.vectors)
arch/arm/cpu/arm926ejs/start.o (.text*)
arch/arm/cpu/arm926ejs/davinci/built-in.o (.text*)
drivers/mtd/nand/built-in.o (.text*)
diff --git a/board/davinci/dm355evm/Kconfig b/board/davinci/dm355evm/Kconfig
index 2dbb509..7490bc0 100644
--- a/board/davinci/dm355evm/Kconfig
+++ b/board/davinci/dm355evm/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DAVINCI_DM355EVM
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "dm355evm"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "davinci"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "davinci_dm355evm"
diff --git a/board/davinci/dm355leopard/Kconfig b/board/davinci/dm355leopard/Kconfig
index 345704f..73a53ff 100644
--- a/board/davinci/dm355leopard/Kconfig
+++ b/board/davinci/dm355leopard/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DAVINCI_DM355LEOPARD
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "dm355leopard"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "davinci"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "davinci_dm355leopard"
diff --git a/board/davinci/dm365evm/Kconfig b/board/davinci/dm365evm/Kconfig
index d5f7ea2..266c6ee 100644
--- a/board/davinci/dm365evm/Kconfig
+++ b/board/davinci/dm365evm/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DAVINCI_DM365EVM
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "dm365evm"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "davinci"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "davinci_dm365evm"
diff --git a/board/davinci/dm6467evm/Kconfig b/board/davinci/dm6467evm/Kconfig
index f7b225d..1c4d0f0 100644
--- a/board/davinci/dm6467evm/Kconfig
+++ b/board/davinci/dm6467evm/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DAVINCI_DM6467EVM
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "dm6467evm"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "davinci"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "davinci_dm6467evm"
diff --git a/board/davinci/dvevm/Kconfig b/board/davinci/dvevm/Kconfig
index 7a2d86b..e020f8d 100644
--- a/board/davinci/dvevm/Kconfig
+++ b/board/davinci/dvevm/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DAVINCI_DVEVM
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "dvevm"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "davinci"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "davinci_dvevm"
diff --git a/board/davinci/ea20/Kconfig b/board/davinci/ea20/Kconfig
index afab821..93950fd 100644
--- a/board/davinci/ea20/Kconfig
+++ b/board/davinci/ea20/Kconfig
@@ -1,9 +1,5 @@
if TARGET_EA20
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "ea20"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "davinci"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "ea20"
diff --git a/board/davinci/schmoogie/Kconfig b/board/davinci/schmoogie/Kconfig
index 45401e4..7aa459d 100644
--- a/board/davinci/schmoogie/Kconfig
+++ b/board/davinci/schmoogie/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DAVINCI_SCHMOOGIE
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "schmoogie"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "davinci"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "davinci_schmoogie"
diff --git a/board/davinci/sffsdr/Kconfig b/board/davinci/sffsdr/Kconfig
index aeb7ef2..95461fc 100644
--- a/board/davinci/sffsdr/Kconfig
+++ b/board/davinci/sffsdr/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DAVINCI_SFFSDR
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "sffsdr"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "davinci"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "davinci_sffsdr"
diff --git a/board/davinci/sonata/Kconfig b/board/davinci/sonata/Kconfig
index 2cf5035..a21fb8e 100644
--- a/board/davinci/sonata/Kconfig
+++ b/board/davinci/sonata/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DAVINCI_SONATA
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "sonata"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "davinci"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "davinci_sonata"
diff --git a/board/enbw/enbw_cmc/Kconfig b/board/enbw/enbw_cmc/Kconfig
index e061e7e..183334b 100644
--- a/board/enbw/enbw_cmc/Kconfig
+++ b/board/enbw/enbw_cmc/Kconfig
@@ -1,9 +1,5 @@
if TARGET_ENBW_CMC
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "enbw_cmc"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "enbw"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "enbw_cmc"
diff --git a/board/gumstix/duovero/Kconfig b/board/gumstix/duovero/Kconfig
index d1b5c66..f662798 100644
--- a/board/gumstix/duovero/Kconfig
+++ b/board/gumstix/duovero/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DUOVERO
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "duovero"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "gumstix"
-config SYS_SOC
- string
- default "omap4"
-
config SYS_CONFIG_NAME
string
default "duovero"
diff --git a/board/htkw/mcx/Kconfig b/board/htkw/mcx/Kconfig
index 1e2c679..343ff4d 100644
--- a/board/htkw/mcx/Kconfig
+++ b/board/htkw/mcx/Kconfig
@@ -1,9 +1,5 @@
if TARGET_MCX
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "mcx"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "htkw"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "mcx"
diff --git a/board/iomega/iconnect/Kconfig b/board/iomega/iconnect/Kconfig
index 8ac21d2..f75c06b 100644
--- a/board/iomega/iconnect/Kconfig
+++ b/board/iomega/iconnect/Kconfig
@@ -1,9 +1,5 @@
if TARGET_ICONNECT
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "iconnect"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "iomega"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "iconnect"
diff --git a/board/isee/igep00x0/Kconfig b/board/isee/igep00x0/Kconfig
index c9f2969..c9352fd 100644
--- a/board/isee/igep00x0/Kconfig
+++ b/board/isee/igep00x0/Kconfig
@@ -1,9 +1,5 @@
if TARGET_OMAP3_IGEP00X0
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "igep00x0"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "isee"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "omap3_igep00x0"
diff --git a/board/karo/tk71/Kconfig b/board/karo/tk71/Kconfig
index 546491b..24071f6 100644
--- a/board/karo/tk71/Kconfig
+++ b/board/karo/tk71/Kconfig
@@ -1,9 +1,5 @@
if TARGET_TK71
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "tk71"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "karo"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "tk71"
diff --git a/board/keymile/km_arm/Kconfig b/board/keymile/km_arm/Kconfig
index dec4626..3e9cddb 100644
--- a/board/keymile/km_arm/Kconfig
+++ b/board/keymile/km_arm/Kconfig
@@ -1,9 +1,5 @@
if TARGET_KM_KIRKWOOD
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "km_arm"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "keymile"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "km_kirkwood"
diff --git a/board/kmc/kzm9g/Kconfig b/board/kmc/kzm9g/Kconfig
index 2d40173..ab4812f 100644
--- a/board/kmc/kzm9g/Kconfig
+++ b/board/kmc/kzm9g/Kconfig
@@ -1,9 +1,5 @@
if TARGET_KZM9G
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "kzm9g"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "kmc"
-config SYS_SOC
- string
- default "rmobile"
-
config SYS_CONFIG_NAME
string
default "kzm9g"
diff --git a/board/logicpd/am3517evm/Kconfig b/board/logicpd/am3517evm/Kconfig
index 9bc5ae5..1012d3d 100644
--- a/board/logicpd/am3517evm/Kconfig
+++ b/board/logicpd/am3517evm/Kconfig
@@ -1,9 +1,5 @@
if TARGET_AM3517_EVM
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "am3517evm"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "logicpd"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "am3517_evm"
diff --git a/board/logicpd/omap3som/Kconfig b/board/logicpd/omap3som/Kconfig
index daaefa6..adeaf4d 100644
--- a/board/logicpd/omap3som/Kconfig
+++ b/board/logicpd/omap3som/Kconfig
@@ -1,9 +1,5 @@
if TARGET_OMAP3_LOGIC
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "omap3som"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "logicpd"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "omap3_logic"
diff --git a/board/logicpd/zoom1/Kconfig b/board/logicpd/zoom1/Kconfig
index 3199130..e9a5623 100644
--- a/board/logicpd/zoom1/Kconfig
+++ b/board/logicpd/zoom1/Kconfig
@@ -1,9 +1,5 @@
if TARGET_OMAP3_ZOOM1
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "zoom1"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "logicpd"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "omap3_zoom1"
diff --git a/board/matrix_vision/mvblx/Kconfig b/board/matrix_vision/mvblx/Kconfig
index d89c1e3..69f0566 100644
--- a/board/matrix_vision/mvblx/Kconfig
+++ b/board/matrix_vision/mvblx/Kconfig
@@ -1,9 +1,5 @@
if TARGET_OMAP3_MVBLX
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "mvblx"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "matrix_vision"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "omap3_mvblx"
diff --git a/board/nokia/rx51/Kconfig b/board/nokia/rx51/Kconfig
index 41d0daa..faa90d2 100644
--- a/board/nokia/rx51/Kconfig
+++ b/board/nokia/rx51/Kconfig
@@ -1,9 +1,5 @@
if TARGET_NOKIA_RX51
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "rx51"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "nokia"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "nokia_rx51"
diff --git a/board/nvidia/beaver/Kconfig b/board/nvidia/beaver/Kconfig
index f052676..e487b66 100644
--- a/board/nvidia/beaver/Kconfig
+++ b/board/nvidia/beaver/Kconfig
@@ -1,10 +1,5 @@
if TARGET_BEAVER
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "beaver"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "nvidia"
-config SYS_SOC
- string
- default "tegra30"
-
config SYS_CONFIG_NAME
string
default "beaver"
diff --git a/board/nvidia/cardhu/Kconfig b/board/nvidia/cardhu/Kconfig
index 9853114..150815f 100644
--- a/board/nvidia/cardhu/Kconfig
+++ b/board/nvidia/cardhu/Kconfig
@@ -1,10 +1,5 @@
if TARGET_CARDHU
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "cardhu"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "nvidia"
-config SYS_SOC
- string
- default "tegra30"
-
config SYS_CONFIG_NAME
string
default "cardhu"
diff --git a/board/nvidia/dalmore/Kconfig b/board/nvidia/dalmore/Kconfig
index 33b78db..9eed19c 100644
--- a/board/nvidia/dalmore/Kconfig
+++ b/board/nvidia/dalmore/Kconfig
@@ -1,10 +1,5 @@
if TARGET_DALMORE
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "dalmore"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "nvidia"
-config SYS_SOC
- string
- default "tegra114"
-
config SYS_CONFIG_NAME
string
default "dalmore"
diff --git a/board/nvidia/harmony/Kconfig b/board/nvidia/harmony/Kconfig
index 2a3bde4..7d75f2d 100644
--- a/board/nvidia/harmony/Kconfig
+++ b/board/nvidia/harmony/Kconfig
@@ -1,10 +1,5 @@
if TARGET_HARMONY
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "harmony"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "nvidia"
-config SYS_SOC
- string
- default "tegra20"
-
config SYS_CONFIG_NAME
string
default "harmony"
diff --git a/board/nvidia/jetson-tk1/Kconfig b/board/nvidia/jetson-tk1/Kconfig
index 22b4c69..02b46b7 100644
--- a/board/nvidia/jetson-tk1/Kconfig
+++ b/board/nvidia/jetson-tk1/Kconfig
@@ -1,10 +1,5 @@
if TARGET_JETSON_TK1
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "jetson-tk1"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "nvidia"
-config SYS_SOC
- string
- default "tegra124"
-
config SYS_CONFIG_NAME
string
default "jetson-tk1"
diff --git a/board/nvidia/seaboard/Kconfig b/board/nvidia/seaboard/Kconfig
index 39c65b5..7863702 100644
--- a/board/nvidia/seaboard/Kconfig
+++ b/board/nvidia/seaboard/Kconfig
@@ -1,10 +1,5 @@
if TARGET_SEABOARD
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "seaboard"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "nvidia"
-config SYS_SOC
- string
- default "tegra20"
-
config SYS_CONFIG_NAME
string
default "seaboard"
diff --git a/board/nvidia/venice2/Kconfig b/board/nvidia/venice2/Kconfig
index 84a7160..993da79 100644
--- a/board/nvidia/venice2/Kconfig
+++ b/board/nvidia/venice2/Kconfig
@@ -1,10 +1,5 @@
if TARGET_VENICE2
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "venice2"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "nvidia"
-config SYS_SOC
- string
- default "tegra124"
-
config SYS_CONFIG_NAME
string
default "venice2"
diff --git a/board/nvidia/ventana/Kconfig b/board/nvidia/ventana/Kconfig
index 59e85c4..95840a8 100644
--- a/board/nvidia/ventana/Kconfig
+++ b/board/nvidia/ventana/Kconfig
@@ -1,10 +1,5 @@
if TARGET_VENTANA
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "ventana"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "nvidia"
-config SYS_SOC
- string
- default "tegra20"
-
config SYS_CONFIG_NAME
string
default "ventana"
diff --git a/board/nvidia/whistler/Kconfig b/board/nvidia/whistler/Kconfig
index f025413..113e2ef 100644
--- a/board/nvidia/whistler/Kconfig
+++ b/board/nvidia/whistler/Kconfig
@@ -1,10 +1,5 @@
if TARGET_WHISTLER
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "whistler"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "nvidia"
-config SYS_SOC
- string
- default "tegra20"
-
config SYS_CONFIG_NAME
string
default "whistler"
diff --git a/board/omicron/calimain/Kconfig b/board/omicron/calimain/Kconfig
index 923af8a..46e95d8 100644
--- a/board/omicron/calimain/Kconfig
+++ b/board/omicron/calimain/Kconfig
@@ -1,9 +1,5 @@
if TARGET_CALIMAIN
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "calimain"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "omicron"
-config SYS_SOC
- string
- default "davinci"
-
config SYS_CONFIG_NAME
string
default "calimain"
diff --git a/board/overo/Kconfig b/board/overo/Kconfig
index 1d4a261..d1ea236 100644
--- a/board/overo/Kconfig
+++ b/board/overo/Kconfig
@@ -1,17 +1,9 @@
if TARGET_OMAP3_OVERO
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "overo"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "omap3_overo"
diff --git a/board/pandora/Kconfig b/board/pandora/Kconfig
index a36c0c8..6f41005 100644
--- a/board/pandora/Kconfig
+++ b/board/pandora/Kconfig
@@ -1,17 +1,9 @@
if TARGET_OMAP3_PANDORA
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "pandora"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "omap3_pandora"
diff --git a/board/raidsonic/ib62x0/Kconfig b/board/raidsonic/ib62x0/Kconfig
index 1e667c4..c0c3a93 100644
--- a/board/raidsonic/ib62x0/Kconfig
+++ b/board/raidsonic/ib62x0/Kconfig
@@ -1,9 +1,5 @@
if TARGET_IB62X0
-config SYS_CPU
- string
- default "arm926ejs"
-
config SYS_BOARD
string
default "ib62x0"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "raidsonic"
-config SYS_SOC
- string
- default "kirkwood"
-
config SYS_CONFIG_NAME
string
default "ib62x0"
diff --git a/board/renesas/alt/Kconfig b/board/renesas/alt/Kconfig
index d317025..dc01a38 100644
--- a/board/renesas/alt/Kconfig
+++ b/board/renesas/alt/Kconfig
@@ -1,9 +1,5 @@
if TARGET_ALT
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "alt"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "renesas"
-config SYS_SOC
- string
- default "rmobile"
-
config SYS_CONFIG_NAME
string
default "alt"
diff --git a/board/renesas/koelsch/Kconfig b/board/renesas/koelsch/Kconfig
index 0def847..e7c6437 100644
--- a/board/renesas/koelsch/Kconfig
+++ b/board/renesas/koelsch/Kconfig
@@ -1,9 +1,5 @@
if TARGET_KOELSCH
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "koelsch"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "renesas"
-config SYS_SOC
- string
- default "rmobile"
-
config SYS_CONFIG_NAME
string
default "koelsch"
diff --git a/board/renesas/lager/Kconfig b/board/renesas/lager/Kconfig
index e88f4f6..07dc98c 100644
--- a/board/renesas/lager/Kconfig
+++ b/board/renesas/lager/Kconfig
@@ -1,9 +1,5 @@
if TARGET_LAGER
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "lager"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "renesas"
-config SYS_SOC
- string
- default "rmobile"
-
config SYS_CONFIG_NAME
string
default "lager"
diff --git a/board/samsung/arndale/Kconfig b/board/samsung/arndale/Kconfig
index c3af0ec..5fdbacb 100644
--- a/board/samsung/arndale/Kconfig
+++ b/board/samsung/arndale/Kconfig
@@ -1,9 +1,5 @@
if TARGET_ARNDALE
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "arndale"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "samsung"
-config SYS_SOC
- string
- default "exynos"
-
config SYS_CONFIG_NAME
string
default "arndale"
diff --git a/board/samsung/arndale/arndale.c b/board/samsung/arndale/arndale.c
index ef88314..83fd3bd 100644
--- a/board/samsung/arndale/arndale.c
+++ b/board/samsung/arndale/arndale.c
@@ -117,3 +117,13 @@ int checkboard(void)
return 0;
}
#endif
+
+#ifdef CONFIG_S5P_PA_SYSRAM
+void smp_set_core_boot_addr(unsigned long addr, int corenr)
+{
+ writel(addr, CONFIG_S5P_PA_SYSRAM);
+
+ /* make sure this write is really executed */
+ __asm__ volatile ("dsb\n");
+}
+#endif
diff --git a/board/samsung/common/exynos-uboot-spl.lds b/board/samsung/common/exynos-uboot-spl.lds
index b22f9e0..4a933c8 100644
--- a/board/samsung/common/exynos-uboot-spl.lds
+++ b/board/samsung/common/exynos-uboot-spl.lds
@@ -21,6 +21,7 @@ SECTIONS
.text :
{
__start = .;
+ *(.vectors)
arch/arm/cpu/armv7/start.o (.text*)
*(.text*)
} >.sram
diff --git a/board/samsung/origen/Kconfig b/board/samsung/origen/Kconfig
index f52de83..3eda350 100644
--- a/board/samsung/origen/Kconfig
+++ b/board/samsung/origen/Kconfig
@@ -1,9 +1,5 @@
if TARGET_ORIGEN
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "origen"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "samsung"
-config SYS_SOC
- string
- default "exynos"
-
config SYS_CONFIG_NAME
string
default "origen"
diff --git a/board/samsung/smdk5250/Kconfig b/board/samsung/smdk5250/Kconfig
index edebbde..e7036f5 100644
--- a/board/samsung/smdk5250/Kconfig
+++ b/board/samsung/smdk5250/Kconfig
@@ -1,9 +1,5 @@
if TARGET_SMDK5250
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "smdk5250"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "samsung"
-config SYS_SOC
- string
- default "exynos"
-
config SYS_CONFIG_NAME
string
default "smdk5250"
@@ -24,10 +16,6 @@ endif
if TARGET_SNOW
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "smdk5250"
@@ -36,10 +24,6 @@ config SYS_VENDOR
string
default "samsung"
-config SYS_SOC
- string
- default "exynos"
-
config SYS_CONFIG_NAME
string
default "snow"
diff --git a/board/samsung/smdk5420/Kconfig b/board/samsung/smdk5420/Kconfig
index 052c275..fb9bedd 100644
--- a/board/samsung/smdk5420/Kconfig
+++ b/board/samsung/smdk5420/Kconfig
@@ -1,9 +1,5 @@
if TARGET_PEACH_PIT
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "smdk5420"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "samsung"
-config SYS_SOC
- string
- default "exynos"
-
config SYS_CONFIG_NAME
string
default "peach-pit"
@@ -24,10 +16,6 @@ endif
if TARGET_SMDK5420
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "smdk5420"
@@ -36,10 +24,6 @@ config SYS_VENDOR
string
default "samsung"
-config SYS_SOC
- string
- default "exynos"
-
config SYS_CONFIG_NAME
string
default "smdk5420"
diff --git a/board/samsung/smdkv310/Kconfig b/board/samsung/smdkv310/Kconfig
index e467092..785fae2 100644
--- a/board/samsung/smdkv310/Kconfig
+++ b/board/samsung/smdkv310/Kconfig
@@ -1,9 +1,5 @@
if TARGET_SMDKV310
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "smdkv310"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "samsung"
-config SYS_SOC
- string
- default "exynos"
-
config SYS_CONFIG_NAME
string
default "smdkv310"
diff --git a/board/samsung/trats/Kconfig b/board/samsung/trats/Kconfig
index 040413e..8bfb12d 100644
--- a/board/samsung/trats/Kconfig
+++ b/board/samsung/trats/Kconfig
@@ -1,9 +1,5 @@
if TARGET_TRATS
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "trats"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "samsung"
-config SYS_SOC
- string
- default "exynos"
-
config SYS_CONFIG_NAME
string
default "trats"
diff --git a/board/samsung/trats2/Kconfig b/board/samsung/trats2/Kconfig
index a82fdfb..f359c03 100644
--- a/board/samsung/trats2/Kconfig
+++ b/board/samsung/trats2/Kconfig
@@ -1,9 +1,5 @@
if TARGET_TRATS2
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "trats2"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "samsung"
-config SYS_SOC
- string
- default "exynos"
-
config SYS_CONFIG_NAME
string
default "trats2"
diff --git a/board/samsung/universal_c210/Kconfig b/board/samsung/universal_c210/Kconfig
index 082168f..72b879a 100644
--- a/board/samsung/universal_c210/Kconfig
+++ b/board/samsung/universal_c210/Kconfig
@@ -1,9 +1,5 @@
if TARGET_S5PC210_UNIVERSAL
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "universal_c210"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "samsung"
-config SYS_SOC
- string
- default "exynos"
-
config SYS_CONFIG_NAME
string
default "s5pc210_universal"
diff --git a/board/st/nhk8815/Kconfig b/board/st/nhk8815/Kconfig
index ec3f880..ba2e7c2 100644
--- a/board/st/nhk8815/Kconfig
+++ b/board/st/nhk8815/Kconfig
@@ -1,8 +1,4 @@
-if TARGET_NHK8815
-
-config SYS_CPU
- string
- default "arm926ejs"
+if NOMADIK_NHK8815
config SYS_BOARD
string
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "st"
-config SYS_SOC
- string
- default "nomadik"
-
config SYS_CONFIG_NAME
string
default "nhk8815"
diff --git a/board/technexion/tao3530/Kconfig b/board/technexion/tao3530/Kconfig
index 06e56a4..910a9cd 100644
--- a/board/technexion/tao3530/Kconfig
+++ b/board/technexion/tao3530/Kconfig
@@ -1,9 +1,5 @@
if TARGET_TAO3530
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "tao3530"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "technexion"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "tao3530"
diff --git a/board/technexion/twister/Kconfig b/board/technexion/twister/Kconfig
index 1790f6d..e6f811a 100644
--- a/board/technexion/twister/Kconfig
+++ b/board/technexion/twister/Kconfig
@@ -1,9 +1,5 @@
if TARGET_TWISTER
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "twister"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "technexion"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "twister"
diff --git a/board/teejet/mt_ventoux/Kconfig b/board/teejet/mt_ventoux/Kconfig
index 96cf7c0..a567204 100644
--- a/board/teejet/mt_ventoux/Kconfig
+++ b/board/teejet/mt_ventoux/Kconfig
@@ -1,9 +1,5 @@
if TARGET_MT_VENTOUX
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "mt_ventoux"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "teejet"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "mt_ventoux"
diff --git a/board/ti/am3517crane/Kconfig b/board/ti/am3517crane/Kconfig
index fdb20ab..c44dab5 100644
--- a/board/ti/am3517crane/Kconfig
+++ b/board/ti/am3517crane/Kconfig
@@ -1,9 +1,5 @@
if TARGET_AM3517_CRANE
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "am3517crane"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "ti"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "am3517_crane"
diff --git a/board/ti/beagle/Kconfig b/board/ti/beagle/Kconfig
index 15dccdf..10c81c2 100644
--- a/board/ti/beagle/Kconfig
+++ b/board/ti/beagle/Kconfig
@@ -1,9 +1,5 @@
if TARGET_OMAP3_BEAGLE
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "beagle"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "ti"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "omap3_beagle"
diff --git a/board/ti/dra7xx/Kconfig b/board/ti/dra7xx/Kconfig
index 4b13ef4..9ee13c5 100644
--- a/board/ti/dra7xx/Kconfig
+++ b/board/ti/dra7xx/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DRA7XX_EVM
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "dra7xx"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "ti"
-config SYS_SOC
- string
- default "omap5"
-
config SYS_CONFIG_NAME
string
default "dra7xx_evm"
diff --git a/board/ti/evm/Kconfig b/board/ti/evm/Kconfig
index e342942..c54ce33 100644
--- a/board/ti/evm/Kconfig
+++ b/board/ti/evm/Kconfig
@@ -1,9 +1,5 @@
if TARGET_OMAP3_EVM
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "evm"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "ti"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "omap3_evm"
@@ -24,10 +16,6 @@ endif
if TARGET_OMAP3_EVM_QUICK_MMC
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "evm"
@@ -36,10 +24,6 @@ config SYS_VENDOR
string
default "ti"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "omap3_evm_quick_mmc"
@@ -48,10 +32,6 @@ endif
if TARGET_OMAP3_EVM_QUICK_NAND
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "evm"
@@ -60,10 +40,6 @@ config SYS_VENDOR
string
default "ti"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "omap3_evm_quick_nand"
diff --git a/board/ti/ks2_evm/Kconfig b/board/ti/ks2_evm/Kconfig
index 7890b30..3108782 100644
--- a/board/ti/ks2_evm/Kconfig
+++ b/board/ti/ks2_evm/Kconfig
@@ -1,9 +1,5 @@
if TARGET_K2E_EVM
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "ks2_evm"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "ti"
-config SYS_SOC
- string
- default "keystone"
-
config SYS_CONFIG_NAME
string
default "k2e_evm"
@@ -24,10 +16,6 @@ endif
if TARGET_K2HK_EVM
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "ks2_evm"
@@ -36,10 +24,6 @@ config SYS_VENDOR
string
default "ti"
-config SYS_SOC
- string
- default "keystone"
-
config SYS_CONFIG_NAME
string
default "k2hk_evm"
diff --git a/board/ti/omap5_uevm/Kconfig b/board/ti/omap5_uevm/Kconfig
index 7c7d5dc..3592e7b 100644
--- a/board/ti/omap5_uevm/Kconfig
+++ b/board/ti/omap5_uevm/Kconfig
@@ -1,9 +1,5 @@
if TARGET_OMAP5_UEVM
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "omap5_uevm"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "ti"
-config SYS_SOC
- string
- default "omap5"
-
config SYS_CONFIG_NAME
string
default "omap5_uevm"
diff --git a/board/ti/panda/Kconfig b/board/ti/panda/Kconfig
index be1307d..b69218b 100644
--- a/board/ti/panda/Kconfig
+++ b/board/ti/panda/Kconfig
@@ -1,9 +1,5 @@
if TARGET_OMAP4_PANDA
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "panda"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "ti"
-config SYS_SOC
- string
- default "omap4"
-
config SYS_CONFIG_NAME
string
default "omap4_panda"
diff --git a/board/ti/sdp3430/Kconfig b/board/ti/sdp3430/Kconfig
index 81989b7..fcf7329 100644
--- a/board/ti/sdp3430/Kconfig
+++ b/board/ti/sdp3430/Kconfig
@@ -1,9 +1,5 @@
if TARGET_OMAP3_SDP3430
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "sdp3430"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "ti"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "omap3_sdp3430"
diff --git a/board/ti/sdp4430/Kconfig b/board/ti/sdp4430/Kconfig
index 140e1f1..9c1d8fe 100644
--- a/board/ti/sdp4430/Kconfig
+++ b/board/ti/sdp4430/Kconfig
@@ -1,9 +1,5 @@
if TARGET_OMAP4_SDP4430
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "sdp4430"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "ti"
-config SYS_SOC
- string
- default "omap4"
-
config SYS_CONFIG_NAME
string
default "omap4_sdp4430"
diff --git a/board/timll/devkit8000/Kconfig b/board/timll/devkit8000/Kconfig
index d9c920c..d1603f4 100644
--- a/board/timll/devkit8000/Kconfig
+++ b/board/timll/devkit8000/Kconfig
@@ -1,9 +1,5 @@
if TARGET_DEVKIT8000
-config SYS_CPU
- string
- default "armv7"
-
config SYS_BOARD
string
default "devkit8000"
@@ -12,10 +8,6 @@ config SYS_VENDOR
string
default "timll"
-config SYS_SOC
- string
- default "omap3"
-
config SYS_CONFIG_NAME
string
default "devkit8000"
diff --git a/board/toradex/colibri_t20_iris/Kconfig b/board/toradex/colibri_t20_iris/Kconfig
index 334b7e0..cccdd58 100644
--- a/board/toradex/colibri_t20_iris/Kconfig
+++ b/board/toradex/colibri_t20_iris/Kconfig
@@ -1,10 +1,5 @@
if TARGET_COLIBRI_T20_IRIS
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "colibri_t20_iris"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "toradex"
-config SYS_SOC
- string
- default "tegra20"
-
config SYS_CONFIG_NAME
string
default "colibri_t20_iris"
diff --git a/board/toradex/colibri_t30/Kconfig b/board/toradex/colibri_t30/Kconfig
index fcf5e8e..ea6c08a 100644
--- a/board/toradex/colibri_t30/Kconfig
+++ b/board/toradex/colibri_t30/Kconfig
@@ -1,10 +1,5 @@
if TARGET_COLIBRI_T30
-config SYS_CPU
- string
- default "arm720t" if SPL_BUILD
- default "armv7" if !SPL_BUILD
-
config SYS_BOARD
string
default "colibri_t30"
@@ -13,10 +8,6 @@ config SYS_VENDOR
string
default "toradex"
-config SYS_SOC
- string
- default "tegra30"
-
config SYS_CONFIG_NAME
string
default "colibri_t30"
diff --git a/board/vpac270/u-boot-spl.lds b/board/vpac270/u-boot-spl.lds
index 5dbf94e..a10ea71 100644
--- a/board/vpac270/u-boot-spl.lds
+++ b/board/vpac270/u-boot-spl.lds
@@ -19,6 +19,7 @@ SECTIONS
. = CONFIG_SPL_TEXT_BASE;
.text.0 :
{
+ *(.vectors)
arch/arm/cpu/pxa/start.o (.text*)
arch/arm/lib/built-in.o (.text*)
board/vpac270/built-in.o (.text*)
diff --git a/board/xilinx/zynq/Kconfig b/board/xilinx/zynq/Kconfig
deleted file mode 100644
index 3b72a5f..0000000
--- a/board/xilinx/zynq/Kconfig
+++ /dev/null
@@ -1,95 +0,0 @@
-if TARGET_ZYNQ_MICROZED
-
-config SYS_CPU
- string
- default "armv7"
-
-config SYS_BOARD
- string
- default "zynq"
-
-config SYS_VENDOR
- string
- default "xilinx"
-
-config SYS_SOC
- string
- default "zynq"
-
-config SYS_CONFIG_NAME
- string
- default "zynq_microzed"
-
-endif
-
-if TARGET_ZYNQ_ZC70X
-
-config SYS_CPU
- string
- default "armv7"
-
-config SYS_BOARD
- string
- default "zynq"
-
-config SYS_VENDOR
- string
- default "xilinx"
-
-config SYS_SOC
- string
- default "zynq"
-
-config SYS_CONFIG_NAME
- string
- default "zynq_zc70x"
-
-endif
-
-if TARGET_ZYNQ_ZC770
-
-config SYS_CPU
- string
- default "armv7"
-
-config SYS_BOARD
- string
- default "zynq"
-
-config SYS_VENDOR
- string
- default "xilinx"
-
-config SYS_SOC
- string
- default "zynq"
-
-config SYS_CONFIG_NAME
- string
- default "zynq_zc770"
-
-endif
-
-if TARGET_ZYNQ_ZED
-
-config SYS_CPU
- string
- default "armv7"
-
-config SYS_BOARD
- string
- default "zynq"
-
-config SYS_VENDOR
- string
- default "xilinx"
-
-config SYS_SOC
- string
- default "zynq"
-
-config SYS_CONFIG_NAME
- string
- default "zynq_zed"
-
-endif
diff --git a/board/xilinx/zynq/MAINTAINERS b/board/xilinx/zynq/MAINTAINERS
index e167816..382e921 100644
--- a/board/xilinx/zynq/MAINTAINERS
+++ b/board/xilinx/zynq/MAINTAINERS
@@ -3,13 +3,5 @@ M: Michal Simek <monstr@monstr.eu>
M: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
S: Maintained
F: board/xilinx/zynq/
-F: include/configs/zynq_microzed.h
-F: configs/zynq_microzed_defconfig
-F: include/configs/zynq_zc70x.h
-F: configs/zynq_zc70x_defconfig
-F: include/configs/zynq_zc770.h
-F: configs/zynq_zc770_xm010_defconfig
-F: configs/zynq_zc770_xm012_defconfig
-F: configs/zynq_zc770_xm013_defconfig
-F: include/configs/zynq_zed.h
-F: configs/zynq_zed_defconfig
+F: include/configs/zynq*.h
+F: configs/zynq_*_defconfig
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 8b897c8..843ec6e 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -627,3 +627,143 @@ U_BOOT_CMD(
"boot Linux zImage image from memory", bootz_help_text
);
#endif /* CONFIG_CMD_BOOTZ */
+
+#ifdef CONFIG_CMD_BOOTI
+/* See Documentation/arm64/booting.txt in the Linux kernel */
+struct Image_header {
+ uint32_t code0; /* Executable code */
+ uint32_t code1; /* Executable code */
+ uint64_t text_offset; /* Image load offset, LE */
+ uint64_t image_size; /* Effective Image size, LE */
+ uint64_t res1; /* reserved */
+ uint64_t res2; /* reserved */
+ uint64_t res3; /* reserved */
+ uint64_t res4; /* reserved */
+ uint32_t magic; /* Magic number */
+ uint32_t res5;
+};
+
+#define LINUX_ARM64_IMAGE_MAGIC 0x644d5241
+
+static int booti_setup(bootm_headers_t *images)
+{
+ struct Image_header *ih;
+ uint64_t dst;
+
+ ih = (struct Image_header *)map_sysmem(images->ep, 0);
+
+ if (ih->magic != le32_to_cpu(LINUX_ARM64_IMAGE_MAGIC)) {
+ puts("Bad Linux ARM64 Image magic!\n");
+ return 1;
+ }
+
+ if (ih->image_size == 0) {
+ puts("Image lacks image_size field, assuming 16MiB\n");
+ ih->image_size = (16 << 20);
+ }
+
+ /*
+ * If we are not at the correct run-time location, set the new
+ * correct location and then move the image there.
+ */
+ dst = gd->bd->bi_dram[0].start + le32_to_cpu(ih->text_offset);
+ if (images->ep != dst) {
+ void *src;
+
+ debug("Moving Image from 0x%lx to 0x%llx\n", images->ep, dst);
+
+ src = (void *)images->ep;
+ images->ep = dst;
+ memmove((void *)dst, src, le32_to_cpu(ih->image_size));
+ }
+
+ return 0;
+}
+
+/*
+ * Image booting support
+ */
+static int booti_start(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[], bootm_headers_t *images)
+{
+ int ret;
+ struct Image_header *ih;
+
+ ret = do_bootm_states(cmdtp, flag, argc, argv, BOOTM_STATE_START,
+ images, 1);
+
+ /* Setup Linux kernel Image entry point */
+ if (!argc) {
+ images->ep = load_addr;
+ debug("* kernel: default image load address = 0x%08lx\n",
+ load_addr);
+ } else {
+ images->ep = simple_strtoul(argv[0], NULL, 16);
+ debug("* kernel: cmdline image address = 0x%08lx\n",
+ images->ep);
+ }
+
+ ret = booti_setup(images);
+ if (ret != 0)
+ return 1;
+
+ ih = (struct Image_header *)map_sysmem(images->ep, 0);
+
+ lmb_reserve(&images->lmb, images->ep, le32_to_cpu(ih->image_size));
+
+ /*
+ * Handle the BOOTM_STATE_FINDOTHER state ourselves as we do not
+ * have a header that provide this informaiton.
+ */
+ if (bootm_find_ramdisk_fdt(flag, argc, argv))
+ return 1;
+
+ return 0;
+}
+
+int do_booti(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+ int ret;
+
+ /* Consume 'booti' */
+ argc--; argv++;
+
+ if (booti_start(cmdtp, flag, argc, argv, &images))
+ return 1;
+
+ /*
+ * We are doing the BOOTM_STATE_LOADOS state ourselves, so must
+ * disable interrupts ourselves
+ */
+ bootm_disable_interrupts();
+
+ images.os.os = IH_OS_LINUX;
+ ret = do_bootm_states(cmdtp, flag, argc, argv,
+ BOOTM_STATE_OS_PREP | BOOTM_STATE_OS_FAKE_GO |
+ BOOTM_STATE_OS_GO,
+ &images, 1);
+
+ return ret;
+}
+
+#ifdef CONFIG_SYS_LONGHELP
+static char booti_help_text[] =
+ "[addr [initrd[:size]] [fdt]]\n"
+ " - boot Linux Image stored in memory\n"
+ "\tThe argument 'initrd' is optional and specifies the address\n"
+ "\tof the initrd in memory. The optional argument ':size' allows\n"
+ "\tspecifying the size of RAW initrd.\n"
+#if defined(CONFIG_OF_LIBFDT)
+ "\tSince booting a Linux kernelrequires a flat device-tree\n"
+ "\ta third argument is required which is the address of the\n"
+ "\tdevice-tree blob. To boot that kernel without an initrd image,\n"
+ "\tuse a '-' for the second argument.\n"
+#endif
+ "";
+#endif
+
+U_BOOT_CMD(
+ booti, CONFIG_SYS_MAXARGS, 1, do_booti,
+ "boot arm64 Linux Image image from memory", booti_help_text
+);
+#endif /* CONFIG_CMD_BOOTI */
diff --git a/configs/alt_defconfig b/configs/alt_defconfig
index 11a1c89..0655e60 100644
--- a/configs/alt_defconfig
+++ b/configs/alt_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
++S:CONFIG_RMOBILE=y
CONFIG_TARGET_ALT=y
diff --git a/configs/am3517_crane_defconfig b/configs/am3517_crane_defconfig
index ec93224..cf9d8c7 100644
--- a/configs/am3517_crane_defconfig
+++ b/configs/am3517_crane_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_AM3517_CRANE=y
diff --git a/configs/am3517_evm_defconfig b/configs/am3517_evm_defconfig
index 1fab6c1..2336f1e 100644
--- a/configs/am3517_evm_defconfig
+++ b/configs/am3517_evm_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_AM3517_EVM=y
diff --git a/configs/armadillo-800eva_defconfig b/configs/armadillo-800eva_defconfig
index 081c88a..9b17895 100644
--- a/configs/armadillo-800eva_defconfig
+++ b/configs/armadillo-800eva_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
++S:CONFIG_RMOBILE=y
CONFIG_TARGET_ARMADILLO_800EVA=y
diff --git a/configs/arndale_defconfig b/configs/arndale_defconfig
index 7cc4307..7ea5c0d 100644
--- a/configs/arndale_defconfig
+++ b/configs/arndale_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_EXYNOS=y
+S:CONFIG_TARGET_ARNDALE=y
diff --git a/configs/bcm28155_w1d_defconfig b/configs/bcm28155_w1d_defconfig
new file mode 100644
index 0000000..94b791c
--- /dev/null
+++ b/configs/bcm28155_w1d_defconfig
@@ -0,0 +1,3 @@
+CONFIG_SYS_EXTRA_OPTIONS="BCM_SF2_ETH,BCM_SF2_ETH_GMAC"
+CONFIG_ARM=y
+CONFIG_TARGET_BCM28155_AP=y
diff --git a/configs/bcm958300k_defconfig b/configs/bcm958300k_defconfig
new file mode 100644
index 0000000..066739d
--- /dev/null
+++ b/configs/bcm958300k_defconfig
@@ -0,0 +1,3 @@
+CONFIG_SYS_EXTRA_OPTIONS="SYS_SDRAM_SIZE=0x20000000"
+CONFIG_ARM=y
+CONFIG_TARGET_BCM958300K=y
diff --git a/configs/bcm958622hr_defconfig b/configs/bcm958622hr_defconfig
new file mode 100644
index 0000000..8a45e51
--- /dev/null
+++ b/configs/bcm958622hr_defconfig
@@ -0,0 +1,3 @@
+CONFIG_SYS_EXTRA_OPTIONS="SYS_SDRAM_SIZE=0x01000000"
+CONFIG_ARM=y
+CONFIG_TARGET_BCM958622HR=y
diff --git a/configs/beaver_defconfig b/configs/beaver_defconfig
index 0e70f25..7c9d94b 100644
--- a/configs/beaver_defconfig
+++ b/configs/beaver_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA30=y
+S:CONFIG_TARGET_BEAVER=y
diff --git a/configs/calimain_defconfig b/configs/calimain_defconfig
index a808ddf..02d3912 100644
--- a/configs/calimain_defconfig
+++ b/configs/calimain_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_CALIMAIN=y
diff --git a/configs/cam_enc_4xx_defconfig b/configs/cam_enc_4xx_defconfig
index 1417d83..dfdda82 100644
--- a/configs/cam_enc_4xx_defconfig
+++ b/configs/cam_enc_4xx_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_DAVINCI=y
+S:CONFIG_TARGET_CAM_ENC_4XX=y
diff --git a/configs/cardhu_defconfig b/configs/cardhu_defconfig
index 564ad5a..bb042b4 100644
--- a/configs/cardhu_defconfig
+++ b/configs/cardhu_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA30=y
+S:CONFIG_TARGET_CARDHU=y
diff --git a/configs/cm_t35_defconfig b/configs/cm_t35_defconfig
index 00b0590..2bb616f 100644
--- a/configs/cm_t35_defconfig
+++ b/configs/cm_t35_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_CM_T35=y
diff --git a/configs/cm_t54_defconfig b/configs/cm_t54_defconfig
index b48a171..32efaa2 100644
--- a/configs/cm_t54_defconfig
+++ b/configs/cm_t54_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP54XX=y
+S:CONFIG_TARGET_CM_T54=y
diff --git a/configs/colibri_t20_iris_defconfig b/configs/colibri_t20_iris_defconfig
index 8ff2464..b2a21e1 100644
--- a/configs/colibri_t20_iris_defconfig
+++ b/configs/colibri_t20_iris_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA20=y
+S:CONFIG_TARGET_COLIBRI_T20_IRIS=y
diff --git a/configs/colibri_t30_defconfig b/configs/colibri_t30_defconfig
index 32f1d64..abb41f3 100644
--- a/configs/colibri_t30_defconfig
+++ b/configs/colibri_t30_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA30=y
+S:CONFIG_TARGET_COLIBRI_T30=y
diff --git a/configs/d2net_v2_defconfig b/configs/d2net_v2_defconfig
index e53aed7..c459f4d 100644
--- a/configs/d2net_v2_defconfig
+++ b/configs/d2net_v2_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="D2NET_V2"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_NET2BIG_V2=y
diff --git a/configs/da830evm_defconfig b/configs/da830evm_defconfig
index 49e74c3..d27cdb0 100644
--- a/configs/da830evm_defconfig
+++ b/configs/da830evm_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_DA830EVM=y
diff --git a/configs/da850_am18xxevm_defconfig b/configs/da850_am18xxevm_defconfig
index af419ce..a79a0a8 100644
--- a/configs/da850_am18xxevm_defconfig
+++ b/configs/da850_am18xxevm_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="DA850_AM18X_EVM,MAC_ADDR_IN_EEPROM,SYS_I2C_EEPROM_ADDR_LEN=2,SYS_I2C_EEPROM_ADDR=0x50"
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_DAVINCI=y
+S:CONFIG_TARGET_DA850EVM=y
diff --git a/configs/da850evm_defconfig b/configs/da850evm_defconfig
index 7517e92..afdce5e 100644
--- a/configs/da850evm_defconfig
+++ b/configs/da850evm_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="MAC_ADDR_IN_SPIFLASH"
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_DAVINCI=y
+S:CONFIG_TARGET_DA850EVM=y
diff --git a/configs/da850evm_direct_nor_defconfig b/configs/da850evm_direct_nor_defconfig
index edc604a..25c303c 100644
--- a/configs/da850evm_direct_nor_defconfig
+++ b/configs/da850evm_direct_nor_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="MAC_ADDR_IN_SPIFLASH,USE_NOR,DIRECT_NOR_BOOT"
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_DA850EVM=y
diff --git a/configs/dalmore_defconfig b/configs/dalmore_defconfig
index 288b238..70677aa 100644
--- a/configs/dalmore_defconfig
+++ b/configs/dalmore_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA114=y
+S:CONFIG_TARGET_DALMORE=y
diff --git a/configs/davinci_dm355evm_defconfig b/configs/davinci_dm355evm_defconfig
index ef0b854..d3a03b2 100644
--- a/configs/davinci_dm355evm_defconfig
+++ b/configs/davinci_dm355evm_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_DAVINCI_DM355EVM=y
diff --git a/configs/davinci_dm355leopard_defconfig b/configs/davinci_dm355leopard_defconfig
index 22da9f3..875c0b5 100644
--- a/configs/davinci_dm355leopard_defconfig
+++ b/configs/davinci_dm355leopard_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_DAVINCI_DM355LEOPARD=y
diff --git a/configs/davinci_dm365evm_defconfig b/configs/davinci_dm365evm_defconfig
index dfae0b2..f841fd9 100644
--- a/configs/davinci_dm365evm_defconfig
+++ b/configs/davinci_dm365evm_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_DAVINCI_DM365EVM=y
diff --git a/configs/davinci_dm6467Tevm_defconfig b/configs/davinci_dm6467Tevm_defconfig
index e2c2de4..4523d4a 100644
--- a/configs/davinci_dm6467Tevm_defconfig
+++ b/configs/davinci_dm6467Tevm_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="DAVINCI_DM6467TEVM,REFCLK_FREQ=33000000"
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_DAVINCI_DM6467EVM=y
diff --git a/configs/davinci_dm6467evm_defconfig b/configs/davinci_dm6467evm_defconfig
index abd3491..5208257 100644
--- a/configs/davinci_dm6467evm_defconfig
+++ b/configs/davinci_dm6467evm_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="REFCLK_FREQ=27000000"
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_DAVINCI_DM6467EVM=y
diff --git a/configs/davinci_dvevm_defconfig b/configs/davinci_dvevm_defconfig
index eb53692..74e55b9 100644
--- a/configs/davinci_dvevm_defconfig
+++ b/configs/davinci_dvevm_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_DAVINCI_DVEVM=y
diff --git a/configs/davinci_schmoogie_defconfig b/configs/davinci_schmoogie_defconfig
index bc166ab..64ed2c1 100644
--- a/configs/davinci_schmoogie_defconfig
+++ b/configs/davinci_schmoogie_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_DAVINCI_SCHMOOGIE=y
diff --git a/configs/davinci_sffsdr_defconfig b/configs/davinci_sffsdr_defconfig
index ea9cf88..9eb0f07 100644
--- a/configs/davinci_sffsdr_defconfig
+++ b/configs/davinci_sffsdr_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_DAVINCI_SFFSDR=y
diff --git a/configs/davinci_sonata_defconfig b/configs/davinci_sonata_defconfig
index 2c9cd4f..d8f0f77 100644
--- a/configs/davinci_sonata_defconfig
+++ b/configs/davinci_sonata_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_DAVINCI_SONATA=y
diff --git a/configs/devkit8000_defconfig b/configs/devkit8000_defconfig
index 7c5d222..578ae74 100644
--- a/configs/devkit8000_defconfig
+++ b/configs/devkit8000_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_DEVKIT8000=y
diff --git a/configs/dig297_defconfig b/configs/dig297_defconfig
index 9309ac2..95bc353 100644
--- a/configs/dig297_defconfig
+++ b/configs/dig297_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_OMAP34XX=y
CONFIG_TARGET_DIG297=y
diff --git a/configs/dns325_defconfig b/configs/dns325_defconfig
index 6a18d2a..cc4a03b 100644
--- a/configs/dns325_defconfig
+++ b/configs/dns325_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_DNS325=y
diff --git a/configs/dockstar_defconfig b/configs/dockstar_defconfig
index 528669e..b773cde 100644
--- a/configs/dockstar_defconfig
+++ b/configs/dockstar_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_DOCKSTAR=y
diff --git a/configs/dra7xx_evm_defconfig b/configs/dra7xx_evm_defconfig
index 82cffd7..297c6b5 100644
--- a/configs/dra7xx_evm_defconfig
+++ b/configs/dra7xx_evm_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=1"
+S:CONFIG_ARM=y
++S:CONFIG_OMAP54XX=y
+S:CONFIG_TARGET_DRA7XX_EVM=y
diff --git a/configs/dra7xx_evm_qspiboot_defconfig b/configs/dra7xx_evm_qspiboot_defconfig
index be09f40..92417f2 100644
--- a/configs/dra7xx_evm_qspiboot_defconfig
+++ b/configs/dra7xx_evm_qspiboot_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=1,QSPI_BOOT"
+S:CONFIG_ARM=y
++S:CONFIG_OMAP54XX=y
+S:CONFIG_TARGET_DRA7XX_EVM=y
diff --git a/configs/dra7xx_evm_uart3_defconfig b/configs/dra7xx_evm_uart3_defconfig
index e0d1e45..3551317 100644
--- a/configs/dra7xx_evm_uart3_defconfig
+++ b/configs/dra7xx_evm_uart3_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=3,SPL_YMODEM_SUPPORT"
+S:CONFIG_ARM=y
++S:CONFIG_OMAP54XX=y
+S:CONFIG_TARGET_DRA7XX_EVM=y
diff --git a/configs/dreamplug_defconfig b/configs/dreamplug_defconfig
index 49de210..45113c8 100644
--- a/configs/dreamplug_defconfig
+++ b/configs/dreamplug_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_DREAMPLUG=y
diff --git a/configs/duovero_defconfig b/configs/duovero_defconfig
index b56092a..8591845 100644
--- a/configs/duovero_defconfig
+++ b/configs/duovero_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP44XX=y
+S:CONFIG_TARGET_DUOVERO=y
diff --git a/configs/ea20_defconfig b/configs/ea20_defconfig
index 562849d..93676cd 100644
--- a/configs/ea20_defconfig
+++ b/configs/ea20_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_EA20=y
diff --git a/configs/eco5pk_defconfig b/configs/eco5pk_defconfig
index 79f3d5a..e45bdad 100644
--- a/configs/eco5pk_defconfig
+++ b/configs/eco5pk_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_ECO5PK=y
diff --git a/configs/edminiv2_defconfig b/configs/edminiv2_defconfig
index 82aa684..3b1a6c1 100644
--- a/configs/edminiv2_defconfig
+++ b/configs/edminiv2_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ORION5X=y
CONFIG_TARGET_EDMINIV2=y
diff --git a/configs/enbw_cmc_defconfig b/configs/enbw_cmc_defconfig
index 7fe405a..92c4926 100644
--- a/configs/enbw_cmc_defconfig
+++ b/configs/enbw_cmc_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_DAVINCI=y
CONFIG_TARGET_ENBW_CMC=y
diff --git a/configs/goflexhome_defconfig b/configs/goflexhome_defconfig
index 10fde53..276489b 100644
--- a/configs/goflexhome_defconfig
+++ b/configs/goflexhome_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_GOFLEXHOME=y
diff --git a/configs/guruplug_defconfig b/configs/guruplug_defconfig
index f5be577..912a089 100644
--- a/configs/guruplug_defconfig
+++ b/configs/guruplug_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_GURUPLUG=y
diff --git a/configs/harmony_defconfig b/configs/harmony_defconfig
index d25ea5c..a52231b 100644
--- a/configs/harmony_defconfig
+++ b/configs/harmony_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA20=y
+S:CONFIG_TARGET_HARMONY=y
diff --git a/configs/hawkboard_defconfig b/configs/hawkboard_defconfig
index 9945fe5..4084f9c 100644
--- a/configs/hawkboard_defconfig
+++ b/configs/hawkboard_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_DAVINCI=y
+S:CONFIG_TARGET_HAWKBOARD=y
diff --git a/configs/hawkboard_uart_defconfig b/configs/hawkboard_uart_defconfig
index b4db291..d7eeae7 100644
--- a/configs/hawkboard_uart_defconfig
+++ b/configs/hawkboard_uart_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="UART_U_BOOT"
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_DAVINCI=y
+S:CONFIG_TARGET_HAWKBOARD=y
diff --git a/configs/highbank_defconfig b/configs/highbank_defconfig
index 23fd52d..88efbdf 100644
--- a/configs/highbank_defconfig
+++ b/configs/highbank_defconfig
@@ -1,2 +1,2 @@
CONFIG_ARM=y
-CONFIG_TARGET_HIGHBANK=y
+CONFIG_ARCH_HIGHBANK=y
diff --git a/configs/ib62x0_defconfig b/configs/ib62x0_defconfig
index d92217e..b6780c5 100644
--- a/configs/ib62x0_defconfig
+++ b/configs/ib62x0_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_IB62X0=y
diff --git a/configs/iconnect_defconfig b/configs/iconnect_defconfig
index ab83fa6..7ff8d67 100644
--- a/configs/iconnect_defconfig
+++ b/configs/iconnect_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_ICONNECT=y
diff --git a/configs/igep0020_defconfig b/configs/igep0020_defconfig
index e99f773..dd56ea1 100644
--- a/configs/igep0020_defconfig
+++ b/configs/igep0020_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="MACH_TYPE=MACH_TYPE_IGEP0020,BOOT_ONENAND"
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_OMAP3_IGEP00X0=y
diff --git a/configs/igep0020_nand_defconfig b/configs/igep0020_nand_defconfig
index baa4a0a..da54da0 100644
--- a/configs/igep0020_nand_defconfig
+++ b/configs/igep0020_nand_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="MACH_TYPE=MACH_TYPE_IGEP0020,BOOT_NAND"
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_OMAP3_IGEP00X0=y
diff --git a/configs/igep0030_defconfig b/configs/igep0030_defconfig
index 5f404eb..1025fed 100644
--- a/configs/igep0030_defconfig
+++ b/configs/igep0030_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="MACH_TYPE=MACH_TYPE_IGEP0030,BOOT_ONENAND"
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_OMAP3_IGEP00X0=y
diff --git a/configs/igep0030_nand_defconfig b/configs/igep0030_nand_defconfig
index a43dfec..b3b3366 100644
--- a/configs/igep0030_nand_defconfig
+++ b/configs/igep0030_nand_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="MACH_TYPE=MACH_TYPE_IGEP0030,BOOT_NAND"
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_OMAP3_IGEP00X0=y
diff --git a/configs/igep0032_defconfig b/configs/igep0032_defconfig
index c0d019c..faa04f7 100644
--- a/configs/igep0032_defconfig
+++ b/configs/igep0032_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="MACH_TYPE=MACH_TYPE_IGEP0032,BOOT_ONENAND"
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_OMAP3_IGEP00X0=y
diff --git a/configs/inetspace_v2_defconfig b/configs/inetspace_v2_defconfig
index 26d9932..1123b52 100644
--- a/configs/inetspace_v2_defconfig
+++ b/configs/inetspace_v2_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="INETSPACE_V2"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_NETSPACE_V2=y
diff --git a/configs/ipam390_defconfig b/configs/ipam390_defconfig
index 6e95951..4fefcbe 100644
--- a/configs/ipam390_defconfig
+++ b/configs/ipam390_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_DAVINCI=y
+S:CONFIG_TARGET_IPAM390=y
diff --git a/configs/jetson-tk1_defconfig b/configs/jetson-tk1_defconfig
index 6926257..00eac92 100644
--- a/configs/jetson-tk1_defconfig
+++ b/configs/jetson-tk1_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA124=y
+S:CONFIG_TARGET_JETSON_TK1=y
diff --git a/configs/k2e_evm_defconfig b/configs/k2e_evm_defconfig
index c210ad5..be8d2ee 100644
--- a/configs/k2e_evm_defconfig
+++ b/configs/k2e_evm_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_KEYSTONE=y
CONFIG_TARGET_K2E_EVM=y
diff --git a/configs/k2hk_evm_defconfig b/configs/k2hk_evm_defconfig
index caa763a..eee3335 100644
--- a/configs/k2hk_evm_defconfig
+++ b/configs/k2hk_evm_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_KEYSTONE=y
CONFIG_TARGET_K2HK_EVM=y
diff --git a/configs/km_kirkwood_128m16_defconfig b/configs/km_kirkwood_128m16_defconfig
index c51fbf3..6a263a6 100644
--- a/configs/km_kirkwood_128m16_defconfig
+++ b/configs/km_kirkwood_128m16_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="KM_KIRKWOOD_128M16"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_KM_KIRKWOOD=y
diff --git a/configs/km_kirkwood_defconfig b/configs/km_kirkwood_defconfig
index 4f554f7..aff76e5 100644
--- a/configs/km_kirkwood_defconfig
+++ b/configs/km_kirkwood_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="KM_KIRKWOOD"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_KM_KIRKWOOD=y
diff --git a/configs/km_kirkwood_pci_defconfig b/configs/km_kirkwood_pci_defconfig
index abb42c9..13c70a7 100644
--- a/configs/km_kirkwood_pci_defconfig
+++ b/configs/km_kirkwood_pci_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="KM_KIRKWOOD_PCI"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_KM_KIRKWOOD=y
diff --git a/configs/kmcoge5un_defconfig b/configs/kmcoge5un_defconfig
index 0378277..78057e4 100644
--- a/configs/kmcoge5un_defconfig
+++ b/configs/kmcoge5un_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="KM_COGE5UN"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_KM_KIRKWOOD=y
diff --git a/configs/kmnusa_defconfig b/configs/kmnusa_defconfig
index 46ddbcd..d125c52 100644
--- a/configs/kmnusa_defconfig
+++ b/configs/kmnusa_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="KM_NUSA"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_KM_KIRKWOOD=y
diff --git a/configs/kmsugp1_defconfig b/configs/kmsugp1_defconfig
index 183b365..d40dfd9 100644
--- a/configs/kmsugp1_defconfig
+++ b/configs/kmsugp1_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="KM_SUGP1"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_KM_KIRKWOOD=y
diff --git a/configs/kmsuv31_defconfig b/configs/kmsuv31_defconfig
index 9434ef0..40d0993 100644
--- a/configs/kmsuv31_defconfig
+++ b/configs/kmsuv31_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="KM_SUV31"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_KM_KIRKWOOD=y
diff --git a/configs/koelsch_defconfig b/configs/koelsch_defconfig
index d63a286..d59ff3d 100644
--- a/configs/koelsch_defconfig
+++ b/configs/koelsch_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
++S:CONFIG_RMOBILE=y
CONFIG_TARGET_KOELSCH=y
diff --git a/configs/kzm9g_defconfig b/configs/kzm9g_defconfig
index aaddf82..d4d340f 100644
--- a/configs/kzm9g_defconfig
+++ b/configs/kzm9g_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
++S:CONFIG_RMOBILE=y
CONFIG_TARGET_KZM9G=y
diff --git a/configs/lager_defconfig b/configs/lager_defconfig
index bf1be72..9a32d6b 100644
--- a/configs/lager_defconfig
+++ b/configs/lager_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
++S:CONFIG_RMOBILE=y
CONFIG_TARGET_LAGER=y
diff --git a/configs/lschlv2_defconfig b/configs/lschlv2_defconfig
index 330b4d7..8c02fb3 100644
--- a/configs/lschlv2_defconfig
+++ b/configs/lschlv2_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="LSCHLV2"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_LSXL=y
diff --git a/configs/lsxhl_defconfig b/configs/lsxhl_defconfig
index e8cdf8a..86845d1 100644
--- a/configs/lsxhl_defconfig
+++ b/configs/lsxhl_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="LSXHL"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_LSXL=y
diff --git a/configs/mcx_defconfig b/configs/mcx_defconfig
index a700c88..c2031f8 100644
--- a/configs/mcx_defconfig
+++ b/configs/mcx_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_MCX=y
diff --git a/configs/medcom-wide_defconfig b/configs/medcom-wide_defconfig
index ddf3437..e9a3930 100644
--- a/configs/medcom-wide_defconfig
+++ b/configs/medcom-wide_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA20=y
+S:CONFIG_TARGET_MEDCOM_WIDE=y
diff --git a/configs/mgcoge3un_defconfig b/configs/mgcoge3un_defconfig
index bc1e2ba..da991aa 100644
--- a/configs/mgcoge3un_defconfig
+++ b/configs/mgcoge3un_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="KM_MGCOGE3UN"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_KM_KIRKWOOD=y
diff --git a/configs/mt_ventoux_defconfig b/configs/mt_ventoux_defconfig
index 0fcad87..a0678bb 100644
--- a/configs/mt_ventoux_defconfig
+++ b/configs/mt_ventoux_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_MT_VENTOUX=y
diff --git a/configs/mv88f6281gtw_ge_defconfig b/configs/mv88f6281gtw_ge_defconfig
index 4e26879..0650032 100644
--- a/configs/mv88f6281gtw_ge_defconfig
+++ b/configs/mv88f6281gtw_ge_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_MV88F6281GTW_GE=y
diff --git a/configs/net2big_v2_defconfig b/configs/net2big_v2_defconfig
index bffea60..7422fbe 100644
--- a/configs/net2big_v2_defconfig
+++ b/configs/net2big_v2_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="NET2BIG_V2"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_NET2BIG_V2=y
diff --git a/configs/netspace_lite_v2_defconfig b/configs/netspace_lite_v2_defconfig
index b262152..6a3a32f 100644
--- a/configs/netspace_lite_v2_defconfig
+++ b/configs/netspace_lite_v2_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="NETSPACE_LITE_V2"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_NETSPACE_V2=y
diff --git a/configs/netspace_max_v2_defconfig b/configs/netspace_max_v2_defconfig
index 4fc84fc..903d6c9 100644
--- a/configs/netspace_max_v2_defconfig
+++ b/configs/netspace_max_v2_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="NETSPACE_MAX_V2"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_NETSPACE_V2=y
diff --git a/configs/netspace_mini_v2_defconfig b/configs/netspace_mini_v2_defconfig
index 631a31b..774faa7 100644
--- a/configs/netspace_mini_v2_defconfig
+++ b/configs/netspace_mini_v2_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="NETSPACE_MINI_V2"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_NETSPACE_V2=y
diff --git a/configs/netspace_v2_defconfig b/configs/netspace_v2_defconfig
index dd77bfe..776fc04 100644
--- a/configs/netspace_v2_defconfig
+++ b/configs/netspace_v2_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="NETSPACE_V2"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_NETSPACE_V2=y
diff --git a/configs/nhk8815_defconfig b/configs/nhk8815_defconfig
index 3d20199..f661226 100644
--- a/configs/nhk8815_defconfig
+++ b/configs/nhk8815_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
-CONFIG_TARGET_NHK8815=y
+CONFIG_ARCH_NOMADIK=y
+CONFIG_NOMADIK_NHK8815=y
diff --git a/configs/nhk8815_onenand_defconfig b/configs/nhk8815_onenand_defconfig
index 860ae92..dd8048d 100644
--- a/configs/nhk8815_onenand_defconfig
+++ b/configs/nhk8815_onenand_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="BOOT_ONENAND"
CONFIG_ARM=y
-CONFIG_TARGET_NHK8815=y
+CONFIG_ARCH_NOMADIK=y
+CONFIG_NOMADIK_NHK8815=y
diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig
index 055a602..e03f586 100644
--- a/configs/nokia_rx51_defconfig
+++ b/configs/nokia_rx51_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_OMAP34XX=y
CONFIG_TARGET_NOKIA_RX51=y
diff --git a/configs/omap3_beagle_defconfig b/configs/omap3_beagle_defconfig
index a37ca60..a3e4c2c 100644
--- a/configs/omap3_beagle_defconfig
+++ b/configs/omap3_beagle_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="NAND"
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_OMAP3_BEAGLE=y
diff --git a/configs/omap3_evm_defconfig b/configs/omap3_evm_defconfig
index 284abe1..c749aa7 100644
--- a/configs/omap3_evm_defconfig
+++ b/configs/omap3_evm_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_OMAP3_EVM=y
diff --git a/configs/omap3_evm_quick_mmc_defconfig b/configs/omap3_evm_quick_mmc_defconfig
index 5bafeac..e89bb82 100644
--- a/configs/omap3_evm_quick_mmc_defconfig
+++ b/configs/omap3_evm_quick_mmc_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_OMAP3_EVM_QUICK_MMC=y
diff --git a/configs/omap3_evm_quick_nand_defconfig b/configs/omap3_evm_quick_nand_defconfig
index 501e46f..e70fddd 100644
--- a/configs/omap3_evm_quick_nand_defconfig
+++ b/configs/omap3_evm_quick_nand_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_OMAP3_EVM_QUICK_NAND=y
diff --git a/configs/omap3_ha_defconfig b/configs/omap3_ha_defconfig
index a183fe7..50bffa9 100644
--- a/configs/omap3_ha_defconfig
+++ b/configs/omap3_ha_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="SYS_BOARD_OMAP3_HA"
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_TAO3530=y
diff --git a/configs/omap3_logic_defconfig b/configs/omap3_logic_defconfig
index 6278554..5f2c063 100644
--- a/configs/omap3_logic_defconfig
+++ b/configs/omap3_logic_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_OMAP34XX=y
CONFIG_TARGET_OMAP3_LOGIC=y
diff --git a/configs/omap3_mvblx_defconfig b/configs/omap3_mvblx_defconfig
index b7ddcc8..fb6edc2 100644
--- a/configs/omap3_mvblx_defconfig
+++ b/configs/omap3_mvblx_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_OMAP34XX=y
CONFIG_TARGET_OMAP3_MVBLX=y
diff --git a/configs/omap3_overo_defconfig b/configs/omap3_overo_defconfig
index dca3237..7e0d334 100644
--- a/configs/omap3_overo_defconfig
+++ b/configs/omap3_overo_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_OMAP3_OVERO=y
diff --git a/configs/omap3_pandora_defconfig b/configs/omap3_pandora_defconfig
index 54dab48..bf28537 100644
--- a/configs/omap3_pandora_defconfig
+++ b/configs/omap3_pandora_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_OMAP34XX=y
CONFIG_TARGET_OMAP3_PANDORA=y
diff --git a/configs/omap3_sdp3430_defconfig b/configs/omap3_sdp3430_defconfig
index 9672956..1172c2a 100644
--- a/configs/omap3_sdp3430_defconfig
+++ b/configs/omap3_sdp3430_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_OMAP34XX=y
CONFIG_TARGET_OMAP3_SDP3430=y
diff --git a/configs/omap3_zoom1_defconfig b/configs/omap3_zoom1_defconfig
index f4c8ed9..e2d0a8c 100644
--- a/configs/omap3_zoom1_defconfig
+++ b/configs/omap3_zoom1_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_OMAP34XX=y
CONFIG_TARGET_OMAP3_ZOOM1=y
diff --git a/configs/omap4_panda_defconfig b/configs/omap4_panda_defconfig
index 1498d17..6afac38 100644
--- a/configs/omap4_panda_defconfig
+++ b/configs/omap4_panda_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP44XX=y
+S:CONFIG_TARGET_OMAP4_PANDA=y
diff --git a/configs/omap4_sdp4430_defconfig b/configs/omap4_sdp4430_defconfig
index faac317..c771e76 100644
--- a/configs/omap4_sdp4430_defconfig
+++ b/configs/omap4_sdp4430_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP44XX=y
+S:CONFIG_TARGET_OMAP4_SDP4430=y
diff --git a/configs/omap5_uevm_defconfig b/configs/omap5_uevm_defconfig
index 7a19ce9..86d5c16 100644
--- a/configs/omap5_uevm_defconfig
+++ b/configs/omap5_uevm_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP54XX=y
+S:CONFIG_TARGET_OMAP5_UEVM=y
diff --git a/configs/openrd_base_defconfig b/configs/openrd_base_defconfig
index 25f777e..7b3ea99 100644
--- a/configs/openrd_base_defconfig
+++ b/configs/openrd_base_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="BOARD_IS_OPENRD_BASE"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_OPENRD=y
diff --git a/configs/openrd_client_defconfig b/configs/openrd_client_defconfig
index ba71851..d34793d 100644
--- a/configs/openrd_client_defconfig
+++ b/configs/openrd_client_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="BOARD_IS_OPENRD_CLIENT"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_OPENRD=y
diff --git a/configs/openrd_ultimate_defconfig b/configs/openrd_ultimate_defconfig
index 8651f92..4e10d4d 100644
--- a/configs/openrd_ultimate_defconfig
+++ b/configs/openrd_ultimate_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="BOARD_IS_OPENRD_ULTIMATE"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_OPENRD=y
diff --git a/configs/origen_defconfig b/configs/origen_defconfig
index e0d10d3..aa92381 100644
--- a/configs/origen_defconfig
+++ b/configs/origen_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_EXYNOS=y
+S:CONFIG_TARGET_ORIGEN=y
diff --git a/configs/paz00_defconfig b/configs/paz00_defconfig
index 61a536e..05974eb 100644
--- a/configs/paz00_defconfig
+++ b/configs/paz00_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA20=y
+S:CONFIG_TARGET_PAZ00=y
diff --git a/configs/peach-pit_defconfig b/configs/peach-pit_defconfig
index 68ba794..797d5e0 100644
--- a/configs/peach-pit_defconfig
+++ b/configs/peach-pit_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_EXYNOS=y
+S:CONFIG_TARGET_PEACH_PIT=y
diff --git a/configs/plutux_defconfig b/configs/plutux_defconfig
index 672b66c..60e80ff 100644
--- a/configs/plutux_defconfig
+++ b/configs/plutux_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA20=y
+S:CONFIG_TARGET_PLUTUX=y
diff --git a/configs/pogo_e02_defconfig b/configs/pogo_e02_defconfig
index 41637e0..97effef 100644
--- a/configs/pogo_e02_defconfig
+++ b/configs/pogo_e02_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_POGO_E02=y
diff --git a/configs/portl2_defconfig b/configs/portl2_defconfig
index 6df18e9..1895c80 100644
--- a/configs/portl2_defconfig
+++ b/configs/portl2_defconfig
@@ -1,3 +1,4 @@
CONFIG_SYS_EXTRA_OPTIONS="KM_PORTL2"
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_KM_KIRKWOOD=y
diff --git a/configs/rd6281a_defconfig b/configs/rd6281a_defconfig
index d9c3e39..ed083bf 100644
--- a/configs/rd6281a_defconfig
+++ b/configs/rd6281a_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_RD6281A=y
diff --git a/configs/s5pc210_universal_defconfig b/configs/s5pc210_universal_defconfig
index 572df1d..a9a3446 100644
--- a/configs/s5pc210_universal_defconfig
+++ b/configs/s5pc210_universal_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_EXYNOS=y
CONFIG_TARGET_S5PC210_UNIVERSAL=y
diff --git a/configs/seaboard_defconfig b/configs/seaboard_defconfig
index c0f078b..516e760 100644
--- a/configs/seaboard_defconfig
+++ b/configs/seaboard_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA20=y
+S:CONFIG_TARGET_SEABOARD=y
diff --git a/configs/sheevaplug_defconfig b/configs/sheevaplug_defconfig
index 9e4b9c9..d22b006 100644
--- a/configs/sheevaplug_defconfig
+++ b/configs/sheevaplug_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_SHEEVAPLUG=y
diff --git a/configs/smdk5250_defconfig b/configs/smdk5250_defconfig
index a35e4fc..465a75a 100644
--- a/configs/smdk5250_defconfig
+++ b/configs/smdk5250_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_EXYNOS=y
+S:CONFIG_TARGET_SMDK5250=y
diff --git a/configs/smdk5420_defconfig b/configs/smdk5420_defconfig
index 12933f0..9dc43f2 100644
--- a/configs/smdk5420_defconfig
+++ b/configs/smdk5420_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_EXYNOS=y
+S:CONFIG_TARGET_SMDK5420=y
diff --git a/configs/smdkv310_defconfig b/configs/smdkv310_defconfig
index d87986a..44da273 100644
--- a/configs/smdkv310_defconfig
+++ b/configs/smdkv310_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_EXYNOS=y
+S:CONFIG_TARGET_SMDKV310=y
diff --git a/configs/snow_defconfig b/configs/snow_defconfig
index 44c4701..2d59046 100644
--- a/configs/snow_defconfig
+++ b/configs/snow_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ARCH_EXYNOS=y
+S:CONFIG_TARGET_SNOW=y
diff --git a/configs/tao3530_defconfig b/configs/tao3530_defconfig
index d8b57b1..a511389 100644
--- a/configs/tao3530_defconfig
+++ b/configs/tao3530_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_TAO3530=y
diff --git a/configs/tec-ng_defconfig b/configs/tec-ng_defconfig
index 2360d25..e4a31cc 100644
--- a/configs/tec-ng_defconfig
+++ b/configs/tec-ng_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA30=y
+S:CONFIG_TARGET_TEC_NG=y
diff --git a/configs/tec_defconfig b/configs/tec_defconfig
index 1aaa9d1..62a9542 100644
--- a/configs/tec_defconfig
+++ b/configs/tec_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA20=y
+S:CONFIG_TARGET_TEC=y
diff --git a/configs/tk71_defconfig b/configs/tk71_defconfig
index ffff874..411e3c1 100644
--- a/configs/tk71_defconfig
+++ b/configs/tk71_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_TK71=y
diff --git a/configs/trats2_defconfig b/configs/trats2_defconfig
index 0a53f09..fa82724 100644
--- a/configs/trats2_defconfig
+++ b/configs/trats2_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_EXYNOS=y
CONFIG_TARGET_TRATS2=y
diff --git a/configs/trats_defconfig b/configs/trats_defconfig
index 93b94c0..f888a51 100644
--- a/configs/trats_defconfig
+++ b/configs/trats_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_ARCH_EXYNOS=y
CONFIG_TARGET_TRATS=y
diff --git a/configs/tricorder_defconfig b/configs/tricorder_defconfig
index 80c2df4..7ea5e02 100644
--- a/configs/tricorder_defconfig
+++ b/configs/tricorder_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_TRICORDER=y
diff --git a/configs/tricorder_flash_defconfig b/configs/tricorder_flash_defconfig
index 6715e71..f6e1c46 100644
--- a/configs/tricorder_flash_defconfig
+++ b/configs/tricorder_flash_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="FLASHCARD"
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_TRICORDER=y
diff --git a/configs/trimslice_defconfig b/configs/trimslice_defconfig
index c096c65..94f23e3 100644
--- a/configs/trimslice_defconfig
+++ b/configs/trimslice_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA20=y
+S:CONFIG_TARGET_TRIMSLICE=y
diff --git a/configs/twister_defconfig b/configs/twister_defconfig
index 27e8364..9023736 100644
--- a/configs/twister_defconfig
+++ b/configs/twister_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_OMAP34XX=y
+S:CONFIG_TARGET_TWISTER=y
diff --git a/configs/venice2_defconfig b/configs/venice2_defconfig
index 2bfa91d..dfc5407 100644
--- a/configs/venice2_defconfig
+++ b/configs/venice2_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA124=y
+S:CONFIG_TARGET_VENICE2=y
diff --git a/configs/ventana_defconfig b/configs/ventana_defconfig
index 75fca96..845e241 100644
--- a/configs/ventana_defconfig
+++ b/configs/ventana_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA20=y
+S:CONFIG_TARGET_VENTANA=y
diff --git a/configs/versatileab_defconfig b/configs/versatileab_defconfig
index 9d64dd0..94680fe 100644
--- a/configs/versatileab_defconfig
+++ b/configs/versatileab_defconfig
@@ -1,3 +1,3 @@
CONFIG_SYS_EXTRA_OPTIONS="ARCH_VERSATILE_AB"
CONFIG_ARM=y
-CONFIG_TARGET_VERSATILEAB=y
+CONFIG_ARCH_VERSATILE=y
diff --git a/configs/versatilepb_defconfig b/configs/versatilepb_defconfig
index fadaf93..2c59e5c 100644
--- a/configs/versatilepb_defconfig
+++ b/configs/versatilepb_defconfig
@@ -1,3 +1,3 @@
CONFIG_SYS_EXTRA_OPTIONS="ARCH_VERSATILE_PB"
CONFIG_ARM=y
-CONFIG_TARGET_VERSATILEPB=y
+CONFIG_ARCH_VERSATILE=y
diff --git a/configs/versatileqemu_defconfig b/configs/versatileqemu_defconfig
index 9d24558..fb0485d 100644
--- a/configs/versatileqemu_defconfig
+++ b/configs/versatileqemu_defconfig
@@ -1,3 +1,3 @@
CONFIG_SYS_EXTRA_OPTIONS="ARCH_VERSATILE_QEMU,ARCH_VERSATILE_PB"
CONFIG_ARM=y
-CONFIG_TARGET_VERSATILEQEMU=y
+CONFIG_ARCH_VERSATILE=y
diff --git a/configs/whistler_defconfig b/configs/whistler_defconfig
index cdc2c90..8c07c18 100644
--- a/configs/whistler_defconfig
+++ b/configs/whistler_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA20=y
+S:CONFIG_TARGET_WHISTLER=y
diff --git a/configs/wireless_space_defconfig b/configs/wireless_space_defconfig
index 6c78548..580e5ce 100644
--- a/configs/wireless_space_defconfig
+++ b/configs/wireless_space_defconfig
@@ -1,2 +1,3 @@
CONFIG_ARM=y
+CONFIG_KIRKWOOD=y
CONFIG_TARGET_WIRELESS_SPACE=y
diff --git a/configs/zynq_microzed_defconfig b/configs/zynq_microzed_defconfig
index 14024d0..3aedb35 100644
--- a/configs/zynq_microzed_defconfig
+++ b/configs/zynq_microzed_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ZYNQ=y
+S:CONFIG_TARGET_ZYNQ_MICROZED=y
diff --git a/configs/zynq_zc70x_defconfig b/configs/zynq_zc70x_defconfig
index d2e79a5..04c8def 100644
--- a/configs/zynq_zc70x_defconfig
+++ b/configs/zynq_zc70x_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ZYNQ=y
+S:CONFIG_TARGET_ZYNQ_ZC70X=y
diff --git a/configs/zynq_zc770_xm010_defconfig b/configs/zynq_zc770_xm010_defconfig
index e9f9c4b..1178b40 100644
--- a/configs/zynq_zc770_xm010_defconfig
+++ b/configs/zynq_zc770_xm010_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM010"
+S:CONFIG_ARM=y
++S:CONFIG_ZYNQ=y
+S:CONFIG_TARGET_ZYNQ_ZC770=y
diff --git a/configs/zynq_zc770_xm012_defconfig b/configs/zynq_zc770_xm012_defconfig
index 78f1fe6..52c2121 100644
--- a/configs/zynq_zc770_xm012_defconfig
+++ b/configs/zynq_zc770_xm012_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM012"
+S:CONFIG_ARM=y
++S:CONFIG_ZYNQ=y
+S:CONFIG_TARGET_ZYNQ_ZC770=y
diff --git a/configs/zynq_zc770_xm013_defconfig b/configs/zynq_zc770_xm013_defconfig
index d96e8ff..836809a 100644
--- a/configs/zynq_zc770_xm013_defconfig
+++ b/configs/zynq_zc770_xm013_defconfig
@@ -1,4 +1,5 @@
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM013"
+S:CONFIG_ARM=y
++S:CONFIG_ZYNQ=y
+S:CONFIG_TARGET_ZYNQ_ZC770=y
diff --git a/configs/zynq_zed_defconfig b/configs/zynq_zed_defconfig
index abf7e82..2337906 100644
--- a/configs/zynq_zed_defconfig
+++ b/configs/zynq_zed_defconfig
@@ -1,3 +1,4 @@
CONFIG_SPL=y
+S:CONFIG_ARM=y
++S:CONFIG_ZYNQ=y
+S:CONFIG_TARGET_ZYNQ_ZED=y
diff --git a/drivers/mmc/socfpga_dw_mmc.c b/drivers/mmc/socfpga_dw_mmc.c
index bc53a5d..1f96382 100644
--- a/drivers/mmc/socfpga_dw_mmc.c
+++ b/drivers/mmc/socfpga_dw_mmc.c
@@ -16,15 +16,13 @@ static const struct socfpga_clock_manager *clock_manager_base =
static const struct socfpga_system_manager *system_manager_base =
(void *)SOCFPGA_SYSMGR_ADDRESS;
-static char *SOCFPGA_NAME = "SOCFPGA DWMMC";
-
static void socfpga_dwmci_clksel(struct dwmci_host *host)
{
unsigned int drvsel;
unsigned int smplsel;
/* Disable SDMMC clock. */
- clrbits_le32(&clock_manager_base->per_pll_en,
+ clrbits_le32(&clock_manager_base->per_pll.en,
CLKMGR_PERPLLGRP_EN_SDMMCCLK_MASK);
/* Configures drv_sel and smpl_sel */
@@ -39,20 +37,22 @@ static void socfpga_dwmci_clksel(struct dwmci_host *host)
readl(&system_manager_base->sdmmcgrp_ctrl));
/* Enable SDMMC clock */
- setbits_le32(&clock_manager_base->per_pll_en,
+ setbits_le32(&clock_manager_base->per_pll.en,
CLKMGR_PERPLLGRP_EN_SDMMCCLK_MASK);
}
int socfpga_dwmmc_init(u32 regbase, int bus_width, int index)
{
- struct dwmci_host *host = NULL;
+ struct dwmci_host *host;
+
+ /* calloc for zero init */
host = calloc(sizeof(struct dwmci_host), 1);
if (!host) {
printf("dwmci_host calloc fail!\n");
return -1;
}
- host->name = SOCFPGA_NAME;
+ host->name = "SOCFPGA DWMMC";
host->ioaddr = (void *)regbase;
host->buswidth = bus_width;
host->clksel = socfpga_dwmci_clksel;
diff --git a/drivers/mtd/nand/kirkwood_nand.c b/drivers/mtd/nand/kirkwood_nand.c
index 72687a1..3e5fb0c 100644
--- a/drivers/mtd/nand/kirkwood_nand.c
+++ b/drivers/mtd/nand/kirkwood_nand.c
@@ -58,6 +58,9 @@ void kw_nand_select_chip(struct mtd_info *mtd, int chip)
int board_nand_init(struct nand_chip *nand)
{
nand->options = NAND_COPYBACK | NAND_CACHEPRG | NAND_NO_PADDING;
+#if defined(CONFIG_SYS_NAND_NO_SUBPAGE_WRITE)
+ nand->options |= NAND_NO_SUBPAGE_WRITE;
+#endif
#if defined(CONFIG_NAND_ECC_BCH)
nand->ecc.mode = NAND_ECC_SOFT_BCH;
#else
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index 84b8ec4..2c4dd7c 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -10,6 +10,8 @@ obj-$(CONFIG_ALTERA_TSE) += altera_tse.o
obj-$(CONFIG_ARMADA100_FEC) += armada100_fec.o
obj-$(CONFIG_DRIVER_AT91EMAC) += at91_emac.o
obj-$(CONFIG_DRIVER_AX88180) += ax88180.o
+obj-$(CONFIG_BCM_SF2_ETH) += bcm-sf2-eth.o
+obj-$(CONFIG_BCM_SF2_ETH_GMAC) += bcm-sf2-eth-gmac.o
obj-$(CONFIG_BFIN_MAC) += bfin_mac.o
obj-$(CONFIG_CALXEDA_XGMAC) += calxedaxgmac.o
obj-$(CONFIG_CS8900) += cs8900.o
diff --git a/drivers/net/bcm-sf2-eth-gmac.c b/drivers/net/bcm-sf2-eth-gmac.c
new file mode 100644
index 0000000..977feec
--- /dev/null
+++ b/drivers/net/bcm-sf2-eth-gmac.c
@@ -0,0 +1,971 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifdef BCM_GMAC_DEBUG
+#ifndef DEBUG
+#define DEBUG
+#endif
+#endif
+
+#include <config.h>
+#include <common.h>
+#include <malloc.h>
+#include <net.h>
+#include <asm/io.h>
+#include <phy.h>
+
+#include "bcm-sf2-eth.h"
+#include "bcm-sf2-eth-gmac.h"
+
+#define SPINWAIT(exp, us) { \
+ uint countdown = (us) + 9; \
+ while ((exp) && (countdown >= 10)) {\
+ udelay(10); \
+ countdown -= 10; \
+ } \
+}
+
+static int gmac_disable_dma(struct eth_dma *dma, int dir);
+static int gmac_enable_dma(struct eth_dma *dma, int dir);
+
+/* DMA Descriptor */
+typedef struct {
+ /* misc control bits */
+ uint32_t ctrl1;
+ /* buffer count and address extension */
+ uint32_t ctrl2;
+ /* memory address of the date buffer, bits 31:0 */
+ uint32_t addrlow;
+ /* memory address of the date buffer, bits 63:32 */
+ uint32_t addrhigh;
+} dma64dd_t;
+
+uint32_t g_dmactrlflags;
+
+static uint32_t dma_ctrlflags(uint32_t mask, uint32_t flags)
+{
+ debug("%s enter\n", __func__);
+
+ g_dmactrlflags &= ~mask;
+ g_dmactrlflags |= flags;
+
+ /* If trying to enable parity, check if parity is actually supported */
+ if (g_dmactrlflags & DMA_CTRL_PEN) {
+ uint32_t control;
+
+ control = readl(GMAC0_DMA_TX_CTRL_ADDR);
+ writel(control | D64_XC_PD, GMAC0_DMA_TX_CTRL_ADDR);
+ if (readl(GMAC0_DMA_TX_CTRL_ADDR) & D64_XC_PD) {
+ /*
+ * We *can* disable it, therefore it is supported;
+ * restore control register
+ */
+ writel(control, GMAC0_DMA_TX_CTRL_ADDR);
+ } else {
+ /* Not supported, don't allow it to be enabled */
+ g_dmactrlflags &= ~DMA_CTRL_PEN;
+ }
+ }
+
+ return g_dmactrlflags;
+}
+
+static inline void reg32_clear_bits(uint32_t reg, uint32_t value)
+{
+ uint32_t v = readl(reg);
+ v &= ~(value);
+ writel(v, reg);
+}
+
+static inline void reg32_set_bits(uint32_t reg, uint32_t value)
+{
+ uint32_t v = readl(reg);
+ v |= value;
+ writel(v, reg);
+}
+
+#ifdef BCM_GMAC_DEBUG
+static void dma_tx_dump(struct eth_dma *dma)
+{
+ dma64dd_t *descp = NULL;
+ uint8_t *bufp;
+ int i;
+
+ printf("TX DMA Register:\n");
+ printf("control:0x%x; ptr:0x%x; addrl:0x%x; addrh:0x%x; stat0:0x%x, stat1:0x%x\n",
+ readl(GMAC0_DMA_TX_CTRL_ADDR),
+ readl(GMAC0_DMA_TX_PTR_ADDR),
+ readl(GMAC0_DMA_TX_ADDR_LOW_ADDR),
+ readl(GMAC0_DMA_TX_ADDR_HIGH_ADDR),
+ readl(GMAC0_DMA_TX_STATUS0_ADDR),
+ readl(GMAC0_DMA_TX_STATUS1_ADDR));
+
+ printf("TX Descriptors:\n");
+ for (i = 0; i < TX_BUF_NUM; i++) {
+ descp = (dma64dd_t *)(dma->tx_desc_aligned) + i;
+ printf("ctrl1:0x%08x; ctrl2:0x%08x; addr:0x%x 0x%08x\n",
+ descp->ctrl1, descp->ctrl2,
+ descp->addrhigh, descp->addrlow);
+ }
+
+ printf("TX Buffers:\n");
+ /* Initialize TX DMA descriptor table */
+ for (i = 0; i < TX_BUF_NUM; i++) {
+ bufp = (uint8_t *)(dma->tx_buf + i * TX_BUF_SIZE);
+ printf("buf%d:0x%x; ", i, (uint32_t)bufp);
+ }
+ printf("\n");
+}
+
+static void dma_rx_dump(struct eth_dma *dma)
+{
+ dma64dd_t *descp = NULL;
+ uint8_t *bufp;
+ int i;
+
+ printf("RX DMA Register:\n");
+ printf("control:0x%x; ptr:0x%x; addrl:0x%x; addrh:0x%x; stat0:0x%x, stat1:0x%x\n",
+ readl(GMAC0_DMA_RX_CTRL_ADDR),
+ readl(GMAC0_DMA_RX_PTR_ADDR),
+ readl(GMAC0_DMA_RX_ADDR_LOW_ADDR),
+ readl(GMAC0_DMA_RX_ADDR_HIGH_ADDR),
+ readl(GMAC0_DMA_RX_STATUS0_ADDR),
+ readl(GMAC0_DMA_RX_STATUS1_ADDR));
+
+ printf("RX Descriptors:\n");
+ for (i = 0; i < RX_BUF_NUM; i++) {
+ descp = (dma64dd_t *)(dma->rx_desc_aligned) + i;
+ printf("ctrl1:0x%08x; ctrl2:0x%08x; addr:0x%x 0x%08x\n",
+ descp->ctrl1, descp->ctrl2,
+ descp->addrhigh, descp->addrlow);
+ }
+
+ printf("RX Buffers:\n");
+ for (i = 0; i < RX_BUF_NUM; i++) {
+ bufp = dma->rx_buf + i * RX_BUF_SIZE;
+ printf("buf%d:0x%x; ", i, (uint32_t)bufp);
+ }
+ printf("\n");
+}
+#endif
+
+static int dma_tx_init(struct eth_dma *dma)
+{
+ dma64dd_t *descp = NULL;
+ uint8_t *bufp;
+ int i;
+ uint32_t ctrl;
+
+ debug("%s enter\n", __func__);
+
+ /* clear descriptor memory */
+ memset((void *)(dma->tx_desc_aligned), 0,
+ TX_BUF_NUM * sizeof(dma64dd_t));
+ memset(dma->tx_buf, 0, TX_BUF_NUM * TX_BUF_SIZE);
+
+ /* Initialize TX DMA descriptor table */
+ for (i = 0; i < TX_BUF_NUM; i++) {
+ descp = (dma64dd_t *)(dma->tx_desc_aligned) + i;
+ bufp = dma->tx_buf + i * TX_BUF_SIZE;
+ /* clear buffer memory */
+ memset((void *)bufp, 0, TX_BUF_SIZE);
+
+ ctrl = 0;
+ /* if last descr set endOfTable */
+ if (i == (TX_BUF_NUM-1))
+ ctrl = D64_CTRL1_EOT;
+ descp->ctrl1 = ctrl;
+ descp->ctrl2 = 0;
+ descp->addrlow = (uint32_t)bufp;
+ descp->addrhigh = 0;
+ }
+
+ /* flush descriptor and buffer */
+ descp = dma->tx_desc_aligned;
+ bufp = dma->tx_buf;
+ flush_dcache_range((unsigned long)descp,
+ (unsigned long)(descp +
+ sizeof(dma64dd_t) * TX_BUF_NUM));
+ flush_dcache_range((unsigned long)(bufp),
+ (unsigned long)(bufp + TX_BUF_SIZE * TX_BUF_NUM));
+
+ /* initialize the DMA channel */
+ writel((uint32_t)(dma->tx_desc_aligned), GMAC0_DMA_TX_ADDR_LOW_ADDR);
+ writel(0, GMAC0_DMA_TX_ADDR_HIGH_ADDR);
+
+ /* now update the dma last descriptor */
+ writel(((uint32_t)(dma->tx_desc_aligned)) & D64_XP_LD_MASK,
+ GMAC0_DMA_TX_PTR_ADDR);
+
+ return 0;
+}
+
+static int dma_rx_init(struct eth_dma *dma)
+{
+ uint32_t last_desc;
+ dma64dd_t *descp = NULL;
+ uint8_t *bufp;
+ uint32_t ctrl;
+ int i;
+
+ debug("%s enter\n", __func__);
+
+ /* clear descriptor memory */
+ memset((void *)(dma->rx_desc_aligned), 0,
+ RX_BUF_NUM * sizeof(dma64dd_t));
+ /* clear buffer memory */
+ memset(dma->rx_buf, 0, RX_BUF_NUM * RX_BUF_SIZE);
+
+ /* Initialize RX DMA descriptor table */
+ for (i = 0; i < RX_BUF_NUM; i++) {
+ descp = (dma64dd_t *)(dma->rx_desc_aligned) + i;
+ bufp = dma->rx_buf + i * RX_BUF_SIZE;
+ ctrl = 0;
+ /* if last descr set endOfTable */
+ if (i == (RX_BUF_NUM - 1))
+ ctrl = D64_CTRL1_EOT;
+ descp->ctrl1 = ctrl;
+ descp->ctrl2 = RX_BUF_SIZE;
+ descp->addrlow = (uint32_t)bufp;
+ descp->addrhigh = 0;
+
+ last_desc = ((uint32_t)(descp) & D64_XP_LD_MASK)
+ + sizeof(dma64dd_t);
+ }
+
+ descp = dma->rx_desc_aligned;
+ bufp = dma->rx_buf;
+ /* flush descriptor and buffer */
+ flush_dcache_range((unsigned long)descp,
+ (unsigned long)(descp +
+ sizeof(dma64dd_t) * RX_BUF_NUM));
+ flush_dcache_range((unsigned long)(bufp),
+ (unsigned long)(bufp + RX_BUF_SIZE * RX_BUF_NUM));
+
+ /* initailize the DMA channel */
+ writel((uint32_t)descp, GMAC0_DMA_RX_ADDR_LOW_ADDR);
+ writel(0, GMAC0_DMA_RX_ADDR_HIGH_ADDR);
+
+ /* now update the dma last descriptor */
+ writel(last_desc, GMAC0_DMA_RX_PTR_ADDR);
+
+ return 0;
+}
+
+static int dma_init(struct eth_dma *dma)
+{
+ debug(" %s enter\n", __func__);
+
+ /*
+ * Default flags: For backwards compatibility both
+ * Rx Overflow Continue and Parity are DISABLED.
+ */
+ dma_ctrlflags(DMA_CTRL_ROC | DMA_CTRL_PEN, 0);
+
+ debug("rx burst len 0x%x\n",
+ (readl(GMAC0_DMA_RX_CTRL_ADDR) & D64_RC_BL_MASK)
+ >> D64_RC_BL_SHIFT);
+ debug("tx burst len 0x%x\n",
+ (readl(GMAC0_DMA_TX_CTRL_ADDR) & D64_XC_BL_MASK)
+ >> D64_XC_BL_SHIFT);
+
+ dma_tx_init(dma);
+ dma_rx_init(dma);
+
+ /* From end of chip_init() */
+ /* enable the overflow continue feature and disable parity */
+ dma_ctrlflags(DMA_CTRL_ROC | DMA_CTRL_PEN /* mask */,
+ DMA_CTRL_ROC /* value */);
+
+ return 0;
+}
+
+static int dma_deinit(struct eth_dma *dma)
+{
+ debug(" %s enter\n", __func__);
+
+ gmac_disable_dma(dma, MAC_DMA_RX);
+ gmac_disable_dma(dma, MAC_DMA_TX);
+
+ free(dma->tx_buf);
+ dma->tx_buf = NULL;
+ free(dma->tx_desc);
+ dma->tx_desc = NULL;
+ dma->tx_desc_aligned = NULL;
+
+ free(dma->rx_buf);
+ dma->rx_buf = NULL;
+ free(dma->rx_desc);
+ dma->rx_desc = NULL;
+ dma->rx_desc_aligned = NULL;
+
+ return 0;
+}
+
+int gmac_tx_packet(struct eth_dma *dma, void *packet, int length)
+{
+ uint8_t *bufp = dma->tx_buf + dma->cur_tx_index * TX_BUF_SIZE;
+
+ /* kick off the dma */
+ size_t len = length;
+ int txout = dma->cur_tx_index;
+ uint32_t flags;
+ dma64dd_t *descp = NULL;
+ uint32_t ctrl;
+ uint32_t last_desc = (((uint32_t)dma->tx_desc_aligned) +
+ sizeof(dma64dd_t)) & D64_XP_LD_MASK;
+ size_t buflen;
+
+ debug("%s enter\n", __func__);
+
+ /* load the buffer */
+ memcpy(bufp, packet, len);
+
+ /* Add 4 bytes for Ethernet FCS/CRC */
+ buflen = len + 4;
+
+ ctrl = (buflen & D64_CTRL2_BC_MASK);
+
+ /* the transmit will only be one frame or set SOF, EOF */
+ /* also set int on completion */
+ flags = D64_CTRL1_SOF | D64_CTRL1_IOC | D64_CTRL1_EOF;
+
+ /* txout points to the descriptor to uset */
+ /* if last descriptor then set EOT */
+ if (txout == (TX_BUF_NUM - 1)) {
+ flags |= D64_CTRL1_EOT;
+ last_desc = ((uint32_t)(dma->tx_desc_aligned)) & D64_XP_LD_MASK;
+ }
+
+ /* write the descriptor */
+ descp = ((dma64dd_t *)(dma->tx_desc_aligned)) + txout;
+ descp->addrlow = (uint32_t)bufp;
+ descp->addrhigh = 0;
+ descp->ctrl1 = flags;
+ descp->ctrl2 = ctrl;
+
+ /* flush descriptor and buffer */
+ flush_dcache_range((unsigned long)descp,
+ (unsigned long)(descp + sizeof(dma64dd_t)));
+ flush_dcache_range((unsigned long)bufp,
+ (unsigned long)(bufp + TX_BUF_SIZE));
+
+ /* now update the dma last descriptor */
+ writel(last_desc, GMAC0_DMA_TX_PTR_ADDR);
+
+ /* tx dma should be enabled so packet should go out */
+
+ /* update txout */
+ dma->cur_tx_index = (txout + 1) & (TX_BUF_NUM - 1);
+
+ return 0;
+}
+
+bool gmac_check_tx_done(struct eth_dma *dma)
+{
+ /* wait for tx to complete */
+ uint32_t intstatus;
+ bool xfrdone = false;
+
+ debug("%s enter\n", __func__);
+
+ intstatus = readl(GMAC0_INT_STATUS_ADDR);
+
+ debug("int(0x%x)\n", intstatus);
+ if (intstatus & (I_XI0 | I_XI1 | I_XI2 | I_XI3)) {
+ xfrdone = true;
+ /* clear the int bits */
+ intstatus &= ~(I_XI0 | I_XI1 | I_XI2 | I_XI3);
+ writel(intstatus, GMAC0_INT_STATUS_ADDR);
+ } else {
+ debug("Tx int(0x%x)\n", intstatus);
+ }
+
+ return xfrdone;
+}
+
+int gmac_check_rx_done(struct eth_dma *dma, uint8_t *buf)
+{
+ void *bufp, *datap;
+ size_t rcvlen = 0, buflen = 0;
+ uint32_t stat0 = 0, stat1 = 0;
+ uint32_t control, offset;
+ uint8_t statbuf[HWRXOFF*2];
+
+ int index, curr, active;
+ dma64dd_t *descp = NULL;
+
+ /* udelay(50); */
+
+ /*
+ * this api will check if a packet has been received.
+ * If so it will return the address of the buffer and current
+ * descriptor index will be incremented to the
+ * next descriptor. Once done with the frame the buffer should be
+ * added back onto the descriptor and the lastdscr should be updated
+ * to this descriptor.
+ */
+ index = dma->cur_rx_index;
+ offset = (uint32_t)(dma->rx_desc_aligned);
+ stat0 = readl(GMAC0_DMA_RX_STATUS0_ADDR) & D64_RS0_CD_MASK;
+ stat1 = readl(GMAC0_DMA_RX_STATUS1_ADDR) & D64_RS0_CD_MASK;
+ curr = ((stat0 - offset) & D64_RS0_CD_MASK) / sizeof(dma64dd_t);
+ active = ((stat1 - offset) & D64_RS0_CD_MASK) / sizeof(dma64dd_t);
+
+ /* check if any frame */
+ if (index == curr)
+ return -1;
+
+ debug("received packet\n");
+ debug("expect(0x%x) curr(0x%x) active(0x%x)\n", index, curr, active);
+ /* remove warning */
+ if (index == active)
+ ;
+
+ /* get the packet pointer that corresponds to the rx descriptor */
+ bufp = dma->rx_buf + index * RX_BUF_SIZE;
+
+ descp = (dma64dd_t *)(dma->rx_desc_aligned) + index;
+ /* flush descriptor and buffer */
+ flush_dcache_range((unsigned long)descp,
+ (unsigned long)(descp + sizeof(dma64dd_t)));
+ flush_dcache_range((unsigned long)bufp,
+ (unsigned long)(bufp + RX_BUF_SIZE));
+
+ buflen = (descp->ctrl2 & D64_CTRL2_BC_MASK);
+
+ stat0 = readl(GMAC0_DMA_RX_STATUS0_ADDR);
+ stat1 = readl(GMAC0_DMA_RX_STATUS1_ADDR);
+
+ debug("bufp(0x%x) index(0x%x) buflen(0x%x) stat0(0x%x) stat1(0x%x)\n",
+ (uint32_t)bufp, index, buflen, stat0, stat1);
+
+ dma->cur_rx_index = (index + 1) & (RX_BUF_NUM - 1);
+
+ /* get buffer offset */
+ control = readl(GMAC0_DMA_RX_CTRL_ADDR);
+ offset = (control & D64_RC_RO_MASK) >> D64_RC_RO_SHIFT;
+ rcvlen = *(uint16_t *)bufp;
+
+ debug("Received %d bytes\n", rcvlen);
+ /* copy status into temp buf then copy data from rx buffer */
+ memcpy(statbuf, bufp, offset);
+ datap = (void *)((uint32_t)bufp + offset);
+ memcpy(buf, datap, rcvlen);
+
+ /* update descriptor that is being added back on ring */
+ descp->ctrl2 = RX_BUF_SIZE;
+ descp->addrlow = (uint32_t)bufp;
+ descp->addrhigh = 0;
+ /* flush descriptor */
+ flush_dcache_range((unsigned long)descp,
+ (unsigned long)(descp + sizeof(dma64dd_t)));
+
+ /* set the lastdscr for the rx ring */
+ writel(((uint32_t)descp) & D64_XP_LD_MASK, GMAC0_DMA_RX_PTR_ADDR);
+
+ return (int)rcvlen;
+}
+
+static int gmac_disable_dma(struct eth_dma *dma, int dir)
+{
+ int status;
+
+ debug("%s enter\n", __func__);
+
+ if (dir == MAC_DMA_TX) {
+ /* address PR8249/PR7577 issue */
+ /* suspend tx DMA first */
+ writel(D64_XC_SE, GMAC0_DMA_TX_CTRL_ADDR);
+ SPINWAIT(((status = (readl(GMAC0_DMA_TX_STATUS0_ADDR) &
+ D64_XS0_XS_MASK)) !=
+ D64_XS0_XS_DISABLED) &&
+ (status != D64_XS0_XS_IDLE) &&
+ (status != D64_XS0_XS_STOPPED), 10000);
+
+ /*
+ * PR2414 WAR: DMA engines are not disabled until
+ * transfer finishes
+ */
+ writel(0, GMAC0_DMA_TX_CTRL_ADDR);
+ SPINWAIT(((status = (readl(GMAC0_DMA_TX_STATUS0_ADDR) &
+ D64_XS0_XS_MASK)) !=
+ D64_XS0_XS_DISABLED), 10000);
+
+ /* wait for the last transaction to complete */
+ udelay(2);
+
+ status = (status == D64_XS0_XS_DISABLED);
+ } else {
+ /*
+ * PR2414 WAR: DMA engines are not disabled until
+ * transfer finishes
+ */
+ writel(0, GMAC0_DMA_RX_CTRL_ADDR);
+ SPINWAIT(((status = (readl(GMAC0_DMA_RX_STATUS0_ADDR) &
+ D64_RS0_RS_MASK)) !=
+ D64_RS0_RS_DISABLED), 10000);
+
+ status = (status == D64_RS0_RS_DISABLED);
+ }
+
+ return status;
+}
+
+static int gmac_enable_dma(struct eth_dma *dma, int dir)
+{
+ uint32_t control;
+
+ debug("%s enter\n", __func__);
+
+ if (dir == MAC_DMA_TX) {
+ dma->cur_tx_index = 0;
+
+ /*
+ * These bits 20:18 (burstLen) of control register can be
+ * written but will take effect only if these bits are
+ * valid. So this will not affect previous versions
+ * of the DMA. They will continue to have those bits set to 0.
+ */
+ control = readl(GMAC0_DMA_TX_CTRL_ADDR);
+
+ control |= D64_XC_XE;
+ if ((g_dmactrlflags & DMA_CTRL_PEN) == 0)
+ control |= D64_XC_PD;
+
+ writel(control, GMAC0_DMA_TX_CTRL_ADDR);
+
+ /* initailize the DMA channel */
+ writel((uint32_t)(dma->tx_desc_aligned),
+ GMAC0_DMA_TX_ADDR_LOW_ADDR);
+ writel(0, GMAC0_DMA_TX_ADDR_HIGH_ADDR);
+ } else {
+ dma->cur_rx_index = 0;
+
+ control = (readl(GMAC0_DMA_RX_CTRL_ADDR) &
+ D64_RC_AE) | D64_RC_RE;
+
+ if ((g_dmactrlflags & DMA_CTRL_PEN) == 0)
+ control |= D64_RC_PD;
+
+ if (g_dmactrlflags & DMA_CTRL_ROC)
+ control |= D64_RC_OC;
+
+ /*
+ * These bits 20:18 (burstLen) of control register can be
+ * written but will take effect only if these bits are
+ * valid. So this will not affect previous versions
+ * of the DMA. They will continue to have those bits set to 0.
+ */
+ control &= ~D64_RC_BL_MASK;
+ /* Keep default Rx burstlen */
+ control |= readl(GMAC0_DMA_RX_CTRL_ADDR) & D64_RC_BL_MASK;
+ control |= HWRXOFF << D64_RC_RO_SHIFT;
+
+ writel(control, GMAC0_DMA_RX_CTRL_ADDR);
+
+ /*
+ * the rx descriptor ring should have
+ * the addresses set properly;
+ * set the lastdscr for the rx ring
+ */
+ writel(((uint32_t)(dma->rx_desc_aligned) +
+ (RX_BUF_NUM - 1) * RX_BUF_SIZE) &
+ D64_XP_LD_MASK, GMAC0_DMA_RX_PTR_ADDR);
+ }
+
+ return 0;
+}
+
+bool gmac_mii_busywait(unsigned int timeout)
+{
+ uint32_t tmp = 0;
+
+ while (timeout > 10) {
+ tmp = readl(GMAC_MII_CTRL_ADDR);
+ if (tmp & (1 << GMAC_MII_BUSY_SHIFT)) {
+ udelay(10);
+ timeout -= 10;
+ } else {
+ break;
+ }
+ }
+ return tmp & (1 << GMAC_MII_BUSY_SHIFT);
+}
+
+int gmac_miiphy_read(const char *devname, unsigned char phyaddr,
+ unsigned char reg, unsigned short *value)
+{
+ uint32_t tmp = 0;
+
+ (void)devname;
+
+ /* Busy wait timeout is 1ms */
+ if (gmac_mii_busywait(1000)) {
+ error("%s: Prepare MII read: MII/MDIO busy\n", __func__);
+ return -1;
+ }
+
+ /* Read operation */
+ tmp = GMAC_MII_DATA_READ_CMD;
+ tmp |= (phyaddr << GMAC_MII_PHY_ADDR_SHIFT) |
+ (reg << GMAC_MII_PHY_REG_SHIFT);
+ debug("MII read cmd 0x%x, phy 0x%x, reg 0x%x\n", tmp, phyaddr, reg);
+ writel(tmp, GMAC_MII_DATA_ADDR);
+
+ if (gmac_mii_busywait(1000)) {
+ error("%s: MII read failure: MII/MDIO busy\n", __func__);
+ return -1;
+ }
+
+ *value = readl(GMAC_MII_DATA_ADDR) & 0xffff;
+ debug("MII read data 0x%x\n", *value);
+ return 0;
+}
+
+int gmac_miiphy_write(const char *devname, unsigned char phyaddr,
+ unsigned char reg, unsigned short value)
+{
+ uint32_t tmp = 0;
+
+ (void)devname;
+
+ /* Busy wait timeout is 1ms */
+ if (gmac_mii_busywait(1000)) {
+ error("%s: Prepare MII write: MII/MDIO busy\n", __func__);
+ return -1;
+ }
+
+ /* Write operation */
+ tmp = GMAC_MII_DATA_WRITE_CMD | (value & 0xffff);
+ tmp |= ((phyaddr << GMAC_MII_PHY_ADDR_SHIFT) |
+ (reg << GMAC_MII_PHY_REG_SHIFT));
+ debug("MII write cmd 0x%x, phy 0x%x, reg 0x%x, data 0x%x\n",
+ tmp, phyaddr, reg, value);
+ writel(tmp, GMAC_MII_DATA_ADDR);
+
+ if (gmac_mii_busywait(1000)) {
+ error("%s: MII write failure: MII/MDIO busy\n", __func__);
+ return -1;
+ }
+
+ return 0;
+}
+
+void gmac_init_reset(void)
+{
+ debug("%s enter\n", __func__);
+
+ /* set command config reg CC_SR */
+ reg32_set_bits(UNIMAC0_CMD_CFG_ADDR, CC_SR);
+ udelay(GMAC_RESET_DELAY);
+}
+
+void gmac_clear_reset(void)
+{
+ debug("%s enter\n", __func__);
+
+ /* clear command config reg CC_SR */
+ reg32_clear_bits(UNIMAC0_CMD_CFG_ADDR, CC_SR);
+ udelay(GMAC_RESET_DELAY);
+}
+
+static void gmac_enable_local(bool en)
+{
+ uint32_t cmdcfg;
+
+ debug("%s enter\n", __func__);
+
+ /* read command config reg */
+ cmdcfg = readl(UNIMAC0_CMD_CFG_ADDR);
+
+ /* put mac in reset */
+ gmac_init_reset();
+
+ cmdcfg |= CC_SR;
+
+ /* first deassert rx_ena and tx_ena while in reset */
+ cmdcfg &= ~(CC_RE | CC_TE);
+ /* write command config reg */
+ writel(cmdcfg, UNIMAC0_CMD_CFG_ADDR);
+
+ /* bring mac out of reset */
+ gmac_clear_reset();
+
+ /* if not enable exit now */
+ if (!en)
+ return;
+
+ /* enable the mac transmit and receive paths now */
+ udelay(2);
+ cmdcfg &= ~CC_SR;
+ cmdcfg |= (CC_RE | CC_TE);
+
+ /* assert rx_ena and tx_ena when out of reset to enable the mac */
+ writel(cmdcfg, UNIMAC0_CMD_CFG_ADDR);
+
+ return;
+}
+
+int gmac_enable(void)
+{
+ gmac_enable_local(1);
+
+ /* clear interrupts */
+ writel(I_INTMASK, GMAC0_INT_STATUS_ADDR);
+ return 0;
+}
+
+int gmac_disable(void)
+{
+ gmac_enable_local(0);
+ return 0;
+}
+
+int gmac_set_speed(int speed, int duplex)
+{
+ uint32_t cmdcfg;
+ uint32_t hd_ena;
+ uint32_t speed_cfg;
+
+ hd_ena = duplex ? 0 : CC_HD;
+ if (speed == 1000) {
+ speed_cfg = 2;
+ } else if (speed == 100) {
+ speed_cfg = 1;
+ } else if (speed == 10) {
+ speed_cfg = 0;
+ } else {
+ error("%s: Invalid GMAC speed(%d)!\n", __func__, speed);
+ return -1;
+ }
+
+ cmdcfg = readl(UNIMAC0_CMD_CFG_ADDR);
+ cmdcfg &= ~(CC_ES_MASK | CC_HD);
+ cmdcfg |= ((speed_cfg << CC_ES_SHIFT) | hd_ena);
+
+ printf("Change GMAC speed to %dMB\n", speed);
+ debug("GMAC speed cfg 0x%x\n", cmdcfg);
+ writel(cmdcfg, UNIMAC0_CMD_CFG_ADDR);
+
+ return 0;
+}
+
+int gmac_set_mac_addr(unsigned char *mac)
+{
+ /* set our local address */
+ debug("GMAC: %02x:%02x:%02x:%02x:%02x:%02x\n",
+ mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
+ writel(htonl(*(uint32_t *)mac), UNIMAC0_MAC_MSB_ADDR);
+ writew(htons(*(uint32_t *)&mac[4]), UNIMAC0_MAC_LSB_ADDR);
+
+ return 0;
+}
+
+int gmac_mac_init(struct eth_device *dev)
+{
+ struct eth_info *eth = (struct eth_info *)(dev->priv);
+ struct eth_dma *dma = &(eth->dma);
+
+ uint32_t tmp;
+ uint32_t cmdcfg;
+ int chipid;
+
+ debug("%s enter\n", __func__);
+
+ /* Always use GMAC0 */
+ printf("Using GMAC%d\n", 0);
+
+ /* Reset AMAC0 core */
+ writel(0, AMAC0_IDM_RESET_ADDR);
+ tmp = readl(AMAC0_IO_CTRL_DIRECT_ADDR);
+ /* Set clock */
+ tmp &= ~(1 << AMAC0_IO_CTRL_CLK_250_SEL_SHIFT);
+ tmp |= (1 << AMAC0_IO_CTRL_GMII_MODE_SHIFT);
+ /* Set Tx clock */
+ tmp &= ~(1 << AMAC0_IO_CTRL_DEST_SYNC_MODE_EN_SHIFT);
+ writel(tmp, AMAC0_IO_CTRL_DIRECT_ADDR);
+
+ /* reset gmac */
+ /*
+ * As AMAC is just reset, NO need?
+ * set eth_data into loopback mode to ensure no rx traffic
+ * gmac_loopback(eth_data, TRUE);
+ * ET_TRACE(("%s gmac loopback\n", __func__));
+ * udelay(1);
+ */
+
+ cmdcfg = readl(UNIMAC0_CMD_CFG_ADDR);
+ cmdcfg &= ~(CC_TE | CC_RE | CC_RPI | CC_TAI | CC_HD | CC_ML |
+ CC_CFE | CC_RL | CC_RED | CC_PE | CC_TPI |
+ CC_PAD_EN | CC_PF);
+ cmdcfg |= (CC_PROM | CC_NLC | CC_CFE);
+ /* put mac in reset */
+ gmac_init_reset();
+ writel(cmdcfg, UNIMAC0_CMD_CFG_ADDR);
+ gmac_clear_reset();
+
+ /* enable clear MIB on read */
+ reg32_set_bits(GMAC0_DEV_CTRL_ADDR, DC_MROR);
+ /* PHY: set smi_master to drive mdc_clk */
+ reg32_set_bits(GMAC0_PHY_CTRL_ADDR, PC_MTE);
+
+ /* clear persistent sw intstatus */
+ writel(0, GMAC0_INT_STATUS_ADDR);
+
+ if (dma_init(dma) < 0) {
+ error("%s: GMAC dma_init failed\n", __func__);
+ goto err_exit;
+ }
+
+ chipid = CHIPID;
+ printf("%s: Chip ID: 0x%x\n", __func__, chipid);
+
+ /* set switch bypass mode */
+ tmp = readl(SWITCH_GLOBAL_CONFIG_ADDR);
+ tmp |= (1 << CDRU_SWITCH_BYPASS_SWITCH_SHIFT);
+
+ /* Switch mode */
+ /* tmp &= ~(1 << CDRU_SWITCH_BYPASS_SWITCH_SHIFT); */
+
+ writel(tmp, SWITCH_GLOBAL_CONFIG_ADDR);
+
+ tmp = readl(CRMU_CHIP_IO_PAD_CONTROL_ADDR);
+ tmp &= ~(1 << CDRU_IOMUX_FORCE_PAD_IN_SHIFT);
+ writel(tmp, CRMU_CHIP_IO_PAD_CONTROL_ADDR);
+
+ /* Set MDIO to internal GPHY */
+ tmp = readl(GMAC_MII_CTRL_ADDR);
+ /* Select internal MDC/MDIO bus*/
+ tmp &= ~(1 << GMAC_MII_CTRL_BYP_SHIFT);
+ /* select MDC/MDIO connecting to on-chip internal PHYs */
+ tmp &= ~(1 << GMAC_MII_CTRL_EXT_SHIFT);
+ /*
+ * give bit[6:0](MDCDIV) with required divisor to set
+ * the MDC clock frequency, 66MHZ/0x1A=2.5MHZ
+ */
+ tmp |= 0x1A;
+
+ writel(tmp, GMAC_MII_CTRL_ADDR);
+
+ if (gmac_mii_busywait(1000)) {
+ error("%s: Configure MDIO: MII/MDIO busy\n", __func__);
+ goto err_exit;
+ }
+
+ /* Configure GMAC0 */
+ /* enable one rx interrupt per received frame */
+ writel(1 << GMAC0_IRL_FRAMECOUNT_SHIFT, GMAC0_INTR_RECV_LAZY_ADDR);
+
+ /* read command config reg */
+ cmdcfg = readl(UNIMAC0_CMD_CFG_ADDR);
+ /* enable 802.3x tx flow control (honor received PAUSE frames) */
+ cmdcfg &= ~CC_RPI;
+ /* enable promiscuous mode */
+ cmdcfg |= CC_PROM;
+ /* Disable loopback mode */
+ cmdcfg &= ~CC_ML;
+ /* set the speed */
+ cmdcfg &= ~(CC_ES_MASK | CC_HD);
+ /* Set to 1Gbps and full duplex by default */
+ cmdcfg |= (2 << CC_ES_SHIFT);
+
+ /* put mac in reset */
+ gmac_init_reset();
+ /* write register */
+ writel(cmdcfg, UNIMAC0_CMD_CFG_ADDR);
+ /* bring mac out of reset */
+ gmac_clear_reset();
+
+ /* set max frame lengths; account for possible vlan tag */
+ writel(PKTSIZE + 32, UNIMAC0_FRM_LENGTH_ADDR);
+
+ return 0;
+
+err_exit:
+ dma_deinit(dma);
+ return -1;
+}
+
+int gmac_add(struct eth_device *dev)
+{
+ struct eth_info *eth = (struct eth_info *)(dev->priv);
+ struct eth_dma *dma = &(eth->dma);
+ void *tmp;
+
+ /*
+ * Desc has to be 16-byte aligned ?
+ * If it is 8-byte aligned by malloc, fail Tx
+ */
+ tmp = malloc(sizeof(dma64dd_t) * TX_BUF_NUM + 8);
+ if (tmp == NULL) {
+ printf("%s: Failed to allocate TX desc Buffer\n", __func__);
+ return -1;
+ }
+
+ dma->tx_desc = (void *)tmp;
+ dma->tx_desc_aligned = (void *)(((uint32_t)tmp) & (~0xf));
+ debug("TX Descriptor Buffer: %p; length: 0x%x\n",
+ dma->tx_desc_aligned, sizeof(dma64dd_t) * TX_BUF_NUM);
+
+ tmp = malloc(TX_BUF_SIZE * TX_BUF_NUM);
+ if (tmp == NULL) {
+ printf("%s: Failed to allocate TX Data Buffer\n", __func__);
+ free(dma->tx_desc);
+ return -1;
+ }
+ dma->tx_buf = (uint8_t *)tmp;
+ debug("TX Data Buffer: %p; length: 0x%x\n",
+ dma->tx_buf, TX_BUF_SIZE * TX_BUF_NUM);
+
+ /* Desc has to be 16-byte aligned ? */
+ tmp = malloc(sizeof(dma64dd_t) * RX_BUF_NUM + 8);
+ if (tmp == NULL) {
+ printf("%s: Failed to allocate RX Descriptor\n", __func__);
+ free(dma->tx_desc);
+ free(dma->tx_buf);
+ return -1;
+ }
+ dma->rx_desc = tmp;
+ dma->rx_desc_aligned = (void *)(((uint32_t)tmp) & (~0xf));
+ debug("RX Descriptor Buffer: %p, length: 0x%x\n",
+ dma->rx_desc_aligned, sizeof(dma64dd_t) * RX_BUF_NUM);
+
+ tmp = malloc(RX_BUF_SIZE * RX_BUF_NUM);
+ if (tmp == NULL) {
+ printf("%s: Failed to allocate RX Data Buffer\n", __func__);
+ free(dma->tx_desc);
+ free(dma->tx_buf);
+ free(dma->rx_desc);
+ return -1;
+ }
+ dma->rx_buf = tmp;
+ debug("RX Data Buffer: %p; length: 0x%x\n",
+ dma->rx_buf, RX_BUF_SIZE * RX_BUF_NUM);
+
+ g_dmactrlflags = 0;
+
+ eth->phy_interface = PHY_INTERFACE_MODE_GMII;
+
+ dma->tx_packet = gmac_tx_packet;
+ dma->check_tx_done = gmac_check_tx_done;
+
+ dma->check_rx_done = gmac_check_rx_done;
+
+ dma->enable_dma = gmac_enable_dma;
+ dma->disable_dma = gmac_disable_dma;
+
+ eth->miiphy_read = gmac_miiphy_read;
+ eth->miiphy_write = gmac_miiphy_write;
+
+ eth->mac_init = gmac_mac_init;
+ eth->disable_mac = gmac_disable;
+ eth->enable_mac = gmac_enable;
+ eth->set_mac_addr = gmac_set_mac_addr;
+ eth->set_mac_speed = gmac_set_speed;
+
+ return 0;
+}
diff --git a/drivers/net/bcm-sf2-eth-gmac.h b/drivers/net/bcm-sf2-eth-gmac.h
new file mode 100644
index 0000000..810a61726
--- /dev/null
+++ b/drivers/net/bcm-sf2-eth-gmac.h
@@ -0,0 +1,224 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef _BCM_SF2_ETH_GMAC_H_
+#define _BCM_SF2_ETH_GMAC_H_
+
+#define BCM_SF2_ETH_MAC_NAME "gmac"
+
+#ifndef ETHHW_PORT_INT
+#define ETHHW_PORT_INT 8
+#endif
+
+#define GMAC0_REG_BASE 0x18042000
+#define GMAC0_DEV_CTRL_ADDR GMAC0_REG_BASE
+#define GMAC0_INT_STATUS_ADDR (GMAC0_REG_BASE + 0x020)
+#define GMAC0_INTR_RECV_LAZY_ADDR (GMAC0_REG_BASE + 0x100)
+#define GMAC0_PHY_CTRL_ADDR (GMAC0_REG_BASE + 0x188)
+
+
+#define GMAC_DMA_PTR_OFFSET 0x04
+#define GMAC_DMA_ADDR_LOW_OFFSET 0x08
+#define GMAC_DMA_ADDR_HIGH_OFFSET 0x0c
+#define GMAC_DMA_STATUS0_OFFSET 0x10
+#define GMAC_DMA_STATUS1_OFFSET 0x14
+
+#define GMAC0_DMA_TX_CTRL_ADDR (GMAC0_REG_BASE + 0x200)
+#define GMAC0_DMA_TX_PTR_ADDR \
+ (GMAC0_DMA_TX_CTRL_ADDR + GMAC_DMA_PTR_OFFSET)
+#define GMAC0_DMA_TX_ADDR_LOW_ADDR \
+ (GMAC0_DMA_TX_CTRL_ADDR + GMAC_DMA_ADDR_LOW_OFFSET)
+#define GMAC0_DMA_TX_ADDR_HIGH_ADDR \
+ (GMAC0_DMA_TX_CTRL_ADDR + GMAC_DMA_ADDR_HIGH_OFFSET)
+#define GMAC0_DMA_TX_STATUS0_ADDR \
+ (GMAC0_DMA_TX_CTRL_ADDR + GMAC_DMA_STATUS0_OFFSET)
+#define GMAC0_DMA_TX_STATUS1_ADDR \
+ (GMAC0_DMA_TX_CTRL_ADDR + GMAC_DMA_STATUS1_OFFSET)
+
+#define GMAC0_DMA_RX_CTRL_ADDR (GMAC0_REG_BASE + 0x220)
+#define GMAC0_DMA_RX_PTR_ADDR \
+ (GMAC0_DMA_RX_CTRL_ADDR + GMAC_DMA_PTR_OFFSET)
+#define GMAC0_DMA_RX_ADDR_LOW_ADDR \
+ (GMAC0_DMA_RX_CTRL_ADDR + GMAC_DMA_ADDR_LOW_OFFSET)
+#define GMAC0_DMA_RX_ADDR_HIGH_ADDR \
+ (GMAC0_DMA_RX_CTRL_ADDR + GMAC_DMA_ADDR_HIGH_OFFSET)
+#define GMAC0_DMA_RX_STATUS0_ADDR \
+ (GMAC0_DMA_RX_CTRL_ADDR + GMAC_DMA_STATUS0_OFFSET)
+#define GMAC0_DMA_RX_STATUS1_ADDR \
+ (GMAC0_DMA_RX_CTRL_ADDR + GMAC_DMA_STATUS1_OFFSET)
+
+#define UNIMAC0_CMD_CFG_ADDR (GMAC0_REG_BASE + 0x808)
+#define UNIMAC0_MAC_MSB_ADDR (GMAC0_REG_BASE + 0x80c)
+#define UNIMAC0_MAC_LSB_ADDR (GMAC0_REG_BASE + 0x810)
+#define UNIMAC0_FRM_LENGTH_ADDR (GMAC0_REG_BASE + 0x814)
+
+#define GMAC0_IRL_FRAMECOUNT_SHIFT 24
+
+/* transmit channel control */
+/* transmit enable */
+#define D64_XC_XE 0x00000001
+/* transmit suspend request */
+#define D64_XC_SE 0x00000002
+/* parity check disable */
+#define D64_XC_PD 0x00000800
+/* BurstLen bits */
+#define D64_XC_BL_MASK 0x001C0000
+#define D64_XC_BL_SHIFT 18
+
+/* transmit descriptor table pointer */
+/* last valid descriptor */
+#define D64_XP_LD_MASK 0x00001fff
+
+/* transmit channel status */
+/* transmit state */
+#define D64_XS0_XS_MASK 0xf0000000
+#define D64_XS0_XS_SHIFT 28
+#define D64_XS0_XS_DISABLED 0x00000000
+#define D64_XS0_XS_ACTIVE 0x10000000
+#define D64_XS0_XS_IDLE 0x20000000
+#define D64_XS0_XS_STOPPED 0x30000000
+#define D64_XS0_XS_SUSP 0x40000000
+
+/* receive channel control */
+/* receive enable */
+#define D64_RC_RE 0x00000001
+/* address extension bits */
+#define D64_RC_AE 0x00030000
+/* overflow continue */
+#define D64_RC_OC 0x00000400
+/* parity check disable */
+#define D64_RC_PD 0x00000800
+/* receive frame offset */
+#define D64_RC_RO_MASK 0x000000fe
+#define D64_RC_RO_SHIFT 1
+/* BurstLen bits */
+#define D64_RC_BL_MASK 0x001C0000
+#define D64_RC_BL_SHIFT 18
+
+/* flags for dma controller */
+/* partity enable */
+#define DMA_CTRL_PEN (1 << 0)
+/* rx overflow continue */
+#define DMA_CTRL_ROC (1 << 1)
+
+/* receive descriptor table pointer */
+/* last valid descriptor */
+#define D64_RP_LD_MASK 0x00001fff
+
+/* receive channel status */
+/* current descriptor pointer */
+#define D64_RS0_CD_MASK 0x00001fff
+/* receive state */
+#define D64_RS0_RS_MASK 0xf0000000
+#define D64_RS0_RS_SHIFT 28
+#define D64_RS0_RS_DISABLED 0x00000000
+#define D64_RS0_RS_ACTIVE 0x10000000
+#define D64_RS0_RS_IDLE 0x20000000
+#define D64_RS0_RS_STOPPED 0x30000000
+#define D64_RS0_RS_SUSP 0x40000000
+
+/* descriptor control flags 1 */
+/* core specific flags */
+#define D64_CTRL_COREFLAGS 0x0ff00000
+/* end of descriptor table */
+#define D64_CTRL1_EOT ((uint32_t)1 << 28)
+/* interrupt on completion */
+#define D64_CTRL1_IOC ((uint32_t)1 << 29)
+/* end of frame */
+#define D64_CTRL1_EOF ((uint32_t)1 << 30)
+/* start of frame */
+#define D64_CTRL1_SOF ((uint32_t)1 << 31)
+
+/* descriptor control flags 2 */
+/* buffer byte count. real data len must <= 16KB */
+#define D64_CTRL2_BC_MASK 0x00007fff
+/* address extension bits */
+#define D64_CTRL2_AE 0x00030000
+#define D64_CTRL2_AE_SHIFT 16
+/* parity bit */
+#define D64_CTRL2_PARITY 0x00040000
+/* control flags in the range [27:20] are core-specific and not defined here */
+#define D64_CTRL_CORE_MASK 0x0ff00000
+
+#define DC_MROR 0x00000010
+#define PC_MTE 0x00800000
+
+/* command config */
+#define CC_TE 0x00000001
+#define CC_RE 0x00000002
+#define CC_ES_MASK 0x0000000c
+#define CC_ES_SHIFT 2
+#define CC_PROM 0x00000010
+#define CC_PAD_EN 0x00000020
+#define CC_CF 0x00000040
+#define CC_PF 0x00000080
+#define CC_RPI 0x00000100
+#define CC_TAI 0x00000200
+#define CC_HD 0x00000400
+#define CC_HD_SHIFT 10
+#define CC_SR 0x00002000
+#define CC_ML 0x00008000
+#define CC_AE 0x00400000
+#define CC_CFE 0x00800000
+#define CC_NLC 0x01000000
+#define CC_RL 0x02000000
+#define CC_RED 0x04000000
+#define CC_PE 0x08000000
+#define CC_TPI 0x10000000
+#define CC_AT 0x20000000
+
+#define I_PDEE 0x00000400
+#define I_PDE 0x00000800
+#define I_DE 0x00001000
+#define I_RDU 0x00002000
+#define I_RFO 0x00004000
+#define I_XFU 0x00008000
+#define I_RI 0x00010000
+#define I_XI0 0x01000000
+#define I_XI1 0x02000000
+#define I_XI2 0x04000000
+#define I_XI3 0x08000000
+#define I_ERRORS (I_PDEE | I_PDE | I_DE | I_RDU | I_RFO | I_XFU)
+#define DEF_INTMASK (I_XI0 | I_XI1 | I_XI2 | I_XI3 | I_RI | I_ERRORS)
+
+#define I_INTMASK 0x0f01fcff
+
+#define CHIP_DRU_BASE 0x0301d000
+#define CRMU_CHIP_IO_PAD_CONTROL_ADDR (CHIP_DRU_BASE + 0x0bc)
+#define SWITCH_GLOBAL_CONFIG_ADDR (CHIP_DRU_BASE + 0x194)
+
+#define CDRU_IOMUX_FORCE_PAD_IN_SHIFT 0
+#define CDRU_SWITCH_BYPASS_SWITCH_SHIFT 13
+
+#define AMAC0_IDM_RESET_ADDR 0x18110800
+#define AMAC0_IO_CTRL_DIRECT_ADDR 0x18110408
+#define AMAC0_IO_CTRL_CLK_250_SEL_SHIFT 6
+#define AMAC0_IO_CTRL_GMII_MODE_SHIFT 5
+#define AMAC0_IO_CTRL_DEST_SYNC_MODE_EN_SHIFT 3
+
+#define CHIPA_CHIP_ID_ADDR 0x18000000
+#define CHIPID (readl(CHIPA_CHIP_ID_ADDR) & 0xFFFF)
+#define CHIPREV (((readl(CHIPA_CHIP_ID_ADDR) >> 16) & 0xF)
+#define CHIPSKU (((readl(CHIPA_CHIP_ID_ADDR) >> 20) & 0xF)
+
+#define GMAC_MII_CTRL_ADDR 0x18002000
+#define GMAC_MII_CTRL_BYP_SHIFT 10
+#define GMAC_MII_CTRL_EXT_SHIFT 9
+#define GMAC_MII_DATA_ADDR 0x18002004
+#define GMAC_MII_DATA_READ_CMD 0x60020000
+#define GMAC_MII_DATA_WRITE_CMD 0x50020000
+#define GMAC_MII_BUSY_SHIFT 8
+#define GMAC_MII_PHY_ADDR_SHIFT 23
+#define GMAC_MII_PHY_REG_SHIFT 18
+
+#define GMAC_RESET_DELAY 2
+#define HWRXOFF 30
+#define MAXNAMEL 8
+#define NUMTXQ 4
+
+int gmac_add(struct eth_device *dev);
+
+#endif /* _BCM_SF2_ETH_GMAC_H_ */
diff --git a/drivers/net/bcm-sf2-eth.c b/drivers/net/bcm-sf2-eth.c
new file mode 100644
index 0000000..5252d49
--- /dev/null
+++ b/drivers/net/bcm-sf2-eth.c
@@ -0,0 +1,268 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <malloc.h>
+#include <net.h>
+#include <config.h>
+
+#include <phy.h>
+#include <miiphy.h>
+
+#include <asm/io.h>
+
+#include <netdev.h>
+#include "bcm-sf2-eth.h"
+
+#if defined(CONFIG_BCM_SF2_ETH_GMAC)
+#include "bcm-sf2-eth-gmac.h"
+#else
+#error "bcm_sf2_eth: NEED to define a MAC!"
+#endif
+
+#define BCM_NET_MODULE_DESCRIPTION "Broadcom Starfighter2 Ethernet driver"
+#define BCM_NET_MODULE_VERSION "0.1"
+#define BCM_SF2_ETH_DEV_NAME "bcm_sf2"
+
+static const char banner[] =
+ BCM_NET_MODULE_DESCRIPTION " " BCM_NET_MODULE_VERSION "\n";
+
+static int bcm_sf2_eth_init(struct eth_device *dev)
+{
+ struct eth_info *eth = (struct eth_info *)(dev->priv);
+ struct eth_dma *dma = &(eth->dma);
+ struct phy_device *phydev;
+ int rc = 0;
+ int i;
+
+ rc = eth->mac_init(dev);
+ if (rc) {
+ error("%s: Couldn't cofigure MAC!\n", __func__);
+ return rc;
+ }
+
+ /* disable DMA */
+ dma->disable_dma(dma, MAC_DMA_RX);
+ dma->disable_dma(dma, MAC_DMA_TX);
+
+ eth->port_num = 0;
+ debug("Connecting PHY 0...\n");
+ phydev = phy_connect(miiphy_get_dev_by_name(dev->name),
+ 0, dev, eth->phy_interface);
+ if (phydev != NULL) {
+ eth->port[0] = phydev;
+ eth->port_num += 1;
+ } else {
+ debug("No PHY found for port 0\n");
+ }
+
+ for (i = 0; i < eth->port_num; i++)
+ phy_config(eth->port[i]);
+
+ return rc;
+}
+
+/*
+ * u-boot net functions
+ */
+
+static int bcm_sf2_eth_send(struct eth_device *dev, void *packet, int length)
+{
+ struct eth_dma *dma = &(((struct eth_info *)(dev->priv))->dma);
+ uint8_t *buf = (uint8_t *)packet;
+ int rc = 0;
+ int i = 0;
+
+ debug("%s enter\n", __func__);
+
+ /* load buf and start transmit */
+ rc = dma->tx_packet(dma, buf, length);
+ if (rc) {
+ debug("ERROR - Tx failed\n");
+ return rc;
+ }
+
+ while (!(dma->check_tx_done(dma))) {
+ udelay(100);
+ debug(".");
+ i++;
+ if (i > 20) {
+ error("%s: Tx timeout: retried 20 times\n", __func__);
+ rc = -1;
+ break;
+ }
+ }
+
+ debug("%s exit rc(0x%x)\n", __func__, rc);
+ return rc;
+}
+
+static int bcm_sf2_eth_receive(struct eth_device *dev)
+{
+ struct eth_dma *dma = &(((struct eth_info *)(dev->priv))->dma);
+ uint8_t *buf = (uint8_t *)NetRxPackets[0];
+ int rcvlen;
+ int rc = 0;
+ int i = 0;
+
+ while (1) {
+ /* Poll Rx queue to get a packet */
+ rcvlen = dma->check_rx_done(dma, buf);
+ if (rcvlen < 0) {
+ /* No packet received */
+ rc = -1;
+ debug("\nNO More Rx\n");
+ break;
+ } else if ((rcvlen == 0) || (rcvlen > RX_BUF_SIZE)) {
+ error("%s: Wrong Ethernet packet size (%d B), skip!\n",
+ __func__, rcvlen);
+ break;
+ } else {
+ debug("recieved\n");
+
+ /* Forward received packet to uboot network handler */
+ NetReceive(buf, rcvlen);
+
+ if (++i >= PKTBUFSRX)
+ i = 0;
+ buf = NetRxPackets[i];
+ }
+ }
+
+ return rc;
+}
+
+static int bcm_sf2_eth_write_hwaddr(struct eth_device *dev)
+{
+ struct eth_info *eth = (struct eth_info *)(dev->priv);
+
+ printf(" ETH MAC: %02x:%02x:%02x:%02x:%02x:%02x\n",
+ dev->enetaddr[0], dev->enetaddr[1], dev->enetaddr[2],
+ dev->enetaddr[3], dev->enetaddr[4], dev->enetaddr[5]);
+
+ return eth->set_mac_addr(dev->enetaddr);
+}
+
+static int bcm_sf2_eth_open(struct eth_device *dev, bd_t *bt)
+{
+ struct eth_info *eth = (struct eth_info *)(dev->priv);
+ struct eth_dma *dma = &(eth->dma);
+ int i;
+
+ debug("Enabling BCM SF2 Ethernet.\n");
+
+ /* Set MAC address from env */
+ if (bcm_sf2_eth_write_hwaddr(dev) != 0) {
+ error("%s: MAC set error when opening !\n", __func__);
+ return -1;
+ }
+
+ eth->enable_mac();
+
+ /* enable tx and rx DMA */
+ dma->enable_dma(dma, MAC_DMA_RX);
+ dma->enable_dma(dma, MAC_DMA_TX);
+
+ /*
+ * Need to start PHY here because link speed can change
+ * before each ethernet operation
+ */
+ for (i = 0; i < eth->port_num; i++) {
+ if (phy_startup(eth->port[i])) {
+ error("%s: PHY %d startup failed!\n", __func__, i);
+ if (i == CONFIG_BCM_SF2_ETH_DEFAULT_PORT) {
+ error("%s: No default port %d!\n", __func__, i);
+ return -1;
+ }
+ }
+ }
+
+ /* Set MAC speed using default port */
+ i = CONFIG_BCM_SF2_ETH_DEFAULT_PORT;
+ debug("PHY %d: speed:%d, duplex:%d, link:%d\n", i,
+ eth->port[i]->speed, eth->port[i]->duplex, eth->port[i]->link);
+ eth->set_mac_speed(eth->port[i]->speed, eth->port[i]->duplex);
+
+ debug("Enable Ethernet Done.\n");
+
+ return 0;
+}
+
+static void bcm_sf2_eth_close(struct eth_device *dev)
+{
+ struct eth_info *eth = (struct eth_info *)(dev->priv);
+ struct eth_dma *dma = &(eth->dma);
+
+ /* disable DMA */
+ dma->disable_dma(dma, MAC_DMA_RX);
+ dma->disable_dma(dma, MAC_DMA_TX);
+
+ eth->disable_mac();
+}
+
+int bcm_sf2_eth_register(bd_t *bis, u8 dev_num)
+{
+ struct eth_device *dev;
+ struct eth_info *eth;
+ int rc;
+
+ dev = (struct eth_device *)malloc(sizeof(struct eth_device));
+ if (dev == NULL) {
+ error("%s: Not enough memory!\n", __func__);
+ return -1;
+ }
+
+ eth = (struct eth_info *)malloc(sizeof(struct eth_info));
+ if (eth == NULL) {
+ error("%s: Not enough memory!\n", __func__);
+ return -1;
+ }
+
+ printf(banner);
+
+ memset(dev, 0, sizeof(*dev));
+ sprintf(dev->name, "%s_%s-%hu", BCM_SF2_ETH_DEV_NAME,
+ BCM_SF2_ETH_MAC_NAME, dev_num);
+
+ dev->priv = (void *)eth;
+ dev->iobase = 0;
+
+ dev->init = bcm_sf2_eth_open;
+ dev->halt = bcm_sf2_eth_close;
+ dev->send = bcm_sf2_eth_send;
+ dev->recv = bcm_sf2_eth_receive;
+ dev->write_hwaddr = bcm_sf2_eth_write_hwaddr;
+
+#ifdef CONFIG_BCM_SF2_ETH_GMAC
+ if (gmac_add(dev)) {
+ free(eth);
+ free(dev);
+ error("%s: Adding GMAC failed!\n", __func__);
+ return -1;
+ }
+#else
+#error "bcm_sf2_eth: NEED to register a MAC!"
+#endif
+
+ eth_register(dev);
+
+#ifdef CONFIG_CMD_MII
+ miiphy_register(dev->name, eth->miiphy_read, eth->miiphy_write);
+#endif
+
+ /* Initialization */
+ debug("Ethernet initialization ...");
+
+ rc = bcm_sf2_eth_init(dev);
+ if (rc != 0) {
+ error("%s: configuration failed!\n", __func__);
+ return -1;
+ }
+
+ printf("Basic ethernet functionality initialized\n");
+
+ return 0;
+}
diff --git a/drivers/net/bcm-sf2-eth.h b/drivers/net/bcm-sf2-eth.h
new file mode 100644
index 0000000..49a5836
--- /dev/null
+++ b/drivers/net/bcm-sf2-eth.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef _BCM_SF2_ETH_H_
+#define _BCM_SF2_ETH_H_
+
+#include <phy.h>
+
+#define RX_BUF_SIZE 2048
+/* RX_BUF_NUM must be power of 2 */
+#define RX_BUF_NUM 32
+
+#define TX_BUF_SIZE 2048
+/* TX_BUF_NUM must be power of 2 */
+#define TX_BUF_NUM 2
+
+/* Support 2 Ethernet ports now */
+#define BCM_ETH_MAX_PORT_NUM 2
+
+#define CONFIG_BCM_SF2_ETH_DEFAULT_PORT 0
+
+enum {
+ MAC_DMA_TX = 1,
+ MAC_DMA_RX = 2
+};
+
+struct eth_dma {
+ void *tx_desc_aligned;
+ void *rx_desc_aligned;
+ void *tx_desc;
+ void *rx_desc;
+
+ uint8_t *tx_buf;
+ uint8_t *rx_buf;
+
+ int cur_tx_index;
+ int cur_rx_index;
+
+ int (*tx_packet)(struct eth_dma *dma, void *packet, int length);
+ bool (*check_tx_done)(struct eth_dma *dma);
+
+ int (*check_rx_done)(struct eth_dma *dma, uint8_t *buf);
+
+ int (*enable_dma)(struct eth_dma *dma, int dir);
+ int (*disable_dma)(struct eth_dma *dma, int dir);
+};
+
+struct eth_info {
+ struct eth_dma dma;
+ phy_interface_t phy_interface;
+ struct phy_device *port[BCM_ETH_MAX_PORT_NUM];
+ int port_num;
+
+ int (*miiphy_read)(const char *devname, unsigned char phyaddr,
+ unsigned char reg, unsigned short *value);
+ int (*miiphy_write)(const char *devname, unsigned char phyaddr,
+ unsigned char reg, unsigned short value);
+
+ int (*mac_init)(struct eth_device *dev);
+ int (*enable_mac)(void);
+ int (*disable_mac)(void);
+ int (*set_mac_addr)(unsigned char *mac);
+ int (*set_mac_speed)(int speed, int duplex);
+
+};
+
+#endif /* _BCM_SF2_ETH_H_ */
diff --git a/include/bootm.h b/include/bootm.h
index 4a308d8..694d6fc 100644
--- a/include/bootm.h
+++ b/include/bootm.h
@@ -48,7 +48,7 @@ int boot_selected_os(int argc, char * const argv[], int state,
ulong bootm_disable_interrupts(void);
-/* This is a special function used by bootz */
+/* This is a special function used by booti/bootz */
int bootm_find_ramdisk_fdt(int flag, int argc, char * const argv[]);
int do_bootm_states(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
diff --git a/include/configs/alt.h b/include/configs/alt.h
index 9eec4bc..7238f68 100644
--- a/include/configs/alt.h
+++ b/include/configs/alt.h
@@ -13,7 +13,6 @@
#undef DEBUG
#define CONFIG_ARMV7
#define CONFIG_R8A7794
-#define CONFIG_RMOBILE
#define CONFIG_RMOBILE_BOARD_STRING "Alt"
#define CONFIG_SH_GPIO_PFC
diff --git a/include/configs/am3517_crane.h b/include/configs/am3517_crane.h
index 898ed2e..fcb4033 100644
--- a/include/configs/am3517_crane.h
+++ b/include/configs/am3517_crane.h
@@ -17,7 +17,6 @@
* High Level Configuration Options
*/
#define CONFIG_OMAP 1 /* in a TI OMAP core */
-#define CONFIG_OMAP34XX 1 /* which is a 34XX */
#define CONFIG_OMAP3_AM3517CRANE 1 /* working with CRANEBOARD */
#define CONFIG_OMAP_COMMON
diff --git a/include/configs/am3517_evm.h b/include/configs/am3517_evm.h
index 1e2d55b..c5d64ca 100644
--- a/include/configs/am3517_evm.h
+++ b/include/configs/am3517_evm.h
@@ -17,7 +17,6 @@
* High Level Configuration Options
*/
#define CONFIG_OMAP 1 /* in a TI OMAP core */
-#define CONFIG_OMAP34XX 1 /* which is a 34XX */
#define CONFIG_OMAP3_AM3517EVM 1 /* working with AM3517EVM */
#define CONFIG_OMAP_COMMON
diff --git a/include/configs/armadillo-800eva.h b/include/configs/armadillo-800eva.h
index 8bb932c..b073b97 100644
--- a/include/configs/armadillo-800eva.h
+++ b/include/configs/armadillo-800eva.h
@@ -12,7 +12,6 @@
#undef DEBUG
#define CONFIG_ARMV7
#define CONFIG_R8A7740
-#define CONFIG_RMOBILE
#define CONFIG_RMOBILE_BOARD_STRING "Armadillo-800EVA Board\n"
#define CONFIG_SH_GPIO_PFC
diff --git a/include/configs/arndale.h b/include/configs/arndale.h
index 64b54ab..75f9933 100644
--- a/include/configs/arndale.h
+++ b/include/configs/arndale.h
@@ -250,4 +250,12 @@
/* Enable Time Command */
#define CONFIG_CMD_TIME
+#define CONFIG_S5P_PA_SYSRAM 0x02020000
+#define CONFIG_SMP_PEN_ADDR CONFIG_S5P_PA_SYSRAM
+
+/* The PERIPHBASE in the CBAR register is wrong on the Arndale, so override it */
+#define CONFIG_ARM_GIC_BASE_ADDRESS 0x10480000
+
+#define CONFIG_ARMV7_VIRT
+
#endif /* __CONFIG_H */
diff --git a/include/configs/bcm_ep_board.h b/include/configs/bcm_ep_board.h
new file mode 100644
index 0000000..827844e
--- /dev/null
+++ b/include/configs/bcm_ep_board.h
@@ -0,0 +1,115 @@
+/*
+ * Copyright 2014 Broadcom Corporation.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __BCM_EP_BOARD_H
+#define __BCM_EP_BOARD_H
+
+#include <asm/arch/configs.h>
+
+/* Architecture, CPU, chip, etc */
+#define CONFIG_ARMV7
+#define CONFIG_SKIP_LOWLEVEL_INIT
+
+#define CONFIG_SYS_GENERIC_BOARD
+
+/*
+ * Memory configuration
+ * (these must be defined elsewhere)
+ */
+#ifndef CONFIG_SYS_TEXT_BASE
+#error CONFIG_SYS_TEXT_BASE must be defined!
+#endif
+#ifndef CONFIG_SYS_SDRAM_BASE
+#error CONFIG_SYS_SDRAM_BASE must be defined!
+#endif
+#ifndef CONFIG_SYS_SDRAM_SIZE
+#error CONFIG_SYS_SDRAM_SIZE must be defined!
+#endif
+
+#define CONFIG_NR_DRAM_BANKS 1
+
+#define CONFIG_SYS_MALLOC_LEN (4 * 1024 * 1024)
+#define CONFIG_STACKSIZE (256 * 1024)
+
+/* Some commands use this as the default load address */
+#define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_SDRAM_BASE
+
+/* No mtest functions as recommended */
+#undef CONFIG_CMD_MEMORY
+
+/*
+ * This is the initial SP which is used only briefly for relocating the u-boot
+ * image to the top of SDRAM. After relocation u-boot moves the stack to the
+ * proper place.
+ */
+#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SYS_TEXT_BASE
+
+/* allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+/* Serial Info */
+#define CONFIG_SYS_NS16550
+#define CONFIG_SYS_NS16550_SERIAL
+
+#define CONFIG_BAUDRATE 115200
+
+#define CONFIG_ENV_SIZE 0x2000
+#define CONFIG_ENV_IS_NOWHERE
+
+#define CONFIG_SYS_NO_FLASH /* Not using NAND/NOR unmanaged flash */
+
+/* console configuration */
+#define CONFIG_SYS_CBSIZE 1024 /* Console buffer size */
+#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \
+ sizeof(CONFIG_SYS_PROMPT) + 16) /* Printbuffer size */
+#define CONFIG_SYS_MAXARGS 64
+#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
+
+/*
+ * One partition type must be defined for part.c
+ * This is necessary for the fatls command to work on an SD card
+ * for example.
+ */
+#define CONFIG_DOS_PARTITION
+
+/* version string, parser, etc */
+#define CONFIG_VERSION_VARIABLE
+#define CONFIG_AUTO_COMPLETE
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_CMDLINE_EDITING
+#define CONFIG_COMMAND_HISTORY
+#define CONFIG_SYS_LONGHELP
+
+#define CONFIG_CRC32_VERIFY
+#define CONFIG_MX_CYCLIC
+
+/* Commands */
+#include <config_cmd_default.h>
+
+#define CONFIG_CMD_ASKENV
+#define CONFIG_CMD_CACHE
+#define CONFIG_CMD_FAT
+#define CONFIG_FAT_WRITE
+
+/* Enable devicetree support */
+#define CONFIG_OF_LIBFDT
+
+/* SHA hashing */
+#define CONFIG_CMD_HASH
+#define CONFIG_HASH_VERIFY
+#define CONFIG_SHA1
+#define CONFIG_SHA256
+
+/* Enable Time Command */
+#define CONFIG_CMD_TIME
+
+#define CONFIG_CMD_BOOTZ
+
+/* Misc utility code */
+#define CONFIG_BOUNCE_BUFFER
+#define CONFIG_CRC32_VERIFY
+
+#endif /* __BCM_EP_BOARD_H */
diff --git a/include/configs/cm_t35.h b/include/configs/cm_t35.h
index c63608c..70df1eb 100644
--- a/include/configs/cm_t35.h
+++ b/include/configs/cm_t35.h
@@ -21,7 +21,6 @@
* High Level Configuration Options
*/
#define CONFIG_OMAP /* in a TI OMAP core */
-#define CONFIG_OMAP34XX /* which is a 34XX */
#define CONFIG_OMAP_GPIO
#define CONFIG_CMD_GPIO
#define CONFIG_CM_T3X /* working with CM-T35 and CM-T3730 */
diff --git a/include/configs/devkit8000.h b/include/configs/devkit8000.h
index 69c51bc..7ab6d51 100644
--- a/include/configs/devkit8000.h
+++ b/include/configs/devkit8000.h
@@ -17,7 +17,6 @@
/* High Level Configuration Options */
#define CONFIG_OMAP 1 /* in a TI OMAP core */
-#define CONFIG_OMAP34XX 1 /* which is a 34XX */
#define CONFIG_OMAP3_DEVKIT8000 1 /* working with DevKit8000 */
#define CONFIG_MACH_TYPE MACH_TYPE_DEVKIT8000
#define CONFIG_OMAP_GPIO
diff --git a/include/configs/dig297.h b/include/configs/dig297.h
index 7e47c56..c8739ed 100644
--- a/include/configs/dig297.h
+++ b/include/configs/dig297.h
@@ -28,7 +28,6 @@
* High Level Configuration Options
*/
#define CONFIG_OMAP /* in a TI OMAP core */
-#define CONFIG_OMAP34XX /* which is a 34XX */
#define CONFIG_OMAP_GPIO
#define CONFIG_OMAP_COMMON
diff --git a/include/configs/dns325.h b/include/configs/dns325.h
index 96db44f..eaf8c85 100644
--- a/include/configs/dns325.h
+++ b/include/configs/dns325.h
@@ -24,7 +24,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_FEROCEON_88FR131 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD /* SOC Family Name */
#define CONFIG_KW88F6281 /* SOC Name */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/dockstar.h b/include/configs/dockstar.h
index d66bd2a..46a42b3 100644
--- a/include/configs/dockstar.h
+++ b/include/configs/dockstar.h
@@ -21,7 +21,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
#define CONFIG_KW88F6281 1 /* SOC Name */
#define CONFIG_MACH_DOCKSTAR /* Machine type */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/dreamplug.h b/include/configs/dreamplug.h
index b1ca859..981233a 100644
--- a/include/configs/dreamplug.h
+++ b/include/configs/dreamplug.h
@@ -34,7 +34,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_SHEEVA_88SV131 1 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
#define CONFIG_KW88F6281 1 /* SOC Name */
#define CONFIG_MACH_TYPE MACH_TYPE_DREAMPLUG
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/edminiv2.h b/include/configs/edminiv2.h
index 77717a8..1df4fc1 100644
--- a/include/configs/edminiv2.h
+++ b/include/configs/edminiv2.h
@@ -25,7 +25,6 @@
#define CONFIG_MARVELL 1
#define CONFIG_ARM926EJS 1 /* Basic Architecture */
#define CONFIG_FEROCEON 1 /* CPU Core subversion */
-#define CONFIG_ORION5X 1 /* SOC Family Name */
#define CONFIG_88F5182 1 /* SOC Name */
#define CONFIG_MACH_EDMINIV2 1 /* Machine type */
diff --git a/include/configs/goflexhome.h b/include/configs/goflexhome.h
index 30a5859..5ed9497 100644
--- a/include/configs/goflexhome.h
+++ b/include/configs/goflexhome.h
@@ -24,7 +24,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
#define CONFIG_KW88F6281 1 /* SOC Name */
#define CONFIG_MACH_GOFLEXHOME /* Machine type */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/guruplug.h b/include/configs/guruplug.h
index e401e7e..a56a4cb 100644
--- a/include/configs/guruplug.h
+++ b/include/configs/guruplug.h
@@ -18,7 +18,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_SHEEVA_88SV131 1 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
#define CONFIG_KW88F6281 1 /* SOC Name */
#define CONFIG_MACH_GURUPLUG /* Machine type */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/ib62x0.h b/include/configs/ib62x0.h
index 186fd35..f4c748a 100644
--- a/include/configs/ib62x0.h
+++ b/include/configs/ib62x0.h
@@ -18,7 +18,6 @@
* High level configuration options
*/
#define CONFIG_FEROCEON_88FR131 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD /* SOC Family Name */
#define CONFIG_KW88F6281 /* SOC Name */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/iconnect.h b/include/configs/iconnect.h
index a58f076..9f4a4b8 100644
--- a/include/configs/iconnect.h
+++ b/include/configs/iconnect.h
@@ -18,7 +18,6 @@
* High level configuration options
*/
#define CONFIG_FEROCEON_88FR131 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD /* SOC Family Name */
#define CONFIG_KW88F6281 /* SOC Name */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/km/km_arm.h b/include/configs/km/km_arm.h
index 6d77680..d31e674 100644
--- a/include/configs/km/km_arm.h
+++ b/include/configs/km/km_arm.h
@@ -28,7 +28,6 @@
*/
#define CONFIG_MARVELL
#define CONFIG_FEROCEON_88FR131 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD /* SOC Family Name */
#define CONFIG_KW88F6281 /* SOC Name */
#define CONFIG_MACH_KM_KIRKWOOD /* Machine type */
diff --git a/include/configs/km_kirkwood.h b/include/configs/km_kirkwood.h
index 9eb1ad3..dc26155 100644
--- a/include/configs/km_kirkwood.h
+++ b/include/configs/km_kirkwood.h
@@ -34,6 +34,8 @@
#define CONFIG_HOSTNAME km_kirkwood_pci
#define CONFIG_KM_IVM_BUS 1 /* I2C2 (Mux-Port 1)*/
#define CONFIG_KM_FPGA_CONFIG
+#define CONFIG_KM_UBI_PART_BOOT_OPTS ",2048"
+#define CONFIG_SYS_NAND_NO_SUBPAGE_WRITE
/* KM_KIRKWOOD_128M16 */
#elif defined(CONFIG_KM_KIRKWOOD_128M16)
@@ -105,7 +107,8 @@
#define CONFIG_SYS_KWD_CONFIG $(CONFIG_BOARDDIR)/kwbimage_128M16_1.cfg
#define CONFIG_KM_ENV_IS_IN_SPI_NOR
#define CONFIG_KM_FPGA_CONFIG
-
+#define CONFIG_KM_UBI_PART_BOOT_OPTS ",2048"
+#define CONFIG_SYS_NAND_NO_SUBPAGE_WRITE
#else
#error ("Board unsupported")
#endif
diff --git a/include/configs/koelsch.h b/include/configs/koelsch.h
index 3c2b613..21667d1 100644
--- a/include/configs/koelsch.h
+++ b/include/configs/koelsch.h
@@ -12,7 +12,6 @@
#undef DEBUG
#define CONFIG_ARMV7
#define CONFIG_R8A7791
-#define CONFIG_RMOBILE
#define CONFIG_RMOBILE_BOARD_STRING "Koelsch"
#define CONFIG_SH_GPIO_PFC
diff --git a/include/configs/kzm9g.h b/include/configs/kzm9g.h
index 5a13ad1..ac74ae7 100644
--- a/include/configs/kzm9g.h
+++ b/include/configs/kzm9g.h
@@ -10,7 +10,6 @@
#undef DEBUG
-#define CONFIG_RMOBILE
#define CONFIG_SH73A0
#define CONFIG_KZM_A9_GT
#define CONFIG_RMOBILE_BOARD_STRING "KMC KZM-A9-GT"
diff --git a/include/configs/lacie_kw.h b/include/configs/lacie_kw.h
index 2d2e23a..9ac5d33 100644
--- a/include/configs/lacie_kw.h
+++ b/include/configs/lacie_kw.h
@@ -41,7 +41,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_FEROCEON_88FR131 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD /* SoC Family Name */
/* SoC name */
#if defined(CONFIG_NETSPACE_LITE_V2) || defined(CONFIG_NETSPACE_MINI_V2)
#define CONFIG_KW88F6192
diff --git a/include/configs/lager.h b/include/configs/lager.h
index 74c998f..6e9d67d 100644
--- a/include/configs/lager.h
+++ b/include/configs/lager.h
@@ -13,7 +13,6 @@
#undef DEBUG
#define CONFIG_ARMV7
#define CONFIG_R8A7790
-#define CONFIG_RMOBILE
#define CONFIG_RMOBILE_BOARD_STRING "Lager"
#define CONFIG_SH_GPIO_PFC
diff --git a/include/configs/lsxl.h b/include/configs/lsxl.h
index f5f4961..bf5c1a1 100644
--- a/include/configs/lsxl.h
+++ b/include/configs/lsxl.h
@@ -29,7 +29,6 @@
* General configuration options
*/
#define CONFIG_FEROCEON_88FR131 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD /* SOC Family Name */
#define CONFIG_KW88F6281 /* SOC Name */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/mcx.h b/include/configs/mcx.h
index dff895a..cd85a6c 100644
--- a/include/configs/mcx.h
+++ b/include/configs/mcx.h
@@ -13,7 +13,6 @@
* High Level Configuration Options
*/
#define CONFIG_OMAP /* in a TI OMAP core */
-#define CONFIG_OMAP34XX /* which is a 34XX */
#define CONFIG_OMAP3_MCX /* working with mcx */
#define CONFIG_OMAP_GPIO
#define CONFIG_OMAP_COMMON
diff --git a/include/configs/mv88f6281gtw_ge.h b/include/configs/mv88f6281gtw_ge.h
index f6c06ee..311fc0c 100644
--- a/include/configs/mv88f6281gtw_ge.h
+++ b/include/configs/mv88f6281gtw_ge.h
@@ -18,7 +18,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
#define CONFIG_KW88F6281 1 /* SOC Name */
#define CONFIG_MACH_MV88F6281GTW_GE /* Machine type */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/nhk8815.h b/include/configs/nhk8815.h
index 4d3428c..5419f55 100644
--- a/include/configs/nhk8815.h
+++ b/include/configs/nhk8815.h
@@ -13,9 +13,7 @@
#include <nomadik.h>
#define CONFIG_ARM926EJS
-#define CONFIG_NOMADIK
#define CONFIG_NOMADIK_8815 /* cpu variant */
-#define CONFIG_NOMADIK_NHK8815 /* board variant */
#define CONFIG_SKIP_LOWLEVEL_INIT /* we have already been loaded to RAM */
diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h
index 43c1617..982b689 100644
--- a/include/configs/nokia_rx51.h
+++ b/include/configs/nokia_rx51.h
@@ -24,7 +24,6 @@
*/
#define CONFIG_OMAP /* in a TI OMAP core */
-#define CONFIG_OMAP34XX /* which is a 34XX */
#define CONFIG_OMAP3430 /* which is in a 3430 */
#define CONFIG_OMAP3_RX51 /* working with RX51 */
#define CONFIG_SYS_L2CACHE_OFF /* pretend there is no L2 CACHE */
diff --git a/include/configs/omap3_evm_common.h b/include/configs/omap3_evm_common.h
index eef4230..8885e17 100644
--- a/include/configs/omap3_evm_common.h
+++ b/include/configs/omap3_evm_common.h
@@ -13,7 +13,6 @@
* High level configuration options
*/
#define CONFIG_OMAP /* This is TI OMAP core */
-#define CONFIG_OMAP34XX /* belonging to 34XX family */
#define CONFIG_OMAP_GPIO
#define CONFIG_OMAP_COMMON
diff --git a/include/configs/omap3_logic.h b/include/configs/omap3_logic.h
index 717c935..aeb385f 100644
--- a/include/configs/omap3_logic.h
+++ b/include/configs/omap3_logic.h
@@ -15,7 +15,6 @@
* High Level Configuration Options
*/
#define CONFIG_OMAP /* in a TI OMAP core */
-#define CONFIG_OMAP34XX /* which is a 34XX */
#define CONFIG_OMAP3_LOGIC /* working with Logic OMAP boards */
#define CONFIG_OMAP_GPIO
#define CONFIG_OMAP_COMMON
diff --git a/include/configs/omap3_mvblx.h b/include/configs/omap3_mvblx.h
index a3dcb15..f3c21c4 100644
--- a/include/configs/omap3_mvblx.h
+++ b/include/configs/omap3_mvblx.h
@@ -20,7 +20,6 @@
*/
#define CONFIG_ARMV7 1 /* This is an ARM V7 CPU core */
#define CONFIG_OMAP 1 /* in a TI OMAP core */
-#define CONFIG_OMAP34XX 1 /* which is a 34XX */
#define CONFIG_MVBLX 1 /* working with mvBlueLYNX-X */
#define CONFIG_MACH_TYPE MACH_TYPE_MVBLX
#define CONFIG_OMAP_GPIO
diff --git a/include/configs/omap3_pandora.h b/include/configs/omap3_pandora.h
index c22c1fc..45feeb5 100644
--- a/include/configs/omap3_pandora.h
+++ b/include/configs/omap3_pandora.h
@@ -14,7 +14,6 @@
* High Level Configuration Options
*/
#define CONFIG_OMAP 1 /* in a TI OMAP core */
-#define CONFIG_OMAP34XX 1 /* which is a 34XX */
#define CONFIG_OMAP3_PANDORA 1 /* working with pandora */
#define CONFIG_OMAP_GPIO
#define CONFIG_OMAP_COMMON
diff --git a/include/configs/omap3_sdp3430.h b/include/configs/omap3_sdp3430.h
index a3e8a59..ac307eb 100644
--- a/include/configs/omap3_sdp3430.h
+++ b/include/configs/omap3_sdp3430.h
@@ -21,7 +21,6 @@
* High Level Configuration Options
*/
#define CONFIG_OMAP 1 /* in a TI OMAP core */
-#define CONFIG_OMAP34XX 1 /* which is a 34XX */
#define CONFIG_OMAP3_3430SDP 1 /* working with SDP Rev2 */
#define CONFIG_OMAP_COMMON
diff --git a/include/configs/openrd.h b/include/configs/openrd.h
index b65bdfd..b6f80af 100644
--- a/include/configs/openrd.h
+++ b/include/configs/openrd.h
@@ -35,7 +35,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_SHEEVA_88SV131 1 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
#define CONFIG_KW88F6281 1 /* SOC Name */
#define CONFIG_MACH_OPENRD_BASE /* Machine type */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/pogo_e02.h b/include/configs/pogo_e02.h
index a81d452..7594bdb 100644
--- a/include/configs/pogo_e02.h
+++ b/include/configs/pogo_e02.h
@@ -24,7 +24,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_FEROCEON_88FR131 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD /* SOC Family Name */
#define CONFIG_KW88F6281 /* SOC Name */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/rd6281a.h b/include/configs/rd6281a.h
index 9856516..e80949e 100644
--- a/include/configs/rd6281a.h
+++ b/include/configs/rd6281a.h
@@ -18,7 +18,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
#define CONFIG_KW88F6281 1 /* SOC Name */
#define CONFIG_MACH_RD6281A /* Machine type */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/sheevaplug.h b/include/configs/sheevaplug.h
index 3d6ff09..4747adf 100644
--- a/include/configs/sheevaplug.h
+++ b/include/configs/sheevaplug.h
@@ -18,7 +18,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
#define CONFIG_KW88F6281 1 /* SOC Name */
#define CONFIG_MACH_SHEEVAPLUG /* Machine type */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/socfpga_cyclone5.h b/include/configs/socfpga_cyclone5.h
index 27c2be9..5d145cd 100644
--- a/include/configs/socfpga_cyclone5.h
+++ b/include/configs/socfpga_cyclone5.h
@@ -15,7 +15,7 @@
* High level configuration
*/
/* Virtual target or real hardware */
-#define CONFIG_SOCFPGA_VIRTUAL_TARGET
+#undef CONFIG_SOCFPGA_VIRTUAL_TARGET
#define CONFIG_ARMV7
#define CONFIG_SYS_DCACHE_OFF
@@ -208,6 +208,38 @@
#define CONFIG_ENV_IS_NOWHERE
/*
+ * network support
+ */
+#ifndef CONFIG_SOCFPGA_VIRTUAL_TARGET
+#define CONFIG_DESIGNWARE_ETH 1
+#endif
+
+#ifdef CONFIG_DESIGNWARE_ETH
+#define CONFIG_EMAC0_BASE SOCFPGA_EMAC0_ADDRESS
+#define CONFIG_EMAC1_BASE SOCFPGA_EMAC1_ADDRESS
+/* console support for network */
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_MII
+#define CONFIG_CMD_NET
+#define CONFIG_CMD_PING
+/* designware */
+#define CONFIG_NET_MULTI
+#define CONFIG_DW_ALTDESCRIPTOR
+#define CONFIG_DW_SEARCH_PHY
+#define CONFIG_MII
+#define CONFIG_PHY_GIGE
+#define CONFIG_DW_AUTONEG
+#define CONFIG_AUTONEG_TIMEOUT (15 * CONFIG_SYS_HZ)
+#define CONFIG_PHYLIB
+#define CONFIG_PHY_MICREL
+#define CONFIG_PHY_MICREL_KSZ9021
+/* EMAC controller and PHY used */
+#define CONFIG_EMAC_BASE CONFIG_EMAC1_BASE
+#define CONFIG_EPHY_PHY_ADDR CONFIG_EPHY1_PHY_ADDR
+#define CONFIG_PHY_INTERFACE_MODE PHY_INTERFACE_MODE_RGMII
+#endif /* CONFIG_DESIGNWARE_ETH */
+
+/*
* L4 Watchdog
*/
#define CONFIG_HW_WATCHDOG
diff --git a/include/configs/tam3517-common.h b/include/configs/tam3517-common.h
index bcf0a63..9fbe68a 100644
--- a/include/configs/tam3517-common.h
+++ b/include/configs/tam3517-common.h
@@ -14,7 +14,6 @@
* High Level Configuration Options
*/
#define CONFIG_OMAP /* in a TI OMAP core */
-#define CONFIG_OMAP34XX /* which is a 34XX */
#define CONFIG_OMAP_GPIO
#define CONFIG_OMAP_COMMON
#define CONFIG_SYS_GENERIC_BOARD
diff --git a/include/configs/tao3530.h b/include/configs/tao3530.h
index 174bfe5..8d2db27 100644
--- a/include/configs/tao3530.h
+++ b/include/configs/tao3530.h
@@ -18,7 +18,6 @@
*/
#define CONFIG_ARMV7 /* This is an ARM V7 CPU core */
#define CONFIG_OMAP /* in a TI OMAP core */
-#define CONFIG_OMAP34XX /* which is a 34XX */
#define CONFIG_OMAP_GPIO
#define CONFIG_OMAP_COMMON
diff --git a/include/configs/tegra-common.h b/include/configs/tegra-common.h
index 717cd61..d27fceb 100644
--- a/include/configs/tegra-common.h
+++ b/include/configs/tegra-common.h
@@ -14,7 +14,6 @@
* High Level Configuration Options
*/
#define CONFIG_ARMCORTEXA9 /* This is an ARM V7 CPU core */
-#define CONFIG_TEGRA /* which is a Tegra generic machine */
#define CONFIG_SYS_L2CACHE_OFF /* No L2 cache */
#include <asm/arch/tegra.h> /* get chip and board defs */
diff --git a/include/configs/ti_omap3_common.h b/include/configs/ti_omap3_common.h
index ade35d2..3b19d3d 100644
--- a/include/configs/ti_omap3_common.h
+++ b/include/configs/ti_omap3_common.h
@@ -14,7 +14,6 @@
#ifndef __CONFIG_TI_OMAP3_COMMON_H__
#define __CONFIG_TI_OMAP3_COMMON_H__
-#define CONFIG_OMAP34XX
#include <asm/arch/cpu.h>
#include <asm/arch/omap3.h>
diff --git a/include/configs/ti_omap4_common.h b/include/configs/ti_omap4_common.h
index 30b02f6..8c7310c 100644
--- a/include/configs/ti_omap4_common.h
+++ b/include/configs/ti_omap4_common.h
@@ -15,7 +15,6 @@
/*
* High Level Configuration Options
*/
-#define CONFIG_OMAP44XX 1 /* which is a 44XX */
#define CONFIG_OMAP4430 1 /* which is in a 4430 */
#define CONFIG_MISC_INIT_R
#define CONFIG_ARCH_CPU_INIT
diff --git a/include/configs/ti_omap5_common.h b/include/configs/ti_omap5_common.h
index cb928ab..3166392 100644
--- a/include/configs/ti_omap5_common.h
+++ b/include/configs/ti_omap5_common.h
@@ -17,7 +17,6 @@
#ifndef __CONFIG_TI_OMAP5_COMMON_H
#define __CONFIG_TI_OMAP5_COMMON_H
-#define CONFIG_OMAP54XX
#define CONFIG_DISPLAY_CPUINFO
#define CONFIG_DISPLAY_BOARDINFO
#define CONFIG_MISC_INIT_R
diff --git a/include/configs/tk71.h b/include/configs/tk71.h
index 16e8a7f..a9c6d2e 100644
--- a/include/configs/tk71.h
+++ b/include/configs/tk71.h
@@ -17,7 +17,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
#define CONFIG_KW88F6281 1 /* SOC Name */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
#define CONFIG_NR_DRAM_BANKS 1
diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h
index cc0d172..6ddf3d5 100644
--- a/include/configs/tricorder.h
+++ b/include/configs/tricorder.h
@@ -18,7 +18,6 @@
/* High Level Configuration Options */
#define CONFIG_OMAP /* in a TI OMAP core */
-#define CONFIG_OMAP34XX /* which is a 34XX */
#define CONFIG_OMAP_COMMON
#define CONFIG_MACH_TYPE MACH_TYPE_TRICORDER
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
index 1905d13..0897932 100644
--- a/include/configs/vexpress_aemv8a.h
+++ b/include/configs/vexpress_aemv8a.h
@@ -8,8 +8,6 @@
#ifndef __VEXPRESS_AEMV8A_H
#define __VEXPRESS_AEMV8A_H
-#define DEBUG
-
#ifdef CONFIG_BASE_FVP
#ifndef CONFIG_SEMIHOSTING
#error CONFIG_BASE_FVP requires CONFIG_SEMIHOSTING
@@ -134,7 +132,7 @@
#define CONFIG_SYS_MEMTEST_END (V2M_BASE + 0x80000000)
/* Size of malloc() pool */
-#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128 * 1024)
+#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (8 << 20))
/* SMSC91C111 Ethernet Configuration */
#define CONFIG_SMC91111 1
@@ -156,6 +154,8 @@
/*#define CONFIG_MENU_SHOW*/
#define CONFIG_CMD_CACHE
#define CONFIG_CMD_BDI
+#define CONFIG_CMD_BOOTI
+#define CONFIG_CMD_UNZIP
#define CONFIG_CMD_DHCP
#define CONFIG_CMD_PXE
#define CONFIG_CMD_ENV
@@ -215,10 +215,9 @@
#else
#define CONFIG_EXTRA_ENV_SETTINGS \
- "kernel_addr_r=0x200000\0" \
- "initrd_addr_r=0xa00000\0" \
- "initrd_size=0x2000000\0" \
- "fdt_addr_r=0x100000\0" \
+ "kernel_addr_r=0x80000000\0" \
+ "initrd_addr_r=0x88000000\0" \
+ "fdt_addr_r=0x83000000\0" \
"fdt_high=0xa0000000\0"
#define CONFIG_BOOTARGS "console=ttyAMA0 root=/dev/ram0"
@@ -239,7 +238,7 @@
#define CONFIG_SYS_HUSH_PARSER
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
#define CONFIG_SYS_LONGHELP
-#define CONFIG_CMDLINE_EDITING 1
+#define CONFIG_CMDLINE_EDITING
#define CONFIG_SYS_MAXARGS 64 /* max command args */
#endif /* __VEXPRESS_AEMV8A_H */
diff --git a/include/configs/wireless_space.h b/include/configs/wireless_space.h
index 2070a9b..036c1e4 100644
--- a/include/configs/wireless_space.h
+++ b/include/configs/wireless_space.h
@@ -21,7 +21,6 @@
* High Level Configuration Options (easy to change)
*/
#define CONFIG_FEROCEON_88FR131 /* CPU Core subversion */
-#define CONFIG_KIRKWOOD /* SoC Family Name */
/* SoC name */
#define CONFIG_KW88F6281
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
index d57e9d5..875cb43 100644
--- a/include/configs/zynq-common.h
+++ b/include/configs/zynq-common.h
@@ -12,7 +12,6 @@
/* High Level configuration Options */
#define CONFIG_ARMV7
-#define CONFIG_ZYNQ
/* CPU clock */
#ifndef CONFIG_CPU_FREQ_HZ
diff --git a/include/netdev.h b/include/netdev.h
index 260c8d0..a887bfb 100644
--- a/include/netdev.h
+++ b/include/netdev.h
@@ -31,6 +31,7 @@ int altera_tse_initialize(u8 dev_num, int mac_base,
int at91emac_register(bd_t *bis, unsigned long iobase);
int au1x00_enet_initialize(bd_t*);
int ax88180_initialize(bd_t *bis);
+int bcm_sf2_eth_register(bd_t *bis, u8 dev_num);
int bfin_EMAC_initialize(bd_t *bis);
int calxedaxgmac_initialize(u32 id, ulong base_addr);
int cs8900_initialize(u8 dev_num, int base_addr);