From 8340e7ac86ad3c59956e8f0bd627b741e5209439 Mon Sep 17 00:00:00 2001 From: York Sun Date: Mon, 23 Jun 2014 15:36:44 -0700 Subject: driver/ddr: Fix DDR4 driver for ARM Previously the driver was only tested on Power SoCs. Different barrier instructions are needed for ARM SoCs. Signed-off-by: York Sun --- arch/arm/include/asm/arch-fsl-lsch3/config.h | 4 ++++ arch/arm/include/asm/io.h | 1 + 2 files changed, 5 insertions(+) (limited to 'arch/arm') diff --git a/arch/arm/include/asm/arch-fsl-lsch3/config.h b/arch/arm/include/asm/arch-fsl-lsch3/config.h index c1c718e..b17410a 100644 --- a/arch/arm/include/asm/arch-fsl-lsch3/config.h +++ b/arch/arm/include/asm/arch-fsl-lsch3/config.h @@ -43,7 +43,11 @@ /* DDR */ #define CONFIG_SYS_FSL_DDR_LE #define CONFIG_VERY_BIG_RAM +#ifdef CONFIG_SYS_FSL_DDR4 +#define CONFIG_SYS_FSL_DDRC_GEN4 +#else #define CONFIG_SYS_FSL_DDRC_ARM_GEN3 /* Enable Freescale ARM DDR3 driver */ +#endif #define CONFIG_SYS_FSL_DDR /* Freescale DDR driver */ #define CONFIG_SYS_LS2_DDR_BLOCK1_SIZE ((phys_size_t)2 << 30) #define CONFIG_MAX_MEM_MAPPED CONFIG_SYS_LS2_DDR_BLOCK1_SIZE diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h index 214f3ea..6d18eb3 100644 --- a/arch/arm/include/asm/io.h +++ b/arch/arm/include/asm/io.h @@ -136,6 +136,7 @@ extern inline void __raw_readsl(unsigned long addr, void *data, int longlen) * TODO: The kernel offers some more advanced versions of barriers, it might * have some advantages to use them instead of the simple one here. */ +#define mb() asm volatile("dsb sy" : : : "memory") #define dmb() __asm__ __volatile__ ("" : : : "memory") #define __iormb() dmb() #define __iowmb() dmb() -- cgit v1.1 From dd84058d24ff54d6b32818ffe44aeb4bba2cfae6 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Wed, 30 Jul 2014 14:08:14 +0900 Subject: kconfig: add board Kconfig and defconfig files This commit adds: - arch/${ARCH}/Kconfig provide a menu to select target boards - board/${VENDOR}/${BOARD}/Kconfig or board/${BOARD}/Kconfig set CONFIG macros to the appropriate values for each board - configs/${TARGET_BOARD}_defconfig default setting of each board (This commit was automatically generated by a conversion script based on boards.cfg) In Linux Kernel, defconfig files are located under arch/${ARCH}/configs/ directory. It works in Linux Kernel since ARCH is always given from the command line for cross compile. But in U-Boot, ARCH is not given from the command line. Which means we cannot know ARCH until the board configuration is done. That is why all the "*_defconfig" files should be gathered into a single directory ./configs/. Signed-off-by: Masahiro Yamada Acked-by: Simon Glass --- arch/arm/Kconfig | 1002 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1002 insertions(+) create mode 100644 arch/arm/Kconfig (limited to 'arch/arm') diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig new file mode 100644 index 0000000..e385eda --- /dev/null +++ b/arch/arm/Kconfig @@ -0,0 +1,1002 @@ +menu "ARM architecture" + depends on ARM + +config SYS_ARCH + string + default "arm" + +choice + prompt "Target select" + +config TARGET_INTEGRATORAP_CM720T + bool "Support integratorap_cm720t" + +config TARGET_INTEGRATORAP_CM920T + bool "Support integratorap_cm920t" + +config TARGET_INTEGRATORCP_CM920T + bool "Support integratorcp_cm920t" + +config TARGET_A320EVB + bool "Support a320evb" + +config TARGET_AT91RM9200EK + bool "Support at91rm9200ek" + +config TARGET_EB_CPUX9K2 + bool "Support eb_cpux9k2" + +config TARGET_CPUAT91 + bool "Support cpuat91" + +config TARGET_EDB93XX + bool "Support edb93xx" + +config TARGET_SCB9328 + bool "Support scb9328" + +config TARGET_CM4008 + bool "Support cm4008" + +config TARGET_CM41XX + bool "Support cm41xx" + +config TARGET_VCMA9 + bool "Support VCMA9" + +config TARGET_SMDK2410 + bool "Support smdk2410" + +config TARGET_INTEGRATORAP_CM926EJS + bool "Support integratorap_cm926ejs" + +config TARGET_INTEGRATORCP_CM926EJS + bool "Support integratorcp_cm926ejs" + +config TARGET_ASPENITE + bool "Support aspenite" + +config TARGET_GPLUGD + bool "Support gplugd" + +config TARGET_AFEB9260 + bool "Support afeb9260" + +config TARGET_AT91SAM9260EK + bool "Support at91sam9260ek" + +config TARGET_AT91SAM9261EK + bool "Support at91sam9261ek" + +config TARGET_AT91SAM9263EK + bool "Support at91sam9263ek" + +config TARGET_AT91SAM9M10G45EK + bool "Support at91sam9m10g45ek" + +config TARGET_AT91SAM9N12EK + bool "Support at91sam9n12ek" + +config TARGET_AT91SAM9RLEK + bool "Support at91sam9rlek" + +config TARGET_AT91SAM9X5EK + bool "Support at91sam9x5ek" + +config TARGET_SNAPPER9260 + bool "Support snapper9260" + +config TARGET_VL_MA2SC + bool "Support vl_ma2sc" + +config TARGET_SBC35_A9G20 + bool "Support sbc35_a9g20" + +config TARGET_TNY_A9260 + bool "Support tny_a9260" + +config TARGET_USB_A9263 + bool "Support usb_a9263" + +config TARGET_ETHERNUT5 + bool "Support ethernut5" + +config TARGET_TOP9000 + bool "Support top9000" + +config TARGET_MEESC + bool "Support meesc" + +config TARGET_OTC570 + bool "Support otc570" + +config TARGET_CPU9260 + bool "Support cpu9260" + +config TARGET_PM9261 + bool "Support pm9261" + +config TARGET_PM9263 + bool "Support pm9263" + +config TARGET_PM9G45 + bool "Support pm9g45" + +config TARGET_CORVUS + bool "Support corvus" + +config TARGET_TAURUS + bool "Support taurus" + +config TARGET_STAMP9G20 + bool "Support stamp9g20" + +config TARGET_CAM_ENC_4XX + bool "Support cam_enc_4xx" + +config TARGET_IPAM390 + bool "Support ipam390" + +config TARGET_DA830EVM + bool "Support da830evm" + +config TARGET_DA850EVM + bool "Support da850evm" + +config TARGET_HAWKBOARD + bool "Support hawkboard" + +config TARGET_DAVINCI_DM355EVM + bool "Support davinci_dm355evm" + +config TARGET_DAVINCI_DM355LEOPARD + bool "Support davinci_dm355leopard" + +config TARGET_DAVINCI_DM365EVM + bool "Support davinci_dm365evm" + +config TARGET_DAVINCI_DM6467EVM + bool "Support davinci_dm6467evm" + +config TARGET_DAVINCI_DVEVM + bool "Support davinci_dvevm" + +config TARGET_EA20 + bool "Support ea20" + +config TARGET_DAVINCI_SCHMOOGIE + bool "Support davinci_schmoogie" + +config TARGET_DAVINCI_SFFSDR + bool "Support davinci_sffsdr" + +config TARGET_DAVINCI_SONATA + bool "Support davinci_sonata" + +config TARGET_ENBW_CMC + bool "Support enbw_cmc" + +config TARGET_CALIMAIN + bool "Support calimain" + +config TARGET_LSXL + bool "Support lsxl" + +config TARGET_POGO_E02 + bool "Support pogo_e02" + +config TARGET_DNS325 + bool "Support dns325" + +config TARGET_ICONNECT + bool "Support iconnect" + +config TARGET_TK71 + bool "Support tk71" + +config TARGET_KM_KIRKWOOD + bool "Support km_kirkwood" + +config TARGET_NET2BIG_V2 + bool "Support net2big_v2" + +config TARGET_NETSPACE_V2 + bool "Support netspace_v2" + +config TARGET_WIRELESS_SPACE + bool "Support wireless_space" + +config TARGET_DREAMPLUG + bool "Support dreamplug" + +config TARGET_GURUPLUG + bool "Support guruplug" + +config TARGET_MV88F6281GTW_GE + bool "Support mv88f6281gtw_ge" + +config TARGET_OPENRD + bool "Support openrd" + +config TARGET_RD6281A + bool "Support rd6281a" + +config TARGET_SHEEVAPLUG + bool "Support sheevaplug" + +config TARGET_IB62X0 + bool "Support ib62x0" + +config TARGET_DOCKSTAR + bool "Support dockstar" + +config TARGET_GOFLEXHOME + bool "Support goflexhome" + +config TARGET_DEVKIT3250 + bool "Support devkit3250" + +config TARGET_JADECPU + bool "Support jadecpu" + +config TARGET_MX25PDK + bool "Support mx25pdk" + +config TARGET_TX25 + bool "Support tx25" + +config TARGET_ZMX25 + bool "Support zmx25" + +config TARGET_APF27 + bool "Support apf27" + +config TARGET_IMX27LITE + bool "Support imx27lite" + +config TARGET_MAGNESIUM + bool "Support magnesium" + +config TARGET_APX4DEVKIT + bool "Support apx4devkit" + +config TARGET_XFI3 + bool "Support xfi3" + +config TARGET_M28EVK + bool "Support m28evk" + +config TARGET_MX23EVK + bool "Support mx23evk" + +config TARGET_MX28EVK + bool "Support mx28evk" + +config TARGET_MX23_OLINUXINO + bool "Support mx23_olinuxino" + +config TARGET_BG0900 + bool "Support bg0900" + +config TARGET_SANSA_FUZE_PLUS + bool "Support sansa_fuze_plus" + +config TARGET_SC_SPS_1 + bool "Support sc_sps_1" + +config TARGET_NHK8815 + bool "Support nhk8815" + +config TARGET_OMAP5912OSK + bool "Support omap5912osk" + +config TARGET_EDMINIV2 + bool "Support edminiv2" + +config TARGET_DKB + bool "Support dkb" + +config TARGET_SPEAR300 + bool "Support spear300" + +config TARGET_SPEAR310 + bool "Support spear310" + +config TARGET_SPEAR320 + bool "Support spear320" + +config TARGET_SPEAR600 + bool "Support spear600" + +config TARGET_X600 + bool "Support x600" + +config TARGET_VERSATILEAB + bool "Support versatileab" + +config TARGET_VERSATILEPB + bool "Support versatilepb" + +config TARGET_VERSATILEQEMU + bool "Support versatileqemu" + +config TARGET_INTEGRATORCP_CM1136 + bool "Support integratorcp_cm1136" + +config TARGET_IMX31_PHYCORE + bool "Support imx31_phycore" + +config TARGET_QONG + bool "Support qong" + +config TARGET_MX31ADS + bool "Support mx31ads" + +config TARGET_MX31PDK + bool "Support mx31pdk" + +config TARGET_TT01 + bool "Support tt01" + +config TARGET_IMX31_LITEKIT + bool "Support imx31_litekit" + +config TARGET_WOODBURN + bool "Support woodburn" + +config TARGET_WOODBURN_SD + bool "Support woodburn_sd" + +config TARGET_FLEA3 + bool "Support flea3" + +config TARGET_MX35PDK + bool "Support mx35pdk" + +config TARGET_RPI_B + bool "Support rpi_b" + +config TARGET_TNETV107X_EVM + bool "Support tnetv107x_evm" + +config TARGET_INTEGRATORAP_CM946ES + bool "Support integratorap_cm946es" + +config TARGET_INTEGRATORCP_CM946ES + bool "Support integratorcp_cm946es" + +config TARGET_VEXPRESS_CA15_TC2 + bool "Support vexpress_ca15_tc2" + +config TARGET_VEXPRESS_CA5X2 + bool "Support vexpress_ca5x2" + +config TARGET_VEXPRESS_CA9X4 + bool "Support vexpress_ca9x4" + +config TARGET_KWB + bool "Support kwb" + +config TARGET_TSERIES + bool "Support tseries" + +config TARGET_CM_T335 + bool "Support cm_t335" + +config TARGET_PEPPER + bool "Support pepper" + +config TARGET_AM335X_IGEP0033 + bool "Support am335x_igep0033" + +config TARGET_PCM051 + bool "Support pcm051" + +config TARGET_DRACO + bool "Support draco" + +config TARGET_DXR2 + bool "Support dxr2" + +config TARGET_PXM2 + bool "Support pxm2" + +config TARGET_RUT + bool "Support rut" + +config TARGET_PENGWYN + bool "Support pengwyn" + +config TARGET_AM335X_EVM + bool "Support am335x_evm" + +config TARGET_AM43XX_EVM + bool "Support am43xx_evm" + +config TARGET_TI814X_EVM + bool "Support ti814x_evm" + +config TARGET_TI816X_EVM + bool "Support ti816x_evm" + +config TARGET_SAMA5D3_XPLAINED + bool "Support sama5d3_xplained" + +config TARGET_SAMA5D3XEK + bool "Support sama5d3xek" + +config TARGET_BCM28155_AP + bool "Support bcm28155_ap" + +config TARGET_ARNDALE + bool "Support arndale" + +config TARGET_ORIGEN + bool "Support origen" + +config TARGET_SMDK5250 + bool "Support smdk5250" + +config TARGET_SNOW + bool "Support snow" + +config TARGET_PEACH_PIT + bool "Support peach-pit" + +config TARGET_SMDK5420 + bool "Support smdk5420" + +config TARGET_SMDKV310 + bool "Support smdkv310" + +config TARGET_TRATS + bool "Support trats" + +config TARGET_TRATS2 + bool "Support trats2" + +config TARGET_S5PC210_UNIVERSAL + bool "Support s5pc210_universal" + +config TARGET_HIGHBANK + bool "Support highbank" + +config TARGET_K2E_EVM + bool "Support k2e_evm" + +config TARGET_K2HK_EVM + bool "Support k2hk_evm" + +config TARGET_M53EVK + bool "Support m53evk" + +config TARGET_IMA3_MX53 + bool "Support ima3-mx53" + +config TARGET_MX51EVK + bool "Support mx51evk" + +config TARGET_MX53ARD + bool "Support mx53ard" + +config TARGET_MX53EVK + bool "Support mx53evk" + +config TARGET_MX53LOCO + bool "Support mx53loco" + +config TARGET_MX53SMD + bool "Support mx53smd" + +config TARGET_MX51_EFIKAMX + bool "Support mx51_efikamx" + +config TARGET_VISION2 + bool "Support vision2" + +config TARGET_UDOO + bool "Support udoo" + +config TARGET_WANDBOARD + bool "Support wandboard" + +config TARGET_TITANIUM + bool "Support titanium" + +config TARGET_NITROGEN6X + bool "Support nitrogen6x" + +config TARGET_CGTQMX6EVAL + bool "Support cgtqmx6eval" + +config TARGET_EMBESTMX6BOARDS + bool "Support embestmx6boards" + +config TARGET_MX6QARM2 + bool "Support mx6qarm2" + +config TARGET_MX6QSABREAUTO + bool "Support mx6qsabreauto" + +config TARGET_MX6SABRESD + bool "Support mx6sabresd" + +config TARGET_MX6SLEVK + bool "Support mx6slevk" + +config TARGET_GW_VENTANA + bool "Support gw_ventana" + +config TARGET_HUMMINGBOARD + bool "Support hummingboard" + +config TARGET_OMAP3_OVERO + bool "Support omap3_overo" + +config TARGET_OMAP3_PANDORA + bool "Support omap3_pandora" + +config TARGET_ECO5PK + bool "Support eco5pk" + +config TARGET_DIG297 + bool "Support dig297" + +config TARGET_CM_T35 + bool "Support cm_t35" + +config TARGET_TRICORDER + bool "Support tricorder" + +config TARGET_MCX + bool "Support mcx" + +config TARGET_OMAP3_IGEP00X0 + bool "Support omap3_igep00x0" + +config TARGET_AM3517_EVM + bool "Support am3517_evm" + +config TARGET_OMAP3_LOGIC + bool "Support omap3_logic" + +config TARGET_OMAP3_ZOOM1 + bool "Support omap3_zoom1" + +config TARGET_OMAP3_MVBLX + bool "Support omap3_mvblx" + +config TARGET_NOKIA_RX51 + bool "Support nokia_rx51" + +config TARGET_TAO3530 + bool "Support tao3530" + +config TARGET_TWISTER + bool "Support twister" + +config TARGET_MT_VENTOUX + bool "Support mt_ventoux" + +config TARGET_AM3517_CRANE + bool "Support am3517_crane" + +config TARGET_OMAP3_BEAGLE + bool "Support omap3_beagle" + +config TARGET_OMAP3_EVM + bool "Support omap3_evm" + +config TARGET_OMAP3_EVM_QUICK_MMC + bool "Support omap3_evm_quick_mmc" + +config TARGET_OMAP3_EVM_QUICK_NAND + bool "Support omap3_evm_quick_nand" + +config TARGET_OMAP3_SDP3430 + bool "Support omap3_sdp3430" + +config TARGET_DEVKIT8000 + bool "Support devkit8000" + +config TARGET_DUOVERO + bool "Support duovero" + +config TARGET_OMAP4_PANDA + bool "Support omap4_panda" + +config TARGET_OMAP4_SDP4430 + bool "Support omap4_sdp4430" + +config TARGET_CM_T54 + bool "Support cm_t54" + +config TARGET_DRA7XX_EVM + bool "Support dra7xx_evm" + +config TARGET_OMAP5_UEVM + bool "Support omap5_uevm" + +config TARGET_ARMADILLO_800EVA + bool "Support armadillo-800eva" + +config TARGET_KZM9G + bool "Support kzm9g" + +config TARGET_ALT + bool "Support alt" + +config TARGET_KOELSCH + bool "Support koelsch" + +config TARGET_LAGER + bool "Support lager" + +config TARGET_S5P_GONI + bool "Support s5p_goni" + +config TARGET_SMDKC100 + bool "Support smdkc100" + +config TARGET_SOCFPGA_CYCLONE5 + bool "Support socfpga_cyclone5" + +config TARGET_SUN4I + bool "Support sun4i" + +config TARGET_SUN5I + bool "Support sun5i" + +config TARGET_SUN7I + bool "Support sun7i" + +config TARGET_SNOWBALL + bool "Support snowball" + +config TARGET_U8500_HREF + bool "Support u8500_href" + +config TARGET_VF610TWR + bool "Support vf610twr" + +config TARGET_ZYNQ_MICROZED + bool "Support zynq_microzed" + +config TARGET_ZYNQ_ZC70X + bool "Support zynq_zc70x" + +config TARGET_ZYNQ_ZC770 + bool "Support zynq_zc770" + +config TARGET_ZYNQ_ZED + bool "Support zynq_zed" + +config TARGET_MEDCOM_WIDE + bool "Support medcom-wide" + +config TARGET_PLUTUX + bool "Support plutux" + +config TARGET_TEC + bool "Support tec" + +config TARGET_PAZ00 + bool "Support paz00" + +config TARGET_TRIMSLICE + bool "Support trimslice" + +config TARGET_HARMONY + bool "Support harmony" + +config TARGET_SEABOARD + bool "Support seaboard" + +config TARGET_VENTANA + bool "Support ventana" + +config TARGET_WHISTLER + bool "Support whistler" + +config TARGET_COLIBRI_T20_IRIS + bool "Support colibri_t20_iris" + +config TARGET_TEC_NG + bool "Support tec-ng" + +config TARGET_BEAVER + bool "Support beaver" + +config TARGET_CARDHU + bool "Support cardhu" + +config TARGET_DALMORE + bool "Support dalmore" + +config TARGET_JETSON_TK1 + bool "Support jetson-tk1" + +config TARGET_VENICE2 + bool "Support venice2" + +config TARGET_VEXPRESS_AEMV8A + bool "Support vexpress_aemv8a" + +config TARGET_VEXPRESS_AEMV8A_SEMI + bool "Support vexpress_aemv8a_semi" + +config TARGET_LS2085A_EMU + bool "Support ls2085a_emu" + +config TARGET_LS2085A_SIMU + bool "Support ls2085a_simu" + +config TARGET_BALLOON3 + bool "Support balloon3" + +config TARGET_H2200 + bool "Support h2200" + +config TARGET_PALMLD + bool "Support palmld" + +config TARGET_PALMTC + bool "Support palmtc" + +config TARGET_PALMTREO680 + bool "Support palmtreo680" + +config TARGET_PXA255_IDP + bool "Support pxa255_idp" + +config TARGET_TRIZEPSIV + bool "Support trizepsiv" + +config TARGET_VPAC270 + bool "Support vpac270" + +config TARGET_XAENIAX + bool "Support xaeniax" + +config TARGET_ZIPITZ2 + bool "Support zipitz2" + +config TARGET_LP8X4X + bool "Support lp8x4x" + +config TARGET_COLIBRI_PXA270 + bool "Support colibri_pxa270" + +config TARGET_JORNADA + bool "Support jornada" + +endchoice + +source "board/8dtech/eco5pk/Kconfig" +source "board/Barix/ipam390/Kconfig" +source "board/BuR/kwb/Kconfig" +source "board/BuR/tseries/Kconfig" +source "board/BuS/eb_cpux9k2/Kconfig" +source "board/BuS/vl_ma2sc/Kconfig" +source "board/CarMediaLab/flea3/Kconfig" +source "board/LaCie/edminiv2/Kconfig" +source "board/LaCie/net2big_v2/Kconfig" +source "board/LaCie/netspace_v2/Kconfig" +source "board/LaCie/wireless_space/Kconfig" +source "board/Marvell/aspenite/Kconfig" +source "board/Marvell/dkb/Kconfig" +source "board/Marvell/dreamplug/Kconfig" +source "board/Marvell/gplugd/Kconfig" +source "board/Marvell/guruplug/Kconfig" +source "board/Marvell/mv88f6281gtw_ge/Kconfig" +source "board/Marvell/openrd/Kconfig" +source "board/Marvell/rd6281a/Kconfig" +source "board/Marvell/sheevaplug/Kconfig" +source "board/Seagate/dockstar/Kconfig" +source "board/Seagate/goflexhome/Kconfig" +source "board/afeb9260/Kconfig" +source "board/ait/cam_enc_4xx/Kconfig" +source "board/altera/socfpga/Kconfig" +source "board/armadeus/apf27/Kconfig" +source "board/armltd/integrator/Kconfig" +source "board/armltd/versatile/Kconfig" +source "board/armltd/vexpress/Kconfig" +source "board/armltd/vexpress64/Kconfig" +source "board/atmark-techno/armadillo-800eva/Kconfig" +source "board/atmel/at91rm9200ek/Kconfig" +source "board/atmel/at91sam9260ek/Kconfig" +source "board/atmel/at91sam9261ek/Kconfig" +source "board/atmel/at91sam9263ek/Kconfig" +source "board/atmel/at91sam9m10g45ek/Kconfig" +source "board/atmel/at91sam9n12ek/Kconfig" +source "board/atmel/at91sam9rlek/Kconfig" +source "board/atmel/at91sam9x5ek/Kconfig" +source "board/atmel/sama5d3_xplained/Kconfig" +source "board/atmel/sama5d3xek/Kconfig" +source "board/avionic-design/medcom-wide/Kconfig" +source "board/avionic-design/plutux/Kconfig" +source "board/avionic-design/tec-ng/Kconfig" +source "board/avionic-design/tec/Kconfig" +source "board/balloon3/Kconfig" +source "board/barco/titanium/Kconfig" +source "board/bluegiga/apx4devkit/Kconfig" +source "board/bluewater/snapper9260/Kconfig" +source "board/boundary/nitrogen6x/Kconfig" +source "board/broadcom/bcm28155_ap/Kconfig" +source "board/buffalo/lsxl/Kconfig" +source "board/calao/sbc35_a9g20/Kconfig" +source "board/calao/tny_a9260/Kconfig" +source "board/calao/usb_a9263/Kconfig" +source "board/cirrus/edb93xx/Kconfig" +source "board/cloudengines/pogo_e02/Kconfig" +source "board/cm4008/Kconfig" +source "board/cm41xx/Kconfig" +source "board/comelit/dig297/Kconfig" +source "board/compal/paz00/Kconfig" +source "board/compulab/cm_t335/Kconfig" +source "board/compulab/cm_t35/Kconfig" +source "board/compulab/cm_t54/Kconfig" +source "board/compulab/trimslice/Kconfig" +source "board/congatec/cgtqmx6eval/Kconfig" +source "board/corscience/tricorder/Kconfig" +source "board/creative/xfi3/Kconfig" +source "board/d-link/dns325/Kconfig" +source "board/davedenx/qong/Kconfig" +source "board/davinci/da8xxevm/Kconfig" +source "board/davinci/dm355evm/Kconfig" +source "board/davinci/dm355leopard/Kconfig" +source "board/davinci/dm365evm/Kconfig" +source "board/davinci/dm6467evm/Kconfig" +source "board/davinci/dvevm/Kconfig" +source "board/davinci/ea20/Kconfig" +source "board/davinci/schmoogie/Kconfig" +source "board/davinci/sffsdr/Kconfig" +source "board/davinci/sonata/Kconfig" +source "board/denx/m28evk/Kconfig" +source "board/denx/m53evk/Kconfig" +source "board/egnite/ethernut5/Kconfig" +source "board/embest/mx6boards/Kconfig" +source "board/emk/top9000/Kconfig" +source "board/enbw/enbw_cmc/Kconfig" +source "board/esd/meesc/Kconfig" +source "board/esd/otc570/Kconfig" +source "board/esg/ima3-mx53/Kconfig" +source "board/eukrea/cpu9260/Kconfig" +source "board/eukrea/cpuat91/Kconfig" +source "board/faraday/a320evb/Kconfig" +source "board/freescale/ls2085a/Kconfig" +source "board/freescale/mx23evk/Kconfig" +source "board/freescale/mx25pdk/Kconfig" +source "board/freescale/mx28evk/Kconfig" +source "board/freescale/mx31ads/Kconfig" +source "board/freescale/mx31pdk/Kconfig" +source "board/freescale/mx35pdk/Kconfig" +source "board/freescale/mx51evk/Kconfig" +source "board/freescale/mx53ard/Kconfig" +source "board/freescale/mx53evk/Kconfig" +source "board/freescale/mx53loco/Kconfig" +source "board/freescale/mx53smd/Kconfig" +source "board/freescale/mx6qarm2/Kconfig" +source "board/freescale/mx6qsabreauto/Kconfig" +source "board/freescale/mx6sabresd/Kconfig" +source "board/freescale/mx6slevk/Kconfig" +source "board/freescale/vf610twr/Kconfig" +source "board/gateworks/gw_ventana/Kconfig" +source "board/genesi/mx51_efikamx/Kconfig" +source "board/gumstix/duovero/Kconfig" +source "board/gumstix/pepper/Kconfig" +source "board/h2200/Kconfig" +source "board/hale/tt01/Kconfig" +source "board/highbank/Kconfig" +source "board/htkw/mcx/Kconfig" +source "board/icpdas/lp8x4x/Kconfig" +source "board/imx31_phycore/Kconfig" +source "board/iomega/iconnect/Kconfig" +source "board/isee/igep0033/Kconfig" +source "board/isee/igep00x0/Kconfig" +source "board/jornada/Kconfig" +source "board/karo/tk71/Kconfig" +source "board/karo/tx25/Kconfig" +source "board/keymile/km_arm/Kconfig" +source "board/kmc/kzm9g/Kconfig" +source "board/logicpd/am3517evm/Kconfig" +source "board/logicpd/imx27lite/Kconfig" +source "board/logicpd/imx31_litekit/Kconfig" +source "board/logicpd/omap3som/Kconfig" +source "board/logicpd/zoom1/Kconfig" +source "board/matrix_vision/mvblx/Kconfig" +source "board/mpl/vcma9/Kconfig" +source "board/nokia/rx51/Kconfig" +source "board/nvidia/beaver/Kconfig" +source "board/nvidia/cardhu/Kconfig" +source "board/nvidia/dalmore/Kconfig" +source "board/nvidia/harmony/Kconfig" +source "board/nvidia/jetson-tk1/Kconfig" +source "board/nvidia/seaboard/Kconfig" +source "board/nvidia/venice2/Kconfig" +source "board/nvidia/ventana/Kconfig" +source "board/nvidia/whistler/Kconfig" +source "board/olimex/mx23_olinuxino/Kconfig" +source "board/omicron/calimain/Kconfig" +source "board/overo/Kconfig" +source "board/palmld/Kconfig" +source "board/palmtc/Kconfig" +source "board/palmtreo680/Kconfig" +source "board/pandora/Kconfig" +source "board/phytec/pcm051/Kconfig" +source "board/ppcag/bg0900/Kconfig" +source "board/pxa255_idp/Kconfig" +source "board/raidsonic/ib62x0/Kconfig" +source "board/raspberrypi/rpi_b/Kconfig" +source "board/renesas/alt/Kconfig" +source "board/renesas/koelsch/Kconfig" +source "board/renesas/lager/Kconfig" +source "board/ronetix/pm9261/Kconfig" +source "board/ronetix/pm9263/Kconfig" +source "board/ronetix/pm9g45/Kconfig" +source "board/samsung/arndale/Kconfig" +source "board/samsung/goni/Kconfig" +source "board/samsung/origen/Kconfig" +source "board/samsung/smdk2410/Kconfig" +source "board/samsung/smdk5250/Kconfig" +source "board/samsung/smdk5420/Kconfig" +source "board/samsung/smdkc100/Kconfig" +source "board/samsung/smdkv310/Kconfig" +source "board/samsung/trats/Kconfig" +source "board/samsung/trats2/Kconfig" +source "board/samsung/universal_c210/Kconfig" +source "board/sandisk/sansa_fuze_plus/Kconfig" +source "board/scb9328/Kconfig" +source "board/schulercontrol/sc_sps_1/Kconfig" +source "board/siemens/corvus/Kconfig" +source "board/siemens/draco/Kconfig" +source "board/siemens/pxm2/Kconfig" +source "board/siemens/rut/Kconfig" +source "board/siemens/taurus/Kconfig" +source "board/silica/pengwyn/Kconfig" +source "board/solidrun/hummingboard/Kconfig" +source "board/spear/spear300/Kconfig" +source "board/spear/spear310/Kconfig" +source "board/spear/spear320/Kconfig" +source "board/spear/spear600/Kconfig" +source "board/spear/x600/Kconfig" +source "board/st-ericsson/snowball/Kconfig" +source "board/st-ericsson/u8500/Kconfig" +source "board/st/nhk8815/Kconfig" +source "board/sunxi/Kconfig" +source "board/syteco/jadecpu/Kconfig" +source "board/syteco/zmx25/Kconfig" +source "board/taskit/stamp9g20/Kconfig" +source "board/technexion/tao3530/Kconfig" +source "board/technexion/twister/Kconfig" +source "board/teejet/mt_ventoux/Kconfig" +source "board/ti/am335x/Kconfig" +source "board/ti/am3517crane/Kconfig" +source "board/ti/am43xx/Kconfig" +source "board/ti/beagle/Kconfig" +source "board/ti/dra7xx/Kconfig" +source "board/ti/evm/Kconfig" +source "board/ti/ks2_evm/Kconfig" +source "board/ti/omap5912osk/Kconfig" +source "board/ti/omap5_uevm/Kconfig" +source "board/ti/panda/Kconfig" +source "board/ti/sdp3430/Kconfig" +source "board/ti/sdp4430/Kconfig" +source "board/ti/ti814x/Kconfig" +source "board/ti/ti816x/Kconfig" +source "board/ti/tnetv107xevm/Kconfig" +source "board/timll/devkit3250/Kconfig" +source "board/timll/devkit8000/Kconfig" +source "board/toradex/colibri_pxa270/Kconfig" +source "board/toradex/colibri_t20_iris/Kconfig" +source "board/trizepsiv/Kconfig" +source "board/ttcontrol/vision2/Kconfig" +source "board/udoo/Kconfig" +source "board/vpac270/Kconfig" +source "board/wandboard/Kconfig" +source "board/woodburn/Kconfig" +source "board/xaeniax/Kconfig" +source "board/xilinx/zynq/Kconfig" +source "board/zipitz2/Kconfig" + +endmenu -- cgit v1.1 From 90f984e397a14d9b77128feff582a44dece4fbaf Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Wed, 30 Jul 2014 14:08:23 +0900 Subject: kconfig: delete redundant CONFIG_${ARCH} definition CONFIG_${ARCH} is defined by Kconfig. Signed-off-by: Masahiro Yamada Reviewed-by: Simon Glass --- arch/arm/config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/arm') diff --git a/arch/arm/config.mk b/arch/arm/config.mk index c3b8289..c339e6d 100644 --- a/arch/arm/config.mk +++ b/arch/arm/config.mk @@ -22,7 +22,7 @@ PLATFORM_RELFLAGS += $(call cc-option, -msoft-float) \ # Support generic board on ARM __HAVE_ARCH_GENERIC_BOARD := y -PLATFORM_CPPFLAGS += -DCONFIG_ARM -D__ARM__ +PLATFORM_CPPFLAGS += -D__ARM__ # Choose between ARM/Thumb instruction sets ifeq ($(CONFIG_SYS_THUMB_BUILD),y) -- cgit v1.1 From a6e50a88d8d3724fc75f1c6959b80a6c7c69cbad Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Fri, 18 Jul 2014 20:38:41 +0100 Subject: ahci: provide sunxi SATA driver using AHCI platform framework This enables the necessary clocks, in AHB0 and in PLL6_CFG. This is done for sun7i only since I don't have access to any other sunxi platforms with sata included. The PHY setup is derived from the Alwinner releases and Linux, but is mostly undocumented. The Allwinner AHCI controller also requires some magic (and, again, undocumented) DMA initialisation when starting a port. This is added under a suitable ifdef. This option is enabled for Cubieboard, Cubieboard2 and Cubietruck based on contents of Linux DTS files, including SATA power pin config taken from the DTS. All build tested, but runtime tested on Cubieboard2 and Cubietruck only. Signed-off-by: Ian Campbell Acked-by: Hans de Goede Signed-off-by: Hans de Goede --- arch/arm/cpu/armv7/sunxi/clock_sun4i.c | 4 ++++ arch/arm/include/asm/arch-sunxi/clock_sun4i.h | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'arch/arm') diff --git a/arch/arm/cpu/armv7/sunxi/clock_sun4i.c b/arch/arm/cpu/armv7/sunxi/clock_sun4i.c index b8b16cf..ecbdb01 100644 --- a/arch/arm/cpu/armv7/sunxi/clock_sun4i.c +++ b/arch/arm/cpu/armv7/sunxi/clock_sun4i.c @@ -39,6 +39,10 @@ void clock_init_safe(void) setbits_le32(&ccm->ahb_gate0, 0x1 << AHB_GATE_OFFSET_DMA); #endif writel(PLL6_CFG_DEFAULT, &ccm->pll6_cfg); +#ifdef CONFIG_SUNXI_AHCI + setbits_le32(&ccm->ahb_gate0, 0x1 << AHB_GATE_OFFSET_SATA); + setbits_le32(&ccm->pll6_cfg, 0x1 << CCM_PLL6_CTRL_SATA_EN_SHIFT); +#endif } #endif diff --git a/arch/arm/include/asm/arch-sunxi/clock_sun4i.h b/arch/arm/include/asm/arch-sunxi/clock_sun4i.h index 928f3f2..2531cbd 100644 --- a/arch/arm/include/asm/arch-sunxi/clock_sun4i.h +++ b/arch/arm/include/asm/arch-sunxi/clock_sun4i.h @@ -218,10 +218,13 @@ struct sunxi_ccm_reg { #define CCM_PLL5_CTRL_BYPASS (0x1 << 30) #define CCM_PLL5_CTRL_EN (0x1 << 31) -#define CCM_PLL6_CTRL_N_SHIFT 8 -#define CCM_PLL6_CTRL_N_MASK (0x1f << CCM_PLL6_CTRL_N_SHIFT) -#define CCM_PLL6_CTRL_K_SHIFT 4 -#define CCM_PLL6_CTRL_K_MASK (0x3 << CCM_PLL6_CTRL_K_SHIFT) +#define CCM_PLL6_CTRL_EN 31 +#define CCM_PLL6_CTRL_BYPASS_EN 30 +#define CCM_PLL6_CTRL_SATA_EN_SHIFT 14 +#define CCM_PLL6_CTRL_N_SHIFT 8 +#define CCM_PLL6_CTRL_N_MASK (0x1f << CCM_PLL6_CTRL_N_SHIFT) +#define CCM_PLL6_CTRL_K_SHIFT 4 +#define CCM_PLL6_CTRL_K_MASK (0x3 << CCM_PLL6_CTRL_K_SHIFT) #define CCM_GPS_CTRL_RESET (0x1 << 0) #define CCM_GPS_CTRL_GATE (0x1 << 1) -- cgit v1.1 From 06cdd94077b2ee94f6542cd794b1339d0275e149 Mon Sep 17 00:00:00 2001 From: Roman Byshko Date: Thu, 24 Jul 2014 22:54:20 +0200 Subject: sunxi: add defines to control USB Host clocks/resets The commit adds three defines which will be used in the EHCI driver to enable USB clock and assert reset controllers of the corresponding PHYs. Signed-off-by: Roman Byshko Acked-by: Ian Campbell Acked-by: Hans de Goede Signed-off-by: Hans de Goede --- arch/arm/include/asm/arch-sunxi/clock_sun4i.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'arch/arm') diff --git a/arch/arm/include/asm/arch-sunxi/clock_sun4i.h b/arch/arm/include/asm/arch-sunxi/clock_sun4i.h index 2531cbd..1ba997a 100644 --- a/arch/arm/include/asm/arch-sunxi/clock_sun4i.h +++ b/arch/arm/include/asm/arch-sunxi/clock_sun4i.h @@ -256,4 +256,8 @@ struct sunxi_ccm_reg { #define CCM_GMAC_CTRL_GPIT_MII (0x0 << 2) #define CCM_GMAC_CTRL_GPIT_RGMII (0x1 << 2) +#define CCM_USB_CTRL_PHY1_RST (0x1 << 1) +#define CCM_USB_CTRL_PHY2_RST (0x1 << 2) +#define CCM_USB_CTRL_PHYGATE (0x1 << 8) + #endif /* _SUNXI_CLOCK_SUN4I_H */ -- cgit v1.1 From fc703001365262b7dae6d11d2e32b2c8894a5e43 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sat, 26 Jul 2014 17:09:13 +0200 Subject: sunxi: Add CONFIG_MACPWR option On some boards the ethernet-phy needs to be powered up through a gpio, add support for this. Signed-off-by: Hans de Goede Acked-by: Ian Campbell --- arch/arm/cpu/armv7/sunxi/board.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'arch/arm') diff --git a/arch/arm/cpu/armv7/sunxi/board.c b/arch/arm/cpu/armv7/sunxi/board.c index 8f2cef3..f2cedbb 100644 --- a/arch/arm/cpu/armv7/sunxi/board.c +++ b/arch/arm/cpu/armv7/sunxi/board.c @@ -129,6 +129,11 @@ int cpu_eth_init(bd_t *bis) { __maybe_unused int rc; +#ifdef CONFIG_MACPWR + gpio_direction_output(CONFIG_MACPWR, 1); + mdelay(200); +#endif + #ifdef CONFIG_SUNXI_EMAC rc = sunxi_emac_initialize(bis); if (rc < 0) { -- cgit v1.1 From d5db7024aafc5ea603f3a34f83bb29a1eaa3cbe7 Mon Sep 17 00:00:00 2001 From: Marc Zyngier Date: Fri, 18 Jul 2014 21:06:38 +0100 Subject: sunxi: HYP/non-sec: add sun7i PSCI backend So far, only supporting the CPU_ON method. Other functions can be added later. Signed-off-by: Marc Zyngier Acked-by: Hans de Goede Signed-off-by: Hans de Goede --- arch/arm/cpu/armv7/sunxi/Makefile | 3 + arch/arm/cpu/armv7/sunxi/psci.S | 162 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 165 insertions(+) create mode 100644 arch/arm/cpu/armv7/sunxi/psci.S (limited to 'arch/arm') diff --git a/arch/arm/cpu/armv7/sunxi/Makefile b/arch/arm/cpu/armv7/sunxi/Makefile index 6c70639..e9721b2 100644 --- a/arch/arm/cpu/armv7/sunxi/Makefile +++ b/arch/arm/cpu/armv7/sunxi/Makefile @@ -17,6 +17,9 @@ obj-$(CONFIG_SUN7I) += clock_sun4i.o ifndef CONFIG_SPL_BUILD obj-y += cpu_info.o +ifdef CONFIG_ARMV7_PSCI +obj-y += psci.o +endif endif ifdef CONFIG_SPL_BUILD diff --git a/arch/arm/cpu/armv7/sunxi/psci.S b/arch/arm/cpu/armv7/sunxi/psci.S new file mode 100644 index 0000000..0084c81 --- /dev/null +++ b/arch/arm/cpu/armv7/sunxi/psci.S @@ -0,0 +1,162 @@ +/* + * Copyright (C) 2013 - ARM Ltd + * Author: Marc Zyngier + * + * Based on code by Carl van Schaik . + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include + +/* + * Memory layout: + * + * SECURE_RAM to text_end : + * ._secure_text section + * text_end to ALIGN_PAGE(text_end): + * nothing + * ALIGN_PAGE(text_end) to ALIGN_PAGE(text_end) + 0x1000) + * 1kB of stack per CPU (4 CPUs max). + */ + + .pushsection ._secure.text, "ax" + + .arch_extension sec + +#define ONE_MS (CONFIG_SYS_CLK_FREQ / 1000) +#define TEN_MS (10 * ONE_MS) + +.macro timer_wait reg, ticks + @ Program CNTP_TVAL + movw \reg, #(\ticks & 0xffff) + movt \reg, #(\ticks >> 16) + mcr p15, 0, \reg, c14, c2, 0 + isb + @ Enable physical timer, mask interrupt + mov \reg, #3 + mcr p15, 0, \reg, c14, c2, 1 + @ Poll physical timer until ISTATUS is on +1: isb + mrc p15, 0, \reg, c14, c2, 1 + ands \reg, \reg, #4 + bne 1b + @ Disable timer + mov \reg, #0 + mcr p15, 0, \reg, c14, c2, 1 + isb +.endm + +.globl psci_arch_init +psci_arch_init: + mrc p15, 0, r5, c1, c1, 0 @ Read SCR + bic r5, r5, #1 @ Secure mode + mcr p15, 0, r5, c1, c1, 0 @ Write SCR + isb + + mrc p15, 0, r4, c0, c0, 5 @ MPIDR + and r4, r4, #3 @ cpu number in cluster + mov r5, #400 @ 1kB of stack per CPU + mul r4, r4, r5 + + adr r5, text_end @ end of text + add r5, r5, #0x2000 @ Skip two pages + lsr r5, r5, #12 @ Align to start of page + lsl r5, r5, #12 + sub sp, r5, r4 @ here's our stack! + + bx lr + + @ r1 = target CPU + @ r2 = target PC +.globl psci_cpu_on +psci_cpu_on: + adr r0, _target_pc + str r2, [r0] + dsb + + movw r0, #(SUNXI_CPUCFG_BASE & 0xffff) + movt r0, #(SUNXI_CPUCFG_BASE >> 16) + + @ CPU mask + and r1, r1, #3 @ only care about first cluster + mov r4, #1 + lsl r4, r4, r1 + + adr r6, _sunxi_cpu_entry + str r6, [r0, #0x1a4] @ PRIVATE_REG (boot vector) + + @ Assert reset on target CPU + mov r6, #0 + lsl r5, r1, #6 @ 64 bytes per CPU + add r5, r5, #0x40 @ Offset from base + add r5, r5, r0 @ CPU control block + str r6, [r5] @ Reset CPU + + @ l1 invalidate + ldr r6, [r0, #0x184] + bic r6, r6, r4 + str r6, [r0, #0x184] + + @ Lock CPU + ldr r6, [r0, #0x1e4] + bic r6, r6, r4 + str r6, [r0, #0x1e4] + + @ Release power clamp + movw r6, #0x1ff + movt r6, #0 +1: lsrs r6, r6, #1 + str r6, [r0, #0x1b0] + bne 1b + + timer_wait r1, TEN_MS + + @ Clear power gating + ldr r6, [r0, #0x1b4] + bic r6, r6, #1 + str r6, [r0, #0x1b4] + + @ Deassert reset on target CPU + mov r6, #3 + str r6, [r5] + + @ Unlock CPU + ldr r6, [r0, #0x1e4] + orr r6, r6, r4 + str r6, [r0, #0x1e4] + + mov r0, #ARM_PSCI_RET_SUCCESS @ Return PSCI_RET_SUCCESS + mov pc, lr + +_target_pc: + .word 0 + +_sunxi_cpu_entry: + @ Set SMP bit + mrc p15, 0, r0, c1, c0, 1 + orr r0, r0, #0x40 + mcr p15, 0, r0, c1, c0, 1 + isb + + bl _nonsec_init + bl psci_arch_init + + adr r0, _target_pc + ldr r0, [r0] + b _do_nonsec_entry + +text_end: + .popsection -- cgit v1.1 From 3fe3b4fb1c5adb00502276312696e38e9a7e9b5b Mon Sep 17 00:00:00 2001 From: DrEagle Date: Fri, 25 Jul 2014 21:07:30 +0200 Subject: ARM: kirkwood: add mvsdio driver This patch add Marvell kirkwood MVSDIO/MMC driver and enable it for Sheevaplugs and OpenRD boards. Signed-off-by: Gerald Kerma Reviewed-by: Stefan Roese Acked-by: Pantelis Antoniou --- arch/arm/cpu/arm926ejs/kirkwood/cpu.c | 9 +++++++++ arch/arm/include/asm/arch-kirkwood/kirkwood.h | 1 + 2 files changed, 10 insertions(+) (limited to 'arch/arm') diff --git a/arch/arm/cpu/arm926ejs/kirkwood/cpu.c b/arch/arm/cpu/arm926ejs/kirkwood/cpu.c index da80240..881e2de 100644 --- a/arch/arm/cpu/arm926ejs/kirkwood/cpu.c +++ b/arch/arm/cpu/arm926ejs/kirkwood/cpu.c @@ -13,6 +13,7 @@ #include #include #include +#include #define BUFLEN 16 @@ -377,3 +378,11 @@ int cpu_eth_init(bd_t *bis) return 0; } #endif + +#ifdef CONFIG_MVEBU_MMC +int board_mmc_init(bd_t *bis) +{ + mvebu_mmc_init(bis); + return 0; +} +#endif /* CONFIG_MVEBU_MMC */ diff --git a/arch/arm/include/asm/arch-kirkwood/kirkwood.h b/arch/arm/include/asm/arch-kirkwood/kirkwood.h index bc207f5..3ea51d7 100644 --- a/arch/arm/include/asm/arch-kirkwood/kirkwood.h +++ b/arch/arm/include/asm/arch-kirkwood/kirkwood.h @@ -39,6 +39,7 @@ #define KW_EGIGA0_BASE (KW_REGISTER(0x72000)) #define KW_EGIGA1_BASE (KW_REGISTER(0x76000)) #define KW_SATA_BASE (KW_REGISTER(0x80000)) +#define KW_SDIO_BASE (KW_REGISTER(0x90000)) /* Kirkwood Sata controller has two ports */ #define KW_SATA_PORT0_OFFSET 0x2000 -- cgit v1.1 From 7eca6b6327e3a33f9c2185321034c9ae7a70662e Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Tue, 22 Jul 2014 02:34:51 +0200 Subject: arm: s3c: Unify the S3C24xx SDI structure Unify the register structure so they can be easily used across all of S3C24xx lineup. Signed-off-by: Marek Vasut Cc: Kyungmin Park Cc: Lukasz Majewski Cc: Minkyu Kang Cc: Pantelis Antoniou Cc: Vladimir Zapolskiy Acked-by: Pantelis Antoniou --- arch/arm/include/asm/arch-s3c24x0/s3c2410.h | 4 ++-- arch/arm/include/asm/arch-s3c24x0/s3c2440.h | 4 ++-- arch/arm/include/asm/arch-s3c24x0/s3c24x0.h | 13 ++++++------- 3 files changed, 10 insertions(+), 11 deletions(-) (limited to 'arch/arm') diff --git a/arch/arm/include/asm/arch-s3c24x0/s3c2410.h b/arch/arm/include/asm/arch-s3c24x0/s3c2410.h index 01fe0f2..ce4186f 100644 --- a/arch/arm/include/asm/arch-s3c24x0/s3c2410.h +++ b/arch/arm/include/asm/arch-s3c24x0/s3c2410.h @@ -139,9 +139,9 @@ static inline struct s3c24x0_spi *s3c24x0_get_base_spi(void) return (struct s3c24x0_spi *)S3C24X0_SPI_BASE; } -static inline struct s3c2410_sdi *s3c2410_get_base_sdi(void) +static inline struct s3c24x0_sdi *s3c24x0_get_base_sdi(void) { - return (struct s3c2410_sdi *)S3C2410_SDI_BASE; + return (struct s3c24x0_sdi *)S3C2410_SDI_BASE; } #endif /*__S3C2410_H__*/ diff --git a/arch/arm/include/asm/arch-s3c24x0/s3c2440.h b/arch/arm/include/asm/arch-s3c24x0/s3c2440.h index 15a7cb4..3f44bdc 100644 --- a/arch/arm/include/asm/arch-s3c24x0/s3c2440.h +++ b/arch/arm/include/asm/arch-s3c24x0/s3c2440.h @@ -137,9 +137,9 @@ static inline struct s3c24x0_spi *s3c24x0_get_base_spi(void) return (struct s3c24x0_spi *)S3C24X0_SPI_BASE; } -static inline struct s3c2440_sdi *s3c2440_get_base_sdi(void) +static inline struct s3c24x0_sdi *s3c24x0_get_base_sdi(void) { - return (struct s3c2440_sdi *)S3C2440_SDI_BASE; + return (struct s3c24x0_sdi *)S3C2440_SDI_BASE; } #endif /*__S3C2440_H__*/ diff --git a/arch/arm/include/asm/arch-s3c24x0/s3c24x0.h b/arch/arm/include/asm/arch-s3c24x0/s3c24x0.h index 86d720c..c122eb9 100644 --- a/arch/arm/include/asm/arch-s3c24x0/s3c24x0.h +++ b/arch/arm/include/asm/arch-s3c24x0/s3c24x0.h @@ -675,7 +675,7 @@ struct s3c2400_mmc { /* SD INTERFACE (see S3C2410 manual chapter 19) */ -struct s3c2410_sdi { +struct s3c24x0_sdi { u32 sdicon; u32 sdipre; u32 sdicarg; @@ -691,14 +691,13 @@ struct s3c2410_sdi { u32 sdidcnt; u32 sdidsta; u32 sdifsta; -#ifdef __BIG_ENDIAN - u8 res[3]; - u8 sdidat; +#ifdef CONFIG_S3C2410 + u32 sdidat; + u32 sdiimsk; #else - u8 sdidat; - u8 res[3]; -#endif u32 sdiimsk; + u32 sdidat; +#endif }; #endif /*__S3C24X0_H__*/ -- cgit v1.1 From dae0f5c644c0f76e67306bd49c09d95373b7357a Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Tue, 22 Jul 2014 02:34:52 +0200 Subject: mmc: s3c: Add SD driver Implement SD driver for the S3C24xx family. This implementation is currently only capable of using the PIO transfers, DMA is not supported. Signed-off-by: Marek Vasut Cc: Kyungmin Park Cc: Lukasz Majewski Cc: Minkyu Kang Cc: Pantelis Antoniou Cc: Vladimir Zapolskiy Acked-by: Pantelis Antoniou --- arch/arm/include/asm/arch-s3c24x0/s3c24x0.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'arch/arm') diff --git a/arch/arm/include/asm/arch-s3c24x0/s3c24x0.h b/arch/arm/include/asm/arch-s3c24x0/s3c24x0.h index c122eb9..ed9df34 100644 --- a/arch/arm/include/asm/arch-s3c24x0/s3c24x0.h +++ b/arch/arm/include/asm/arch-s3c24x0/s3c24x0.h @@ -700,4 +700,10 @@ struct s3c24x0_sdi { #endif }; +#ifdef CONFIG_CMD_MMC +#include +int s3cmmc_initialize(bd_t *bis, int (*getcd)(struct mmc *), + int (*getwp)(struct mmc *)); +#endif + #endif /*__S3C24X0_H__*/ -- cgit v1.1 From aae2aef9c807a13ec9074efe48fae5bb5e3c6039 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Thu, 10 Jul 2014 22:23:26 -0600 Subject: arm: Set up global data before board_init_f() At present arm defines CONFIG_SYS_GENERIC_GLOBAL_DATA, meaning that the global_data pointer is set up in board_init_f(). However it is actually set up before this, it just isn't zeroed. If we zero the global data before calling board_init_f() then we don't need to define CONFIG_SYS_GENERIC_GLOBAL_DATA. Make this change (on arm32 only) to simplify the init process. I don't have the ability to test aarch64 yet. Signed-off-by: Simon Glass Acked-by: Tom Rini --- arch/arm/include/asm/config.h | 2 ++ arch/arm/lib/crt0.S | 9 +++++++++ 2 files changed, 11 insertions(+) (limited to 'arch/arm') diff --git a/arch/arm/include/asm/config.h b/arch/arm/include/asm/config.h index d3433da..5f2a5f4 100644 --- a/arch/arm/include/asm/config.h +++ b/arch/arm/include/asm/config.h @@ -7,7 +7,9 @@ #ifndef _ASM_CONFIG_H_ #define _ASM_CONFIG_H_ +#ifdef __aarch64__ #define CONFIG_SYS_GENERIC_GLOBAL_DATA +#endif #define CONFIG_LMB #define CONFIG_SYS_BOOT_RAMDISK_HIGH diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S index dfc2de9..43aa212 100644 --- a/arch/arm/lib/crt0.S +++ b/arch/arm/lib/crt0.S @@ -67,10 +67,19 @@ ENTRY(_main) ldr sp, =(CONFIG_SYS_INIT_SP_ADDR) #endif bic sp, sp, #7 /* 8-byte alignment for ABI compliance */ + mov r2, sp sub sp, sp, #GD_SIZE /* allocate one GD above SP */ bic sp, sp, #7 /* 8-byte alignment for ABI compliance */ mov r9, sp /* GD is above SP */ + mov r1, sp mov r0, #0 +clr_gd: + cmp r1, r2 /* while not at end of GD */ + strlo r0, [r1] /* clear 32-bit GD word */ + addlo r1, r1, #4 /* move to next */ + blo clr_gd + + /* mov r0, #0 not needed due to above code */ bl board_init_f #if ! defined(CONFIG_SPL_BUILD) -- cgit v1.1 From 76a1e584e10d14f1981f65376636ecff80bdc19b Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Thu, 10 Jul 2014 22:23:29 -0600 Subject: arm: Support pre-relocation malloc() Add support for re-relocation malloc() in arm's start-up code. Signed-off-by: Simon Glass --- arch/arm/lib/crt0.S | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'arch/arm') diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S index 43aa212..29cdad0 100644 --- a/arch/arm/lib/crt0.S +++ b/arch/arm/lib/crt0.S @@ -78,7 +78,10 @@ clr_gd: strlo r0, [r1] /* clear 32-bit GD word */ addlo r1, r1, #4 /* move to next */ blo clr_gd - +#if defined(CONFIG_SYS_MALLOC_F_LEN) && !defined(CONFIG_SPL_BUILD) + sub sp, sp, #CONFIG_SYS_MALLOC_F_LEN + str sp, [r9, #GD_MALLOC_BASE] +#endif /* mov r0, #0 not needed due to above code */ bl board_init_f -- cgit v1.1