diff options
Diffstat (limited to 'arch')
82 files changed, 3393 insertions, 721 deletions
diff --git a/arch/Kconfig b/arch/Kconfig new file mode 100644 index 0000000..8620a4f --- /dev/null +++ b/arch/Kconfig @@ -0,0 +1,66 @@ +choice + prompt "Architecture select" + default SANDBOX + +config ARC + bool "ARC architecture" + +config ARM + bool "ARM architecture" + +config AVR32 + bool "AVR32 architecture" + +config BLACKFIN + bool "Blackfin architecture" + +config M68K + bool "M68000 architecture" + +config MICROBLAZE + bool "MicroBlaze architecture" + +config MIPS + bool "MIPS architecture" + +config NDS32 + bool "NDS32 architecture" + +config NIOS2 + bool "Nios II architecture" + +config OPENRISC + bool "OpenRISC architecture" + +config PPC + bool "PowerPC architecture" + +config SANDBOX + bool "Sandbox" + +config SH + bool "SuperH architecture" + +config SPARC + bool "SPARC architecture" + +config X86 + bool "x86 architecture" + +endchoice + +source "arch/arc/Kconfig" +source "arch/arm/Kconfig" +source "arch/avr32/Kconfig" +source "arch/blackfin/Kconfig" +source "arch/m68k/Kconfig" +source "arch/microblaze/Kconfig" +source "arch/mips/Kconfig" +source "arch/nds32/Kconfig" +source "arch/nios2/Kconfig" +source "arch/openrisc/Kconfig" +source "arch/powerpc/Kconfig" +source "arch/sandbox/Kconfig" +source "arch/sh/Kconfig" +source "arch/sparc/Kconfig" +source "arch/x86/Kconfig" diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig new file mode 100644 index 0000000..51d5aff --- /dev/null +++ b/arch/arc/Kconfig @@ -0,0 +1,29 @@ +menu "ARC architecture" + depends on ARC + +config SYS_ARCH + string + default "arc" + +choice + prompt "Target select" + +config TARGET_TB100 + bool "Support tb100" + +config TARGET_ARCANGEL4 + bool "Support arcangel4" + +config TARGET_ARCANGEL4_BE + bool "Support arcangel4-be" + +config TARGET_AXS101 + bool "Support axs101" + +endchoice + +source "board/abilis/tb100/Kconfig" +source "board/synopsys/Kconfig" +source "board/synopsys/axs101/Kconfig" + +endmenu diff --git a/arch/arc/config.mk b/arch/arc/config.mk index a3b8df7..e408800 100644 --- a/arch/arc/config.mk +++ b/arch/arc/config.mk @@ -21,7 +21,7 @@ ifeq ($(CROSS_COMPILE),) CROSS_COMPILE := $(ARC_CROSS_COMPILE) endif -PLATFORM_CPPFLAGS += -ffixed-r25 -D__ARC__ -DCONFIG_ARC -gdwarf-2 +PLATFORM_CPPFLAGS += -ffixed-r25 -D__ARC__ -gdwarf-2 # Needed for relocation LDFLAGS_FINAL += -pie 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 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) 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 <asm/io.h> #include <asm/arch/cpu.h> #include <asm/arch/kirkwood.h> +#include <mvebu_mmc.h> #define BUFLEN 16 @@ -377,3 +378,11 @@ int cpu_eth_init(bd_t *bis) return 0; } #endif + +#ifdef CONFIG_MVEBU_MMC +int board_mmc_init(bd_t *bis) +{ + mvebu_mmc_init(bis); + return 0; +} +#endif /* CONFIG_MVEBU_MMC */ 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/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) { 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/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 <marc.zyngier@arm.com> + * + * Based on code by Carl van Schaik <carl@ok-labs.com>. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <config.h> +#include <asm/psci.h> +#include <asm/arch/cpu.h> + +/* + * Memory layout: + * + * SECURE_RAM to text_end : + * ._secure_text section + * text_end to ALIGN_PAGE(text_end): + * nothing + * ALIGN_PAGE(text_end) to ALIGN_PAGE(text_end) + 0x1000) + * 1kB of stack per CPU (4 CPUs max). + */ + + .pushsection ._secure.text, "ax" + + .arch_extension sec + +#define ONE_MS (CONFIG_SYS_CLK_FREQ / 1000) +#define TEN_MS (10 * ONE_MS) + +.macro timer_wait reg, ticks + @ Program CNTP_TVAL + movw \reg, #(\ticks & 0xffff) + movt \reg, #(\ticks >> 16) + mcr p15, 0, \reg, c14, c2, 0 + isb + @ Enable physical timer, mask interrupt + mov \reg, #3 + mcr p15, 0, \reg, c14, c2, 1 + @ Poll physical timer until ISTATUS is on +1: isb + mrc p15, 0, \reg, c14, c2, 1 + ands \reg, \reg, #4 + bne 1b + @ Disable timer + mov \reg, #0 + mcr p15, 0, \reg, c14, c2, 1 + isb +.endm + +.globl psci_arch_init +psci_arch_init: + mrc p15, 0, r5, c1, c1, 0 @ Read SCR + bic r5, r5, #1 @ Secure mode + mcr p15, 0, r5, c1, c1, 0 @ Write SCR + isb + + mrc p15, 0, r4, c0, c0, 5 @ MPIDR + and r4, r4, #3 @ cpu number in cluster + mov r5, #400 @ 1kB of stack per CPU + mul r4, r4, r5 + + adr r5, text_end @ end of text + add r5, r5, #0x2000 @ Skip two pages + lsr r5, r5, #12 @ Align to start of page + lsl r5, r5, #12 + sub sp, r5, r4 @ here's our stack! + + bx lr + + @ r1 = target CPU + @ r2 = target PC +.globl psci_cpu_on +psci_cpu_on: + adr r0, _target_pc + str r2, [r0] + dsb + + movw r0, #(SUNXI_CPUCFG_BASE & 0xffff) + movt r0, #(SUNXI_CPUCFG_BASE >> 16) + + @ CPU mask + and r1, r1, #3 @ only care about first cluster + mov r4, #1 + lsl r4, r4, r1 + + adr r6, _sunxi_cpu_entry + str r6, [r0, #0x1a4] @ PRIVATE_REG (boot vector) + + @ Assert reset on target CPU + mov r6, #0 + lsl r5, r1, #6 @ 64 bytes per CPU + add r5, r5, #0x40 @ Offset from base + add r5, r5, r0 @ CPU control block + str r6, [r5] @ Reset CPU + + @ l1 invalidate + ldr r6, [r0, #0x184] + bic r6, r6, r4 + str r6, [r0, #0x184] + + @ Lock CPU + ldr r6, [r0, #0x1e4] + bic r6, r6, r4 + str r6, [r0, #0x1e4] + + @ Release power clamp + movw r6, #0x1ff + movt r6, #0 +1: lsrs r6, r6, #1 + str r6, [r0, #0x1b0] + bne 1b + + timer_wait r1, TEN_MS + + @ Clear power gating + ldr r6, [r0, #0x1b4] + bic r6, r6, #1 + str r6, [r0, #0x1b4] + + @ Deassert reset on target CPU + mov r6, #3 + str r6, [r5] + + @ Unlock CPU + ldr r6, [r0, #0x1e4] + orr r6, r6, r4 + str r6, [r0, #0x1e4] + + mov r0, #ARM_PSCI_RET_SUCCESS @ Return PSCI_RET_SUCCESS + mov pc, lr + +_target_pc: + .word 0 + +_sunxi_cpu_entry: + @ Set SMP bit + mrc p15, 0, r0, c1, c0, 1 + orr r0, r0, #0x40 + mcr p15, 0, r0, c1, c0, 1 + isb + + bl _nonsec_init + bl psci_arch_init + + adr r0, _target_pc + ldr r0, [r0] + b _do_nonsec_entry + +text_end: + .popsection 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/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 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..ed9df34 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,19 @@ struct s3c2410_sdi { u32 sdidcnt; u32 sdidsta; u32 sdifsta; -#ifdef __BIG_ENDIAN - u8 res[3]; - u8 sdidat; +#ifdef CONFIG_S3C2410 + u32 sdidat; + u32 sdiimsk; #else - u8 sdidat; - u8 res[3]; -#endif u32 sdiimsk; + u32 sdidat; +#endif }; +#ifdef CONFIG_CMD_MMC +#include <mmc.h> +int s3cmmc_initialize(bd_t *bis, int (*getcd)(struct mmc *), + int (*getwp)(struct mmc *)); +#endif + #endif /*__S3C24X0_H__*/ diff --git a/arch/arm/include/asm/arch-sunxi/clock_sun4i.h b/arch/arm/include/asm/arch-sunxi/clock_sun4i.h index 928f3f2..1ba997a 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) @@ -253,4 +256,8 @@ struct sunxi_ccm_reg { #define CCM_GMAC_CTRL_GPIT_MII (0x0 << 2) #define CCM_GMAC_CTRL_GPIT_RGMII (0x1 << 2) +#define CCM_USB_CTRL_PHY1_RST (0x1 << 1) +#define CCM_USB_CTRL_PHY2_RST (0x1 << 2) +#define CCM_USB_CTRL_PHYGATE (0x1 << 8) + #endif /* _SUNXI_CLOCK_SUN4I_H */ 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/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() diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S index dfc2de9..29cdad0 100644 --- a/arch/arm/lib/crt0.S +++ b/arch/arm/lib/crt0.S @@ -67,10 +67,22 @@ ENTRY(_main) ldr sp, =(CONFIG_SYS_INIT_SP_ADDR) #endif bic sp, sp, #7 /* 8-byte alignment for ABI compliance */ + mov r2, sp sub sp, sp, #GD_SIZE /* allocate one GD above SP */ bic sp, sp, #7 /* 8-byte alignment for ABI compliance */ mov r9, sp /* GD is above SP */ + mov r1, sp mov r0, #0 +clr_gd: + cmp r1, r2 /* while not at end of GD */ + strlo r0, [r1] /* clear 32-bit GD word */ + addlo r1, r1, #4 /* move to next */ + blo clr_gd +#if defined(CONFIG_SYS_MALLOC_F_LEN) && !defined(CONFIG_SPL_BUILD) + sub sp, sp, #CONFIG_SYS_MALLOC_F_LEN + str sp, [r9, #GD_MALLOC_BASE] +#endif + /* mov r0, #0 not needed due to above code */ bl board_init_f #if ! defined(CONFIG_SPL_BUILD) diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig new file mode 100644 index 0000000..46337ae --- /dev/null +++ b/arch/avr32/Kconfig @@ -0,0 +1,51 @@ +menu "AVR32 architecture" + depends on AVR32 + +config SYS_ARCH + string + default "avr32" + +choice + prompt "Target select" + +config TARGET_ATNGW100 + bool "Support atngw100" + +config TARGET_ATNGW100MKII + bool "Support atngw100mkii" + +config TARGET_ATSTK1002 + bool "Support atstk1002" + +config TARGET_ATSTK1003 + bool "Support atstk1003" + +config TARGET_ATSTK1004 + bool "Support atstk1004" + +config TARGET_ATSTK1006 + bool "Support atstk1006" + +config TARGET_FAVR_32_EZKIT + bool "Support favr-32-ezkit" + +config TARGET_GRASSHOPPER + bool "Support grasshopper" + +config TARGET_MIMC200 + bool "Support mimc200" + +config TARGET_HAMMERHEAD + bool "Support hammerhead" + +endchoice + +source "board/atmel/atngw100/Kconfig" +source "board/atmel/atngw100mkii/Kconfig" +source "board/atmel/atstk1000/Kconfig" +source "board/earthlcd/favr-32-ezkit/Kconfig" +source "board/in-circuit/grasshopper/Kconfig" +source "board/mimc/mimc200/Kconfig" +source "board/miromico/hammerhead/Kconfig" + +endmenu diff --git a/arch/avr32/config.mk b/arch/avr32/config.mk index 28a371c..469185e 100644 --- a/arch/avr32/config.mk +++ b/arch/avr32/config.mk @@ -9,7 +9,6 @@ ifeq ($(CROSS_COMPILE),) CROSS_COMPILE := avr32-linux- endif -PLATFORM_CPPFLAGS += -DCONFIG_AVR32 CONFIG_STANDALONE_LOAD_ADDR ?= 0x00000000 PLATFORM_RELFLAGS += -ffixed-r5 -fPIC -mno-init-got -mrelax diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig new file mode 100644 index 0000000..bb8a133 --- /dev/null +++ b/arch/blackfin/Kconfig @@ -0,0 +1,150 @@ +menu "Blackfin architecture" + depends on BLACKFIN + +config SYS_ARCH + string + default "blackfin" + +choice + prompt "Target select" + +config TARGET_BCT_BRETTL2 + bool "Support bct-brettl2" + +config TARGET_BF506F_EZKIT + bool "Support bf506f-ezkit" + +config TARGET_BF518F_EZBRD + bool "Support bf518f-ezbrd" + +config TARGET_BF525_UCR2 + bool "Support bf525-ucr2" + +config TARGET_BF526_EZBRD + bool "Support bf526-ezbrd" + +config TARGET_BF527_AD7160_EVAL + bool "Support bf527-ad7160-eval" + +config TARGET_BF527_EZKIT + bool "Support bf527-ezkit" + +config TARGET_BF527_SDP + bool "Support bf527-sdp" + +config TARGET_BF533_EZKIT + bool "Support bf533-ezkit" + +config TARGET_BF533_STAMP + bool "Support bf533-stamp" + +config TARGET_BF537_MINOTAUR + bool "Support bf537-minotaur" + +config TARGET_BF537_PNAV + bool "Support bf537-pnav" + +config TARGET_BF537_SRV1 + bool "Support bf537-srv1" + +config TARGET_BF537_STAMP + bool "Support bf537-stamp" + +config TARGET_BF538F_EZKIT + bool "Support bf538f-ezkit" + +config TARGET_BF548_EZKIT + bool "Support bf548-ezkit" + +config TARGET_BF561_ACVILON + bool "Support bf561-acvilon" + +config TARGET_BF561_EZKIT + bool "Support bf561-ezkit" + +config TARGET_BF609_EZKIT + bool "Support bf609-ezkit" + +config TARGET_BLACKSTAMP + bool "Support blackstamp" + +config TARGET_BLACKVME + bool "Support blackvme" + +config TARGET_BR4 + bool "Support br4" + +config TARGET_CM_BF527 + bool "Support cm-bf527" + +config TARGET_CM_BF533 + bool "Support cm-bf533" + +config TARGET_CM_BF537E + bool "Support cm-bf537e" + +config TARGET_CM_BF537U + bool "Support cm-bf537u" + +config TARGET_CM_BF548 + bool "Support cm-bf548" + +config TARGET_CM_BF561 + bool "Support cm-bf561" + +config TARGET_DNP5370 + bool "Support dnp5370" + +config TARGET_IBF_DSP561 + bool "Support ibf-dsp561" + +config TARGET_IP04 + bool "Support ip04" + +config TARGET_PR1 + bool "Support pr1" + +config TARGET_TCM_BF518 + bool "Support tcm-bf518" + +config TARGET_TCM_BF537 + bool "Support tcm-bf537" + +endchoice + +source "board/bct-brettl2/Kconfig" +source "board/bf506f-ezkit/Kconfig" +source "board/bf518f-ezbrd/Kconfig" +source "board/bf525-ucr2/Kconfig" +source "board/bf526-ezbrd/Kconfig" +source "board/bf527-ad7160-eval/Kconfig" +source "board/bf527-ezkit/Kconfig" +source "board/bf527-sdp/Kconfig" +source "board/bf533-ezkit/Kconfig" +source "board/bf533-stamp/Kconfig" +source "board/bf537-minotaur/Kconfig" +source "board/bf537-pnav/Kconfig" +source "board/bf537-srv1/Kconfig" +source "board/bf537-stamp/Kconfig" +source "board/bf538f-ezkit/Kconfig" +source "board/bf548-ezkit/Kconfig" +source "board/bf561-acvilon/Kconfig" +source "board/bf561-ezkit/Kconfig" +source "board/bf609-ezkit/Kconfig" +source "board/blackstamp/Kconfig" +source "board/blackvme/Kconfig" +source "board/br4/Kconfig" +source "board/cm-bf527/Kconfig" +source "board/cm-bf533/Kconfig" +source "board/cm-bf537e/Kconfig" +source "board/cm-bf537u/Kconfig" +source "board/cm-bf548/Kconfig" +source "board/cm-bf561/Kconfig" +source "board/dnp5370/Kconfig" +source "board/ibf-dsp561/Kconfig" +source "board/ip04/Kconfig" +source "board/pr1/Kconfig" +source "board/tcm-bf518/Kconfig" +source "board/tcm-bf537/Kconfig" + +endmenu diff --git a/arch/blackfin/config.mk b/arch/blackfin/config.mk index fcaa44f..7b17b75 100644 --- a/arch/blackfin/config.mk +++ b/arch/blackfin/config.mk @@ -21,7 +21,6 @@ endif CONFIG_BFIN_BOOT_MODE := $(strip $(CONFIG_BFIN_BOOT_MODE:"%"=%)) PLATFORM_RELFLAGS += -ffixed-P3 -fomit-frame-pointer -mno-fdpic -PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN LDFLAGS_FINAL += --gc-sections LDFLAGS += -m elf32bfin diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig new file mode 100644 index 0000000..6cda7db --- /dev/null +++ b/arch/m68k/Kconfig @@ -0,0 +1,98 @@ +menu "M68000 architecture" + depends on M68K + +config SYS_ARCH + string + default "m68k" + +choice + prompt "Target select" + +config TARGET_M52277EVB + bool "Support M52277EVB" + +config TARGET_M5235EVB + bool "Support M5235EVB" + +config TARGET_COBRA5272 + bool "Support cobra5272" + +config TARGET_EB_CPU5282 + bool "Support eb_cpu5282" + +config TARGET_TASREG + bool "Support TASREG" + +config TARGET_M5208EVBE + bool "Support M5208EVBE" + +config TARGET_M5249EVB + bool "Support M5249EVB" + +config TARGET_M5253DEMO + bool "Support M5253DEMO" + +config TARGET_M5253EVBE + bool "Support M5253EVBE" + +config TARGET_M5272C3 + bool "Support M5272C3" + +config TARGET_M5275EVB + bool "Support M5275EVB" + +config TARGET_M5282EVB + bool "Support M5282EVB" + +config TARGET_ASTRO_MCF5373L + bool "Support astro_mcf5373l" + +config TARGET_M53017EVB + bool "Support M53017EVB" + +config TARGET_M5329EVB + bool "Support M5329EVB" + +config TARGET_M5373EVB + bool "Support M5373EVB" + +config TARGET_M54418TWR + bool "Support M54418TWR" + +config TARGET_M54451EVB + bool "Support M54451EVB" + +config TARGET_M54455EVB + bool "Support M54455EVB" + +config TARGET_M5475EVB + bool "Support M5475EVB" + +config TARGET_M5485EVB + bool "Support M5485EVB" + +endchoice + +source "board/BuS/eb_cpu5282/Kconfig" +source "board/astro/mcf5373l/Kconfig" +source "board/cobra5272/Kconfig" +source "board/esd/tasreg/Kconfig" +source "board/freescale/m5208evbe/Kconfig" +source "board/freescale/m52277evb/Kconfig" +source "board/freescale/m5235evb/Kconfig" +source "board/freescale/m5249evb/Kconfig" +source "board/freescale/m5253demo/Kconfig" +source "board/freescale/m5253evbe/Kconfig" +source "board/freescale/m5272c3/Kconfig" +source "board/freescale/m5275evb/Kconfig" +source "board/freescale/m5282evb/Kconfig" +source "board/freescale/m53017evb/Kconfig" +source "board/freescale/m5329evb/Kconfig" +source "board/freescale/m5373evb/Kconfig" +source "board/freescale/m54418twr/Kconfig" +source "board/freescale/m54451evb/Kconfig" +source "board/freescale/m54455evb/Kconfig" +source "board/freescale/m547xevb/Kconfig" +source "board/freescale/m548xevb/Kconfig" + +endmenu diff --git a/arch/m68k/config.mk b/arch/m68k/config.mk index 33b3d51..3b3a7e8 100644 --- a/arch/m68k/config.mk +++ b/arch/m68k/config.mk @@ -11,7 +11,7 @@ endif CONFIG_STANDALONE_LOAD_ADDR ?= 0x20000 -PLATFORM_CPPFLAGS += -DCONFIG_M68K -D__M68K__ +PLATFORM_CPPFLAGS += -D__M68K__ PLATFORM_LDFLAGS += -n PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections PLATFORM_RELFLAGS += -ffixed-d7 -msep-data diff --git a/arch/m68k/cpu/mcf52x2/config.mk b/arch/m68k/cpu/mcf52x2/config.mk index 34ad99e..f66000b 100644 --- a/arch/m68k/cpu/mcf52x2/config.mk +++ b/arch/m68k/cpu/mcf52x2/config.mk @@ -7,14 +7,14 @@ # SPDX-License-Identifier: GPL-2.0+ # -cfg=$(shell grep configs $(objtree)/include/config.h | sed 's/.*<\(configs.*\)>/\1/') -is5208:=$(shell grep CONFIG_M5208 $(srctree)/include/$(cfg)) -is5249:=$(shell grep CONFIG_M5249 $(srctree)/include/$(cfg)) -is5253:=$(shell grep CONFIG_M5253 $(srctree)/include/$(cfg)) -is5271:=$(shell grep CONFIG_M5271 $(srctree)/include/$(cfg)) -is5272:=$(shell grep CONFIG_M5272 $(srctree)/include/$(cfg)) -is5275:=$(shell grep CONFIG_M5275 $(srctree)/include/$(cfg)) -is5282:=$(shell grep CONFIG_M5282 $(srctree)/include/$(cfg)) +cfg=$(srctree)/include/configs/$(CONFIG_SYS_CONFIG_NAME:"%"=%).h +is5208:=$(shell grep CONFIG_M5208 $(cfg)) +is5249:=$(shell grep CONFIG_M5249 $(cfg)) +is5253:=$(shell grep CONFIG_M5253 $(cfg)) +is5271:=$(shell grep CONFIG_M5271 $(cfg)) +is5272:=$(shell grep CONFIG_M5272 $(cfg)) +is5275:=$(shell grep CONFIG_M5275 $(cfg)) +is5282:=$(shell grep CONFIG_M5282 $(cfg)) ifneq (,$(findstring CONFIG_M5208,$(is5208))) PLATFORM_CPPFLAGS += -mcpu=5208 diff --git a/arch/m68k/cpu/mcf532x/config.mk b/arch/m68k/cpu/mcf532x/config.mk index af94354..2efb60f 100644 --- a/arch/m68k/cpu/mcf532x/config.mk +++ b/arch/m68k/cpu/mcf532x/config.mk @@ -7,9 +7,9 @@ # SPDX-License-Identifier: GPL-2.0+ # -cfg=$(shell grep configs $(objtree)/include/config.h | sed 's/.*<\(configs.*\)>/\1/') -is5301x:=$(shell grep CONFIG_MCF5301x $(srctree)/include/$(cfg)) -is532x:=$(shell grep CONFIG_MCF532x $(srctree)/include/$(cfg)) +cfg=$(srctree)/include/configs/$(CONFIG_SYS_CONFIG_NAME:"%"=%).h +is5301x:=$(shell grep CONFIG_MCF5301x $(cfg)) +is532x:=$(shell grep CONFIG_MCF532x $(cfg)) ifneq (,$(findstring CONFIG_MCF5301x,$(is5301x))) PLATFORM_CPPFLAGS += -mcpu=53015 -fPIC diff --git a/arch/m68k/cpu/mcf5445x/config.mk b/arch/m68k/cpu/mcf5445x/config.mk index 5fd0d4d..13f8a9f 100644 --- a/arch/m68k/cpu/mcf5445x/config.mk +++ b/arch/m68k/cpu/mcf5445x/config.mk @@ -9,8 +9,8 @@ # SPDX-License-Identifier: GPL-2.0+ # -cfg=$(shell grep configs $(objtree)/include/config.h | sed 's/.*<\(configs.*\)>/\1/') -is5441x:=$(shell grep CONFIG_MCF5441x $(srctree)/include/$(cfg)) +cfg=$(srctree)/include/configs/$(CONFIG_SYS_CONFIG_NAME:"%"=%).h +is5441x:=$(shell grep CONFIG_MCF5441x $(cfg)) ifneq (,$(findstring CONFIG_MCF5441x,$(is5441x))) PLATFORM_CPPFLAGS += -mcpu=54418 -fPIC diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig new file mode 100644 index 0000000..ddaa45f --- /dev/null +++ b/arch/microblaze/Kconfig @@ -0,0 +1,18 @@ +menu "MicroBlaze architecture" + depends on MICROBLAZE + +config SYS_ARCH + string + default "microblaze" + +choice + prompt "Target select" + +config TARGET_MICROBLAZE_GENERIC + bool "Support microblaze-generic" + +endchoice + +source "board/xilinx/microblaze-generic/Kconfig" + +endmenu diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig new file mode 100644 index 0000000..5bf0df4 --- /dev/null +++ b/arch/mips/Kconfig @@ -0,0 +1,37 @@ +menu "MIPS architecture" + depends on MIPS + +config SYS_ARCH + string + default "mips" + +choice + prompt "Target select" + +config TARGET_QEMU_MIPS + bool "Support qemu-mips" + +config TARGET_MALTA + bool "Support malta" + +config TARGET_VCT + bool "Support vct" + +config TARGET_DBAU1X00 + bool "Support dbau1x00" + +config TARGET_PB1X00 + bool "Support pb1x00" + +config TARGET_QEMU_MIPS64 + bool "Support qemu-mips64" + +endchoice + +source "board/dbau1x00/Kconfig" +source "board/imgtec/malta/Kconfig" +source "board/micronas/vct/Kconfig" +source "board/pb1x00/Kconfig" +source "board/qemu-mips/Kconfig" + +endmenu diff --git a/arch/mips/config.mk b/arch/mips/config.mk index f4a234a..a2d07af 100644 --- a/arch/mips/config.mk +++ b/arch/mips/config.mk @@ -25,7 +25,7 @@ endif # Default to EB if no endianess is configured ENDIANNESS ?= -EB -PLATFORM_CPPFLAGS += -DCONFIG_MIPS -D__MIPS__ +PLATFORM_CPPFLAGS += -D__MIPS__ __HAVE_ARCH_GENERIC_BOARD := y diff --git a/arch/nds32/Kconfig b/arch/nds32/Kconfig new file mode 100644 index 0000000..743a8fe --- /dev/null +++ b/arch/nds32/Kconfig @@ -0,0 +1,26 @@ +menu "NDS32 architecture" + depends on NDS32 + +config SYS_ARCH + string + default "nds32" + +choice + prompt "Target select" + +config TARGET_ADP_AG101 + bool "Support adp-ag101" + +config TARGET_ADP_AG101P + bool "Support adp-ag101p" + +config TARGET_ADP_AG102 + bool "Support adp-ag102" + +endchoice + +source "board/AndesTech/adp-ag101/Kconfig" +source "board/AndesTech/adp-ag101p/Kconfig" +source "board/AndesTech/adp-ag102/Kconfig" + +endmenu diff --git a/arch/nds32/config.mk b/arch/nds32/config.mk index 1024852..5ac9f90 100644 --- a/arch/nds32/config.mk +++ b/arch/nds32/config.mk @@ -17,6 +17,6 @@ CONFIG_STANDALONE_LOAD_ADDR = 0x300000 \ PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -mrelax PLATFORM_RELFLAGS += -gdwarf-2 -PLATFORM_CPPFLAGS += -DCONFIG_NDS32 -D__nds32__ -G0 -ffixed-10 -fpie +PLATFORM_CPPFLAGS += -D__nds32__ -G0 -ffixed-10 -fpie LDFLAGS_u-boot = --gc-sections --relax diff --git a/arch/nios2/Kconfig b/arch/nios2/Kconfig new file mode 100644 index 0000000..b703646 --- /dev/null +++ b/arch/nios2/Kconfig @@ -0,0 +1,26 @@ +menu "Nios II architecture" + depends on NIOS2 + +config SYS_ARCH + string + default "nios2" + +choice + prompt "Target select" + +config TARGET_NIOS2_GENERIC + bool "Support nios2-generic" + +config TARGET_PCI5441 + bool "Support PCI5441" + +config TARGET_PK1C20 + bool "Support PK1C20" + +endchoice + +source "board/altera/nios2-generic/Kconfig" +source "board/psyent/pci5441/Kconfig" +source "board/psyent/pk1c20/Kconfig" + +endmenu diff --git a/arch/nios2/config.mk b/arch/nios2/config.mk index 65a5a40..82bd887 100644 --- a/arch/nios2/config.mk +++ b/arch/nios2/config.mk @@ -12,7 +12,7 @@ endif CONFIG_STANDALONE_LOAD_ADDR ?= 0x02000000 -PLATFORM_CPPFLAGS += -DCONFIG_NIOS2 -D__NIOS2__ +PLATFORM_CPPFLAGS += -D__NIOS2__ PLATFORM_CPPFLAGS += -G0 LDFLAGS_FINAL += --gc-sections diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig new file mode 100644 index 0000000..cc54a2e --- /dev/null +++ b/arch/openrisc/Kconfig @@ -0,0 +1,18 @@ +menu "OpenRISC architecture" + depends on OPENRISC + +config SYS_ARCH + string + default "openrisc" + +choice + prompt "Target select" + +config TARGET_OPENRISC_GENERIC + bool "Support openrisc-generic" + +endchoice + +source "board/openrisc/openrisc-generic/Kconfig" + +endmenu diff --git a/arch/openrisc/config.mk b/arch/openrisc/config.mk index 9902b9a..cd95f24 100644 --- a/arch/openrisc/config.mk +++ b/arch/openrisc/config.mk @@ -11,6 +11,6 @@ endif # r10 used for global object pointer, already set in OR32 GCC but just to be # clear -PLATFORM_CPPFLAGS += -DCONFIG_OPENRISC -D__OR1K__ -ffixed-r10 +PLATFORM_CPPFLAGS += -D__OR1K__ -ffixed-r10 CONFIG_STANDALONE_LOAD_ADDR ?= 0x40000 diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig new file mode 100644 index 0000000..3325af3 --- /dev/null +++ b/arch/powerpc/Kconfig @@ -0,0 +1,58 @@ +menu "PowerPC architecture" + depends on PPC + +config SYS_ARCH + string + default "powerpc" + +choice + prompt "CPU select" + +config 74xx_7xx + bool "74xx" + +config MPC512X + bool "MPC512X" + +config 5xx + bool "MPC5xx" + +config MPC5xxx + bool "MPC5xxx" + +config MPC824X + bool "MPC824X" + +config MPC8260 + bool "MPC8260" + +config MPC83xx + bool "MPC83xx" + +config MPC85xx + bool "MPC85xx" + +config MPC86xx + bool "MPC86xx" + +config 8xx + bool "MPC8xx" + +config 4xx + bool "PPC4xx" + +endchoice + +source "arch/powerpc/cpu/74xx_7xx/Kconfig" +source "arch/powerpc/cpu/mpc512x/Kconfig" +source "arch/powerpc/cpu/mpc5xx/Kconfig" +source "arch/powerpc/cpu/mpc5xxx/Kconfig" +source "arch/powerpc/cpu/mpc824x/Kconfig" +source "arch/powerpc/cpu/mpc8260/Kconfig" +source "arch/powerpc/cpu/mpc83xx/Kconfig" +source "arch/powerpc/cpu/mpc85xx/Kconfig" +source "arch/powerpc/cpu/mpc86xx/Kconfig" +source "arch/powerpc/cpu/mpc8xx/Kconfig" +source "arch/powerpc/cpu/ppc4xx/Kconfig" + +endmenu diff --git a/arch/powerpc/config.mk b/arch/powerpc/config.mk index fb7096e..6329b6c 100644 --- a/arch/powerpc/config.mk +++ b/arch/powerpc/config.mk @@ -13,7 +13,7 @@ CONFIG_STANDALONE_LOAD_ADDR ?= 0x40000 LDFLAGS_FINAL += --gc-sections PLATFORM_RELFLAGS += -fpic -mrelocatable -ffunction-sections -fdata-sections \ -meabi -PLATFORM_CPPFLAGS += -DCONFIG_PPC -D__powerpc__ -ffixed-r2 +PLATFORM_CPPFLAGS += -D__powerpc__ -ffixed-r2 PLATFORM_LDFLAGS += -n # Support generic board on PPC diff --git a/arch/powerpc/cpu/74xx_7xx/Kconfig b/arch/powerpc/cpu/74xx_7xx/Kconfig new file mode 100644 index 0000000..6ce464d --- /dev/null +++ b/arch/powerpc/cpu/74xx_7xx/Kconfig @@ -0,0 +1,49 @@ +menu "74xx_7xx CPU" + depends on 74xx_7xx + +config SYS_CPU + string + default "74xx_7xx" + +choice + prompt "Target select" + +config TARGET_P3G4 + bool "Support P3G4" + +config TARGET_ZUMA + bool "Support ZUMA" + +config TARGET_PPMC7XX + bool "Support ppmc7xx" + +config TARGET_ELPPC + bool "Support ELPPC" + +config TARGET_CPCI750 + bool "Support CPCI750" + +config TARGET_MPC7448HPC2 + bool "Support mpc7448hpc2" + +config TARGET_DB64360 + bool "Support DB64360" + +config TARGET_DB64460 + bool "Support DB64460" + +config TARGET_P3MX + bool "Support p3mx" + +endchoice + +source "board/Marvell/db64360/Kconfig" +source "board/Marvell/db64460/Kconfig" +source "board/eltec/elppc/Kconfig" +source "board/esd/cpci750/Kconfig" +source "board/evb64260/Kconfig" +source "board/freescale/mpc7448hpc2/Kconfig" +source "board/ppmc7xx/Kconfig" +source "board/prodrive/p3mx/Kconfig" + +endmenu diff --git a/arch/powerpc/cpu/74xx_7xx/config.mk b/arch/powerpc/cpu/74xx_7xx/config.mk index 96812a0..4cd1a26 100644 --- a/arch/powerpc/cpu/74xx_7xx/config.mk +++ b/arch/powerpc/cpu/74xx_7xx/config.mk @@ -5,4 +5,4 @@ # SPDX-License-Identifier: GPL-2.0+ # -PLATFORM_CPPFLAGS += -DCONFIG_74xx_7xx -mstring +PLATFORM_CPPFLAGS += -mstring diff --git a/arch/powerpc/cpu/mpc512x/Kconfig b/arch/powerpc/cpu/mpc512x/Kconfig new file mode 100644 index 0000000..bfc4eae --- /dev/null +++ b/arch/powerpc/cpu/mpc512x/Kconfig @@ -0,0 +1,34 @@ +menu "mpc512x CPU" + depends on MPC512X + +config SYS_CPU + string + default "mpc512x" + +choice + prompt "Target select" + +config TARGET_PDM360NG + bool "Support pdm360ng" + +config TARGET_ARIA + bool "Support aria" + +config TARGET_MECP5123 + bool "Support mecp5123" + +config TARGET_MPC5121ADS + bool "Support mpc5121ads" + +config TARGET_AC14XX + bool "Support ac14xx" + +endchoice + +source "board/davedenx/aria/Kconfig" +source "board/esd/mecp5123/Kconfig" +source "board/freescale/mpc5121ads/Kconfig" +source "board/ifm/ac14xx/Kconfig" +source "board/pdm360ng/Kconfig" + +endmenu diff --git a/arch/powerpc/cpu/mpc512x/config.mk b/arch/powerpc/cpu/mpc512x/config.mk index 03759e6..5bf1b2a 100644 --- a/arch/powerpc/cpu/mpc512x/config.mk +++ b/arch/powerpc/cpu/mpc512x/config.mk @@ -4,4 +4,4 @@ # SPDX-License-Identifier: GPL-2.0+ # -PLATFORM_CPPFLAGS += -DCONFIG_MPC512X -DCONFIG_E300 -msoft-float -mcpu=603e +PLATFORM_CPPFLAGS += -DCONFIG_E300 -msoft-float -mcpu=603e diff --git a/arch/powerpc/cpu/mpc5xx/Kconfig b/arch/powerpc/cpu/mpc5xx/Kconfig new file mode 100644 index 0000000..79579d7 --- /dev/null +++ b/arch/powerpc/cpu/mpc5xx/Kconfig @@ -0,0 +1,22 @@ +menu "mpc5xx CPU" + depends on 5xx + +config SYS_CPU + string + default "mpc5xx" + +choice + prompt "Target select" + +config TARGET_CMI_MPC5XX + bool "Support cmi_mpc5xx" + +config TARGET_PATI + bool "Support PATI" + +endchoice + +source "board/cmi/Kconfig" +source "board/mpl/pati/Kconfig" + +endmenu diff --git a/arch/powerpc/cpu/mpc5xx/config.mk b/arch/powerpc/cpu/mpc5xx/config.mk index 31e2dc9..dd2ec37 100644 --- a/arch/powerpc/cpu/mpc5xx/config.mk +++ b/arch/powerpc/cpu/mpc5xx/config.mk @@ -5,4 +5,4 @@ # SPDX-License-Identifier: GPL-2.0+ # -PLATFORM_CPPFLAGS += -DCONFIG_5xx -mpowerpc -msoft-float +PLATFORM_CPPFLAGS += -mpowerpc -msoft-float diff --git a/arch/powerpc/cpu/mpc5xxx/Kconfig b/arch/powerpc/cpu/mpc5xxx/Kconfig new file mode 100644 index 0000000..b2f0bad --- /dev/null +++ b/arch/powerpc/cpu/mpc5xxx/Kconfig @@ -0,0 +1,154 @@ +menu "mpc5xxx CPU" + depends on MPC5xxx + +config SYS_CPU + string + default "mpc5xxx" + +choice + prompt "Target select" + +config TARGET_A3M071 + bool "Support a3m071" + +config TARGET_A4M072 + bool "Support a4m072" + +config TARGET_BC3450 + bool "Support BC3450" + +config TARGET_CANMB + bool "Support canmb" + +config TARGET_CM5200 + bool "Support cm5200" + +config TARGET_GALAXY5200 + bool "Support galaxy5200" + +config TARGET_ICECUBE + bool "Support IceCube" + +config TARGET_INKA4X0 + bool "Support inka4x0" + +config TARGET_IPEK01 + bool "Support ipek01" + +config TARGET_JUPITER + bool "Support jupiter" + +config TARGET_MCC200 + bool "Support mcc200" + +config TARGET_MOTIONPRO + bool "Support motionpro" + +config TARGET_MUNICES + bool "Support munices" + +config TARGET_PM520 + bool "Support PM520" + +config TARGET_TOTAL5200 + bool "Support Total5200" + +config TARGET_V38B + bool "Support v38b" + +config TARGET_TOP5200 + bool "Support TOP5200" + +config TARGET_CPCI5200 + bool "Support cpci5200" + +config TARGET_MECP5200 + bool "Support mecp5200" + +config TARGET_PF5200 + bool "Support pf5200" + +config TARGET_O2D + bool "Support O2D" + +config TARGET_O2D300 + bool "Support O2D300" + +config TARGET_O2DNT2 + bool "Support O2DNT2" + +config TARGET_O2I + bool "Support O2I" + +config TARGET_O2MNT + bool "Support O2MNT" + +config TARGET_O3DNT + bool "Support O3DNT" + +config TARGET_DIGSY_MTC + bool "Support digsy_mtc" + +config TARGET_HMI1001 + bool "Support hmi1001" + +config TARGET_MUCMC52 + bool "Support mucmc52" + +config TARGET_UC101 + bool "Support uc101" + +config TARGET_MVBC_P + bool "Support MVBC_P" + +config TARGET_MVSMR + bool "Support MVSMR" + +config TARGET_PCM030 + bool "Support pcm030" + +config TARGET_AEV + bool "Support aev" + +config TARGET_CHARON + bool "Support charon" + +config TARGET_TB5200 + bool "Support TB5200" + +config TARGET_TQM5200 + bool "Support TQM5200" + +endchoice + +source "board/a3m071/Kconfig" +source "board/a4m072/Kconfig" +source "board/bc3450/Kconfig" +source "board/canmb/Kconfig" +source "board/cm5200/Kconfig" +source "board/emk/top5200/Kconfig" +source "board/esd/cpci5200/Kconfig" +source "board/esd/mecp5200/Kconfig" +source "board/esd/pf5200/Kconfig" +source "board/galaxy5200/Kconfig" +source "board/icecube/Kconfig" +source "board/ifm/o2dnt2/Kconfig" +source "board/inka4x0/Kconfig" +source "board/intercontrol/digsy_mtc/Kconfig" +source "board/ipek01/Kconfig" +source "board/jupiter/Kconfig" +source "board/manroland/hmi1001/Kconfig" +source "board/manroland/mucmc52/Kconfig" +source "board/manroland/uc101/Kconfig" +source "board/matrix_vision/mvbc_p/Kconfig" +source "board/matrix_vision/mvsmr/Kconfig" +source "board/mcc200/Kconfig" +source "board/motionpro/Kconfig" +source "board/munices/Kconfig" +source "board/phytec/pcm030/Kconfig" +source "board/pm520/Kconfig" +source "board/total5200/Kconfig" +source "board/tqc/tqm5200/Kconfig" +source "board/v38b/Kconfig" + +endmenu diff --git a/arch/powerpc/cpu/mpc5xxx/config.mk b/arch/powerpc/cpu/mpc5xxx/config.mk index 3384f6f..bcff214 100644 --- a/arch/powerpc/cpu/mpc5xxx/config.mk +++ b/arch/powerpc/cpu/mpc5xxx/config.mk @@ -5,5 +5,4 @@ # SPDX-License-Identifier: GPL-2.0+ # -PLATFORM_CPPFLAGS += -DCONFIG_MPC5xxx \ - -mstring -mcpu=603e -mmultiple +PLATFORM_CPPFLAGS += -mstring -mcpu=603e -mmultiple diff --git a/arch/powerpc/cpu/mpc824x/Kconfig b/arch/powerpc/cpu/mpc824x/Kconfig new file mode 100644 index 0000000..309833f --- /dev/null +++ b/arch/powerpc/cpu/mpc824x/Kconfig @@ -0,0 +1,49 @@ +menu "mpc824x CPU" + depends on MPC824X + +config SYS_CPU + string + default "mpc824x" + +choice + prompt "Target select" + +config TARGET_A3000 + bool "Support A3000" + +config TARGET_CPC45 + bool "Support CPC45" + +config TARGET_CU824 + bool "Support CU824" + +config TARGET_EXALION + bool "Support eXalion" + +config TARGET_MUSENKI + bool "Support MUSENKI" + +config TARGET_MVBLUE + bool "Support MVBLUE" + +config TARGET_SANDPOINT8240 + bool "Support Sandpoint8240" + +config TARGET_SANDPOINT8245 + bool "Support Sandpoint8245" + +config TARGET_UTX8245 + bool "Support utx8245" + +endchoice + +source "board/a3000/Kconfig" +source "board/cpc45/Kconfig" +source "board/cu824/Kconfig" +source "board/eXalion/Kconfig" +source "board/musenki/Kconfig" +source "board/mvblue/Kconfig" +source "board/sandpoint/Kconfig" +source "board/utx8245/Kconfig" + +endmenu diff --git a/arch/powerpc/cpu/mpc824x/config.mk b/arch/powerpc/cpu/mpc824x/config.mk index a224bc8..ecfb07e 100644 --- a/arch/powerpc/cpu/mpc824x/config.mk +++ b/arch/powerpc/cpu/mpc824x/config.mk @@ -5,4 +5,4 @@ # SPDX-License-Identifier: GPL-2.0+ # -PLATFORM_CPPFLAGS += -DCONFIG_MPC824X -mstring -mcpu=603e -msoft-float +PLATFORM_CPPFLAGS += -mstring -mcpu=603e -msoft-float diff --git a/arch/powerpc/cpu/mpc8260/Kconfig b/arch/powerpc/cpu/mpc8260/Kconfig new file mode 100644 index 0000000..1a8707d --- /dev/null +++ b/arch/powerpc/cpu/mpc8260/Kconfig @@ -0,0 +1,94 @@ +menu "mpc8260 CPU" + depends on MPC8260 + +config SYS_CPU + string + default "mpc8260" + +choice + prompt "Target select" + +config TARGET_ATC + bool "Support atc" + +config TARGET_COGENT_MPC8260 + bool "Support cogent_mpc8260" + +config TARGET_CPU86 + bool "Support CPU86" + +config TARGET_CPU87 + bool "Support CPU87" + +config TARGET_EP8260 + bool "Support ep8260" + +config TARGET_EP82XXM + bool "Support ep82xxm" + +config TARGET_GW8260 + bool "Support gw8260" + +config TARGET_HYMOD + bool "Support hymod" + +config TARGET_IPHASE4539 + bool "Support IPHASE4539" + +config TARGET_MUAS3001 + bool "Support muas3001" + +config TARGET_PM826 + bool "Support PM826" + +config TARGET_PM828 + bool "Support PM828" + +config TARGET_PPMC8260 + bool "Support ppmc8260" + +config TARGET_SACSNG + bool "Support sacsng" + +config TARGET_MPC8266ADS + bool "Support MPC8266ADS" + +config TARGET_VOVPN_GW + bool "Support VoVPN-GW" + +config TARGET_IDS8247 + bool "Support IDS8247" + +config TARGET_KM82XX + bool "Support km82xx" + +config TARGET_TQM8260 + bool "Support TQM8260" + +config TARGET_TQM8272 + bool "Support TQM8272" + +endchoice + +source "board/atc/Kconfig" +source "board/cogent/Kconfig" +source "board/cpu86/Kconfig" +source "board/cpu87/Kconfig" +source "board/ep8260/Kconfig" +source "board/ep82xxm/Kconfig" +source "board/freescale/mpc8266ads/Kconfig" +source "board/funkwerk/vovpn-gw/Kconfig" +source "board/gw8260/Kconfig" +source "board/hymod/Kconfig" +source "board/ids/ids8247/Kconfig" +source "board/iphase4539/Kconfig" +source "board/keymile/km82xx/Kconfig" +source "board/muas3001/Kconfig" +source "board/pm826/Kconfig" +source "board/pm828/Kconfig" +source "board/ppmc8260/Kconfig" +source "board/sacsng/Kconfig" +source "board/tqc/tqm8260/Kconfig" +source "board/tqc/tqm8272/Kconfig" + +endmenu diff --git a/arch/powerpc/cpu/mpc8260/config.mk b/arch/powerpc/cpu/mpc8260/config.mk index 59f152d..6a1b6e3 100644 --- a/arch/powerpc/cpu/mpc8260/config.mk +++ b/arch/powerpc/cpu/mpc8260/config.mk @@ -5,5 +5,5 @@ # SPDX-License-Identifier: GPL-2.0+ # -PLATFORM_CPPFLAGS += -DCONFIG_MPC8260 -DCONFIG_CPM2 \ +PLATFORM_CPPFLAGS += -DCONFIG_CPM2 \ -mstring -mcpu=603e -mmultiple diff --git a/arch/powerpc/cpu/mpc83xx/Kconfig b/arch/powerpc/cpu/mpc83xx/Kconfig new file mode 100644 index 0000000..5fd3393 --- /dev/null +++ b/arch/powerpc/cpu/mpc83xx/Kconfig @@ -0,0 +1,100 @@ +menu "mpc83xx CPU" + depends on MPC83xx + +config SYS_CPU + string + default "mpc83xx" + +choice + prompt "Target select" + +config TARGET_MPC8308_P1M + bool "Support mpc8308_p1m" + +config TARGET_SBC8349 + bool "Support sbc8349" + +config TARGET_VE8313 + bool "Support ve8313" + +config TARGET_VME8349 + bool "Support vme8349" + +config TARGET_MPC8308RDB + bool "Support MPC8308RDB" + +config TARGET_MPC8313ERDB + bool "Support MPC8313ERDB" + +config TARGET_MPC8315ERDB + bool "Support MPC8315ERDB" + +config TARGET_MPC8323ERDB + bool "Support MPC8323ERDB" + +config TARGET_MPC832XEMDS + bool "Support MPC832XEMDS" + +config TARGET_MPC8349EMDS + bool "Support MPC8349EMDS" + +config TARGET_MPC8349ITX + bool "Support MPC8349ITX" + +config TARGET_MPC8360EMDS + bool "Support MPC8360EMDS" + +config TARGET_MPC8360ERDK + bool "Support MPC8360ERDK" + +config TARGET_MPC837XEMDS + bool "Support MPC837XEMDS" + +config TARGET_MPC837XERDB + bool "Support MPC837XERDB" + +config TARGET_IDS8313 + bool "Support ids8313" + +config TARGET_KM8360 + bool "Support km8360" + +config TARGET_SUVD3 + bool "Support suvd3" + +config TARGET_TUXX1 + bool "Support tuxx1" + +config TARGET_MERGERBOX + bool "Support MERGERBOX" + +config TARGET_MVBLM7 + bool "Support MVBLM7" + +config TARGET_TQM834X + bool "Support TQM834x" + +endchoice + +source "board/esd/vme8349/Kconfig" +source "board/freescale/mpc8308rdb/Kconfig" +source "board/freescale/mpc8313erdb/Kconfig" +source "board/freescale/mpc8315erdb/Kconfig" +source "board/freescale/mpc8323erdb/Kconfig" +source "board/freescale/mpc832xemds/Kconfig" +source "board/freescale/mpc8349emds/Kconfig" +source "board/freescale/mpc8349itx/Kconfig" +source "board/freescale/mpc8360emds/Kconfig" +source "board/freescale/mpc8360erdk/Kconfig" +source "board/freescale/mpc837xemds/Kconfig" +source "board/freescale/mpc837xerdb/Kconfig" +source "board/ids/ids8313/Kconfig" +source "board/keymile/km83xx/Kconfig" +source "board/matrix_vision/mergerbox/Kconfig" +source "board/matrix_vision/mvblm7/Kconfig" +source "board/mpc8308_p1m/Kconfig" +source "board/sbc8349/Kconfig" +source "board/tqc/tqm834x/Kconfig" +source "board/ve8313/Kconfig" + +endmenu diff --git a/arch/powerpc/cpu/mpc83xx/config.mk b/arch/powerpc/cpu/mpc83xx/config.mk index dfce4d5..0c08350 100644 --- a/arch/powerpc/cpu/mpc83xx/config.mk +++ b/arch/powerpc/cpu/mpc83xx/config.mk @@ -4,4 +4,4 @@ # SPDX-License-Identifier: GPL-2.0+ # -PLATFORM_CPPFLAGS += -DCONFIG_MPC83xx -DCONFIG_E300 -msoft-float +PLATFORM_CPPFLAGS += -DCONFIG_E300 -msoft-float diff --git a/arch/powerpc/cpu/mpc83xx/cpu.c b/arch/powerpc/cpu/mpc83xx/cpu.c index e41988d..3809309 100644 --- a/arch/powerpc/cpu/mpc83xx/cpu.c +++ b/arch/powerpc/cpu/mpc83xx/cpu.c @@ -20,7 +20,7 @@ #include <netdev.h> #include <fsl_esdhc.h> #if defined(CONFIG_BOOTCOUNT_LIMIT) && !defined(CONFIG_MPC831x) -#include <asm/immap_qe.h> +#include <linux/immap_qe.h> #include <asm/io.h> #endif diff --git a/arch/powerpc/cpu/mpc83xx/fdt.c b/arch/powerpc/cpu/mpc83xx/fdt.c index 450a970..f249a58 100644 --- a/arch/powerpc/cpu/mpc83xx/fdt.c +++ b/arch/powerpc/cpu/mpc83xx/fdt.c @@ -18,7 +18,7 @@ DECLARE_GLOBAL_DATA_PTR; #if defined(CONFIG_BOOTCOUNT_LIMIT) && \ (defined(CONFIG_QE) && !defined(CONFIG_MPC831x)) -#include <asm/immap_qe.h> +#include <linux/immap_qe.h> void fdt_fixup_muram (void *blob) { diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig new file mode 100644 index 0000000..0f70380 --- /dev/null +++ b/arch/powerpc/cpu/mpc85xx/Kconfig @@ -0,0 +1,190 @@ +menu "mpc85xx CPU" + depends on MPC85xx + +config SYS_CPU + string + default "mpc85xx" + +choice + prompt "Target select" + +config TARGET_SBC8548 + bool "Support sbc8548" + +config TARGET_SOCRATES + bool "Support socrates" + +config TARGET_HWW1U1A + bool "Support HWW1U1A" + +config TARGET_B4860QDS + bool "Support B4860QDS" + +config TARGET_BSC9131RDB + bool "Support BSC9131RDB" + +config TARGET_BSC9132QDS + bool "Support BSC9132QDS" + +config TARGET_C29XPCIE + bool "Support C29XPCIE" + +config TARGET_P3041DS + bool "Support P3041DS" + +config TARGET_P4080DS + bool "Support P4080DS" + +config TARGET_P5020DS + bool "Support P5020DS" + +config TARGET_P5040DS + bool "Support P5040DS" + +config TARGET_MPC8536DS + bool "Support MPC8536DS" + +config TARGET_MPC8540ADS + bool "Support MPC8540ADS" + +config TARGET_MPC8541CDS + bool "Support MPC8541CDS" + +config TARGET_MPC8544DS + bool "Support MPC8544DS" + +config TARGET_MPC8548CDS + bool "Support MPC8548CDS" + +config TARGET_MPC8555CDS + bool "Support MPC8555CDS" + +config TARGET_MPC8560ADS + bool "Support MPC8560ADS" + +config TARGET_MPC8568MDS + bool "Support MPC8568MDS" + +config TARGET_MPC8569MDS + bool "Support MPC8569MDS" + +config TARGET_MPC8572DS + bool "Support MPC8572DS" + +config TARGET_P1010RDB + bool "Support P1010RDB" + +config TARGET_P1022DS + bool "Support P1022DS" + +config TARGET_P1023RDB + bool "Support P1023RDB" + +config TARGET_P1_P2_RDB + bool "Support P1_P2_RDB" + +config TARGET_P1_P2_RDB_PC + bool "Support p1_p2_rdb_pc" + +config TARGET_P1_TWR + bool "Support p1_twr" + +config TARGET_P2020COME + bool "Support P2020COME" + +config TARGET_P2020DS + bool "Support P2020DS" + +config TARGET_P2041RDB + bool "Support P2041RDB" + +config TARGET_QEMU_PPCE500 + bool "Support qemu-ppce500" + +config TARGET_T1040QDS + bool "Support T1040QDS" + +config TARGET_T104XRDB + bool "Support T104xRDB" + +config TARGET_T208XQDS + bool "Support T208xQDS" + +config TARGET_T208XRDB + bool "Support T208xRDB" + +config TARGET_T4240EMU + bool "Support T4240EMU" + +config TARGET_T4240QDS + bool "Support T4240QDS" + +config TARGET_T4240RDB + bool "Support T4240RDB" + +config TARGET_CONTROLCENTERD + bool "Support controlcenterd" + +config TARGET_KMP204X + bool "Support kmp204x" + +config TARGET_STXGP3 + bool "Support stxgp3" + +config TARGET_STXSSA + bool "Support stxssa" + +config TARGET_XPEDITE520X + bool "Support xpedite520x" + +config TARGET_XPEDITE537X + bool "Support xpedite537x" + +config TARGET_XPEDITE550X + bool "Support xpedite550x" + +endchoice + +source "board/exmeritus/hww1u1a/Kconfig" +source "board/freescale/b4860qds/Kconfig" +source "board/freescale/bsc9131rdb/Kconfig" +source "board/freescale/bsc9132qds/Kconfig" +source "board/freescale/c29xpcie/Kconfig" +source "board/freescale/corenet_ds/Kconfig" +source "board/freescale/mpc8536ds/Kconfig" +source "board/freescale/mpc8540ads/Kconfig" +source "board/freescale/mpc8541cds/Kconfig" +source "board/freescale/mpc8544ds/Kconfig" +source "board/freescale/mpc8548cds/Kconfig" +source "board/freescale/mpc8555cds/Kconfig" +source "board/freescale/mpc8560ads/Kconfig" +source "board/freescale/mpc8568mds/Kconfig" +source "board/freescale/mpc8569mds/Kconfig" +source "board/freescale/mpc8572ds/Kconfig" +source "board/freescale/p1010rdb/Kconfig" +source "board/freescale/p1022ds/Kconfig" +source "board/freescale/p1023rdb/Kconfig" +source "board/freescale/p1_p2_rdb/Kconfig" +source "board/freescale/p1_p2_rdb_pc/Kconfig" +source "board/freescale/p1_twr/Kconfig" +source "board/freescale/p2020come/Kconfig" +source "board/freescale/p2020ds/Kconfig" +source "board/freescale/p2041rdb/Kconfig" +source "board/freescale/qemu-ppce500/Kconfig" +source "board/freescale/t1040qds/Kconfig" +source "board/freescale/t104xrdb/Kconfig" +source "board/freescale/t208xqds/Kconfig" +source "board/freescale/t208xrdb/Kconfig" +source "board/freescale/t4qds/Kconfig" +source "board/freescale/t4rdb/Kconfig" +source "board/gdsys/p1022/Kconfig" +source "board/keymile/kmp204x/Kconfig" +source "board/sbc8548/Kconfig" +source "board/socrates/Kconfig" +source "board/stx/stxgp3/Kconfig" +source "board/stx/stxssa/Kconfig" +source "board/xes/xpedite520x/Kconfig" +source "board/xes/xpedite537x/Kconfig" +source "board/xes/xpedite550x/Kconfig" + +endmenu diff --git a/arch/powerpc/cpu/mpc85xx/config.mk b/arch/powerpc/cpu/mpc85xx/config.mk index 1470f95..72c964c 100644 --- a/arch/powerpc/cpu/mpc85xx/config.mk +++ b/arch/powerpc/cpu/mpc85xx/config.mk @@ -5,7 +5,7 @@ # SPDX-License-Identifier: GPL-2.0+ # -PLATFORM_CPPFLAGS += -DCONFIG_MPC85xx -Wa,-me500 -msoft-float -mno-string +PLATFORM_CPPFLAGS += -Wa,-me500 -msoft-float -mno-string # -mspe=yes is needed to have -mno-spe accepted by a buggy GCC; # see "[PATCH,rs6000] make -mno-spe work as expected" on diff --git a/arch/powerpc/cpu/mpc85xx/cpu.c b/arch/powerpc/cpu/mpc85xx/cpu.c index 684d400..6274f92 100644 --- a/arch/powerpc/cpu/mpc85xx/cpu.c +++ b/arch/powerpc/cpu/mpc85xx/cpu.c @@ -310,6 +310,14 @@ __weak unsigned long get_tbclk (void) #if defined(CONFIG_WATCHDOG) +#define WATCHDOG_MASK (TCR_WP(63) | TCR_WRC(3) | TCR_WIE) +void +init_85xx_watchdog(void) +{ + mtspr(SPRN_TCR, (mfspr(SPRN_TCR) & ~WATCHDOG_MASK) | + TCR_WP(CONFIG_WATCHDOG_PRESC) | TCR_WRC(CONFIG_WATCHDOG_RC)); +} + void reset_85xx_watchdog(void) { diff --git a/arch/powerpc/cpu/mpc85xx/cpu_init.c b/arch/powerpc/cpu/mpc85xx/cpu_init.c index 78316a6..b237505 100644 --- a/arch/powerpc/cpu/mpc85xx/cpu_init.c +++ b/arch/powerpc/cpu/mpc85xx/cpu_init.c @@ -200,7 +200,7 @@ void config_8560_ioports (volatile ccsr_cpm_t * cpm) #ifdef CONFIG_SYS_FSL_CPC #if defined(CONFIG_RAMBOOT_PBL) || defined(CONFIG_SYS_CPC_REINIT_F) -static void disable_cpc_sram(void) +void disable_cpc_sram(void) { int i; @@ -251,7 +251,7 @@ static void enable_tdm_law(void) } #endif -static void enable_cpc(void) +void enable_cpc(void) { int i; u32 size = 0; @@ -306,6 +306,7 @@ static void invalidate_cpc(void) #else #define enable_cpc() #define invalidate_cpc() +#define disable_cpc_sram() #endif /* CONFIG_SYS_FSL_CPC */ /* @@ -520,7 +521,8 @@ int enable_cluster_l2(void) u32 idx = (cluster >> (j*8)) & TP_CLUSTER_INIT_MASK; u32 type = in_be32(&gur->tp_ityp[idx]); - if (type & TP_ITYP_AV) + if ((type & TP_ITYP_AV) && + TP_ITYP_TYPE(type) == TP_ITYP_TYPE_PPC) cluster_valid = 1; } @@ -545,88 +547,15 @@ int enable_cluster_l2(void) /* * Initialize L2 as cache. - * - * The newer 8548, etc, parts have twice as much cache, but - * use the same bit-encoding as the older 8555, etc, parts. - * */ -int cpu_init_r(void) +int l2cache_init(void) { __maybe_unused u32 svr = get_svr(); -#ifdef CONFIG_SYS_LBC_LCRR - fsl_lbc_t *lbc = (void __iomem *)LBC_BASE_ADDR; -#endif #ifdef CONFIG_L2_CACHE ccsr_l2cache_t *l2cache = (void __iomem *)CONFIG_SYS_MPC85xx_L2_ADDR; #elif defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2) && defined(CONFIG_E6500) struct ccsr_cluster_l2 * l2cache = (void __iomem *)CONFIG_SYS_FSL_CLUSTER_1_L2; #endif -#if defined(CONFIG_PPC_SPINTABLE_COMPATIBLE) && defined(CONFIG_MP) - extern int spin_table_compat; - const char *spin; -#endif -#ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571 - ccsr_sec_t __iomem *sec = (void *)CONFIG_SYS_FSL_SEC_ADDR; -#endif -#if defined(CONFIG_SYS_P4080_ERRATUM_CPU22) || \ - defined(CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011) - /* - * CPU22 and NMG_CPU_A011 share the same workaround. - * CPU22 applies to P4080 rev 1.0, 2.0, fixed in 3.0 - * NMG_CPU_A011 applies to P4080 rev 1.0, 2.0, fixed in 3.0 - * also applies to P3041 rev 1.0, 1.1, P2041 rev 1.0, 1.1, both - * fixed in 2.0. NMG_CPU_A011 is activated by default and can - * be disabled by hwconfig with syntax: - * - * fsl_cpu_a011:disable - */ - extern int enable_cpu_a011_workaround; -#ifdef CONFIG_SYS_P4080_ERRATUM_CPU22 - enable_cpu_a011_workaround = (SVR_MAJ(svr) < 3); -#else - char buffer[HWCONFIG_BUFFER_SIZE]; - char *buf = NULL; - int n, res; - - n = getenv_f("hwconfig", buffer, sizeof(buffer)); - if (n > 0) - buf = buffer; - - res = hwconfig_arg_cmp_f("fsl_cpu_a011", "disable", buf); - if (res > 0) - enable_cpu_a011_workaround = 0; - else { - if (n >= HWCONFIG_BUFFER_SIZE) { - printf("fsl_cpu_a011 was not found. hwconfig variable " - "may be too long\n"); - } - enable_cpu_a011_workaround = - (SVR_SOC_VER(svr) == SVR_P4080 && SVR_MAJ(svr) < 3) || - (SVR_SOC_VER(svr) != SVR_P4080 && SVR_MAJ(svr) < 2); - } -#endif - if (enable_cpu_a011_workaround) { - flush_dcache(); - mtspr(L1CSR2, (mfspr(L1CSR2) | L1CSR2_DCWS)); - sync(); - } -#endif -#ifdef CONFIG_SYS_FSL_ERRATUM_A005812 - /* - * A-005812 workaround sets bit 32 of SPR 976 for SoCs running - * in write shadow mode. Checking DCWS before setting SPR 976. - */ - if (mfspr(L1CSR2) & L1CSR2_DCWS) - mtspr(SPRN_HDBCR0, (mfspr(SPRN_HDBCR0) | 0x80000000)); -#endif - -#if defined(CONFIG_PPC_SPINTABLE_COMPATIBLE) && defined(CONFIG_MP) - spin = getenv("spin_table_compat"); - if (spin && (*spin == 'n')) - spin_table_compat = 0; - else - spin_table_compat = 1; -#endif puts ("L2: "); @@ -751,6 +680,89 @@ skip_l2: puts("disabled\n"); #endif + return 0; +} + +/* + * + * The newer 8548, etc, parts have twice as much cache, but + * use the same bit-encoding as the older 8555, etc, parts. + * + */ +int cpu_init_r(void) +{ + __maybe_unused u32 svr = get_svr(); +#ifdef CONFIG_SYS_LBC_LCRR + fsl_lbc_t *lbc = (void __iomem *)LBC_BASE_ADDR; +#endif +#if defined(CONFIG_PPC_SPINTABLE_COMPATIBLE) && defined(CONFIG_MP) + extern int spin_table_compat; + const char *spin; +#endif +#ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571 + ccsr_sec_t __iomem *sec = (void *)CONFIG_SYS_FSL_SEC_ADDR; +#endif +#if defined(CONFIG_SYS_P4080_ERRATUM_CPU22) || \ + defined(CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011) + /* + * CPU22 and NMG_CPU_A011 share the same workaround. + * CPU22 applies to P4080 rev 1.0, 2.0, fixed in 3.0 + * NMG_CPU_A011 applies to P4080 rev 1.0, 2.0, fixed in 3.0 + * also applies to P3041 rev 1.0, 1.1, P2041 rev 1.0, 1.1, both + * fixed in 2.0. NMG_CPU_A011 is activated by default and can + * be disabled by hwconfig with syntax: + * + * fsl_cpu_a011:disable + */ + extern int enable_cpu_a011_workaround; +#ifdef CONFIG_SYS_P4080_ERRATUM_CPU22 + enable_cpu_a011_workaround = (SVR_MAJ(svr) < 3); +#else + char buffer[HWCONFIG_BUFFER_SIZE]; + char *buf = NULL; + int n, res; + + n = getenv_f("hwconfig", buffer, sizeof(buffer)); + if (n > 0) + buf = buffer; + + res = hwconfig_arg_cmp_f("fsl_cpu_a011", "disable", buf); + if (res > 0) { + enable_cpu_a011_workaround = 0; + } else { + if (n >= HWCONFIG_BUFFER_SIZE) { + printf("fsl_cpu_a011 was not found. hwconfig variable " + "may be too long\n"); + } + enable_cpu_a011_workaround = + (SVR_SOC_VER(svr) == SVR_P4080 && SVR_MAJ(svr) < 3) || + (SVR_SOC_VER(svr) != SVR_P4080 && SVR_MAJ(svr) < 2); + } +#endif + if (enable_cpu_a011_workaround) { + flush_dcache(); + mtspr(L1CSR2, (mfspr(L1CSR2) | L1CSR2_DCWS)); + sync(); + } +#endif +#ifdef CONFIG_SYS_FSL_ERRATUM_A005812 + /* + * A-005812 workaround sets bit 32 of SPR 976 for SoCs running + * in write shadow mode. Checking DCWS before setting SPR 976. + */ + if (mfspr(L1CSR2) & L1CSR2_DCWS) + mtspr(SPRN_HDBCR0, (mfspr(SPRN_HDBCR0) | 0x80000000)); +#endif + +#if defined(CONFIG_PPC_SPINTABLE_COMPATIBLE) && defined(CONFIG_MP) + spin = getenv("spin_table_compat"); + if (spin && (*spin == 'n')) + spin_table_compat = 0; + else + spin_table_compat = 1; +#endif + + l2cache_init(); #if defined(CONFIG_RAMBOOT_PBL) disable_cpc_sram(); #endif diff --git a/arch/powerpc/cpu/mpc85xx/fdt.c b/arch/powerpc/cpu/mpc85xx/fdt.c index 85dfa5b..3665ec6 100644 --- a/arch/powerpc/cpu/mpc85xx/fdt.c +++ b/arch/powerpc/cpu/mpc85xx/fdt.c @@ -612,6 +612,51 @@ static void fdt_fixup_usb(void *fdt) #define fdt_fixup_usb(x) #endif +#if defined(CONFIG_PPC_T2080) || defined(CONFIG_PPC_T4240) || \ + defined(CONFIG_PPC_T4160) || defined(CONFIG_PPC_T4080) +void fdt_fixup_dma3(void *blob) +{ + /* the 3rd DMA is not functional if SRIO2 is chosen */ + int nodeoff; + ccsr_gur_t __iomem *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); + +#define CONFIG_SYS_ELO3_DMA3 (0xffe000000 + 0x102300) +#if defined(CONFIG_PPC_T2080) + u32 srds_prtcl_s2 = in_be32(&gur->rcwsr[4]) & + FSL_CORENET2_RCWSR4_SRDS2_PRTCL; + srds_prtcl_s2 >>= FSL_CORENET2_RCWSR4_SRDS2_PRTCL_SHIFT; + + switch (srds_prtcl_s2) { + case 0x29: + case 0x2d: + case 0x2e: +#elif defined(CONFIG_PPC_T4240) || defined(CONFIG_PPC_T4160) || \ + defined(CONFIG_PPC_T4080) + u32 srds_prtcl_s4 = in_be32(&gur->rcwsr[4]) & + FSL_CORENET2_RCWSR4_SRDS4_PRTCL; + srds_prtcl_s4 >>= FSL_CORENET2_RCWSR4_SRDS4_PRTCL_SHIFT; + + switch (srds_prtcl_s4) { + case 6: + case 8: + case 14: + case 16: +#endif + nodeoff = fdt_node_offset_by_compat_reg(blob, "fsl,elo3-dma", + CONFIG_SYS_ELO3_DMA3); + if (nodeoff > 0) + fdt_status_disabled(blob, nodeoff); + else + printf("WARNING: unable to disable dma3\n"); + break; + default: + break; + } +} +#else +#define fdt_fixup_dma3(x) +#endif + #if defined(CONFIG_PPC_T1040) static void fdt_fixup_l2_switch(void *blob) { @@ -778,6 +823,8 @@ void ft_cpu_setup(void *blob, bd_t *bd) fdt_fixup_usb(blob); fdt_fixup_l2_switch(blob); + + fdt_fixup_dma3(blob); } /* diff --git a/arch/powerpc/cpu/mpc85xx/interrupts.c b/arch/powerpc/cpu/mpc85xx/interrupts.c index a36a4af..daf46a9 100644 --- a/arch/powerpc/cpu/mpc85xx/interrupts.c +++ b/arch/powerpc/cpu/mpc85xx/interrupts.c @@ -42,7 +42,7 @@ int interrupt_init_cpu(unsigned int *decrementer_count) *decrementer_count = get_tbclk() / CONFIG_SYS_HZ; /* PIE is same as DIE, dec interrupt enable */ - mtspr(SPRN_TCR, TCR_PIE); + mtspr(SPRN_TCR, mfspr(SPRN_TCR) | TCR_PIE); #ifdef CONFIG_INTERRUPTS pic->iivpr1 = 0x810001; /* 50220 enable ecm interrupts */ diff --git a/arch/powerpc/cpu/mpc86xx/Kconfig b/arch/powerpc/cpu/mpc86xx/Kconfig new file mode 100644 index 0000000..f0ff441 --- /dev/null +++ b/arch/powerpc/cpu/mpc86xx/Kconfig @@ -0,0 +1,30 @@ +menu "mpc86xx CPU" + depends on MPC86xx + +config SYS_CPU + string + default "mpc86xx" + +choice + prompt "Target select" + +config TARGET_SBC8641D + bool "Support sbc8641d" + +config TARGET_MPC8610HPCD + bool "Support MPC8610HPCD" + +config TARGET_MPC8641HPCN + bool "Support MPC8641HPCN" + +config TARGET_XPEDITE517X + bool "Support xpedite517x" + +endchoice + +source "board/freescale/mpc8610hpcd/Kconfig" +source "board/freescale/mpc8641hpcn/Kconfig" +source "board/sbc8641d/Kconfig" +source "board/xes/xpedite517x/Kconfig" + +endmenu diff --git a/arch/powerpc/cpu/mpc86xx/config.mk b/arch/powerpc/cpu/mpc86xx/config.mk index 4c7235f..69a0b96 100644 --- a/arch/powerpc/cpu/mpc86xx/config.mk +++ b/arch/powerpc/cpu/mpc86xx/config.mk @@ -5,4 +5,4 @@ # SPDX-License-Identifier: GPL-2.0+ # -PLATFORM_CPPFLAGS += -DCONFIG_MPC86xx -mstring -maltivec -mabi=altivec -msoft-float +PLATFORM_CPPFLAGS += -mstring -maltivec -mabi=altivec -msoft-float diff --git a/arch/powerpc/cpu/mpc8xx/Kconfig b/arch/powerpc/cpu/mpc8xx/Kconfig new file mode 100644 index 0000000..35608a6 --- /dev/null +++ b/arch/powerpc/cpu/mpc8xx/Kconfig @@ -0,0 +1,160 @@ +menu "mpc8xx CPU" + depends on 8xx + +config SYS_CPU + string + default "mpc8xx" + +choice + prompt "Target select" + +config TARGET_COGENT_MPC8XX + bool "Support cogent_mpc8xx" + +config TARGET_ESTEEM192E + bool "Support ESTEEM192E" + +config TARGET_FLAGADM + bool "Support FLAGADM" + +config TARGET_GEN860T + bool "Support GEN860T" + +config TARGET_HERMES + bool "Support hermes" + +config TARGET_ICU862 + bool "Support ICU862" + +config TARGET_IP860 + bool "Support IP860" + +config TARGET_IVML24 + bool "Support IVML24" + +config TARGET_IVMS8 + bool "Support IVMS8" + +config TARGET_LWMON + bool "Support lwmon" + +config TARGET_NETVIA + bool "Support NETVIA" + +config TARGET_R360MPI + bool "Support R360MPI" + +config TARGET_RRVISION + bool "Support RRvision" + +config TARGET_SXNI855T + bool "Support SXNI855T" + +config TARGET_SPD823TS + bool "Support SPD823TS" + +config TARGET_SVM_SC8XX + bool "Support svm_sc8xx" + +config TARGET_MHPC + bool "Support MHPC" + +config TARGET_TOP860 + bool "Support TOP860" + +config TARGET_KUP4K + bool "Support KUP4K" + +config TARGET_KUP4X + bool "Support KUP4X" + +config TARGET_ELPT860 + bool "Support ELPT860" + +config TARGET_UC100 + bool "Support uc100" + +config TARGET_STXXTC + bool "Support stxxtc" + +config TARGET_FPS850L + bool "Support FPS850L" + +config TARGET_FPS860L + bool "Support FPS860L" + +config TARGET_NSCU + bool "Support NSCU" + +config TARGET_SM850 + bool "Support SM850" + +config TARGET_TK885D + bool "Support TK885D" + +config TARGET_TQM823L + bool "Support TQM823L" + +config TARGET_TQM823M + bool "Support TQM823M" + +config TARGET_TQM850L + bool "Support TQM850L" + +config TARGET_TQM850M + bool "Support TQM850M" + +config TARGET_TQM855L + bool "Support TQM855L" + +config TARGET_TQM855M + bool "Support TQM855M" + +config TARGET_TQM860L + bool "Support TQM860L" + +config TARGET_TQM860M + bool "Support TQM860M" + +config TARGET_TQM862L + bool "Support TQM862L" + +config TARGET_TQM862M + bool "Support TQM862M" + +config TARGET_TQM866M + bool "Support TQM866M" + +config TARGET_TQM885D + bool "Support TQM885D" + +config TARGET_VIRTLAB2 + bool "Support virtlab2" + +endchoice + +source "board/LEOX/elpt860/Kconfig" +source "board/RRvision/Kconfig" +source "board/cogent/Kconfig" +source "board/eltec/mhpc/Kconfig" +source "board/emk/top860/Kconfig" +source "board/esteem192e/Kconfig" +source "board/flagadm/Kconfig" +source "board/gen860t/Kconfig" +source "board/hermes/Kconfig" +source "board/icu862/Kconfig" +source "board/ip860/Kconfig" +source "board/ivm/Kconfig" +source "board/kup/kup4k/Kconfig" +source "board/kup/kup4x/Kconfig" +source "board/lwmon/Kconfig" +source "board/manroland/uc100/Kconfig" +source "board/netvia/Kconfig" +source "board/r360mpi/Kconfig" +source "board/sixnet/Kconfig" +source "board/spd8xx/Kconfig" +source "board/stx/stxxtc/Kconfig" +source "board/svm_sc8xx/Kconfig" +source "board/tqc/tqm8xx/Kconfig" + +endmenu diff --git a/arch/powerpc/cpu/mpc8xx/config.mk b/arch/powerpc/cpu/mpc8xx/config.mk index ee2c883..485e43d 100644 --- a/arch/powerpc/cpu/mpc8xx/config.mk +++ b/arch/powerpc/cpu/mpc8xx/config.mk @@ -5,4 +5,4 @@ # SPDX-License-Identifier: GPL-2.0+ # -PLATFORM_CPPFLAGS += -DCONFIG_8xx -mstring -mcpu=860 -msoft-float +PLATFORM_CPPFLAGS += -mstring -mcpu=860 -msoft-float diff --git a/arch/powerpc/cpu/mpc8xxx/cpu.c b/arch/powerpc/cpu/mpc8xxx/cpu.c index 15561a1..84fec5e 100644 --- a/arch/powerpc/cpu/mpc8xxx/cpu.c +++ b/arch/powerpc/cpu/mpc8xxx/cpu.c @@ -65,7 +65,6 @@ static struct cpu_type cpu_type_list[] = { CPU_TYPE_ENTRY(T4080, T4080, 4), CPU_TYPE_ENTRY(B4860, B4860, 0), CPU_TYPE_ENTRY(G4860, G4860, 0), - CPU_TYPE_ENTRY(G4060, G4060, 0), CPU_TYPE_ENTRY(B4440, B4440, 0), CPU_TYPE_ENTRY(B4460, B4460, 0), CPU_TYPE_ENTRY(G4440, G4440, 0), diff --git a/arch/powerpc/cpu/ppc4xx/Kconfig b/arch/powerpc/cpu/ppc4xx/Kconfig new file mode 100644 index 0000000..2d15dd1 --- /dev/null +++ b/arch/powerpc/cpu/ppc4xx/Kconfig @@ -0,0 +1,322 @@ +menu "ppc4xx CPU" + depends on 4xx + +config SYS_CPU + string + default "ppc4xx" + +choice + prompt "Target select" + +config TARGET_CSB272 + bool "Support csb272" + +config TARGET_CSB472 + bool "Support csb472" + +config TARGET_G2000 + bool "Support G2000" + +config TARGET_JSE + bool "Support JSE" + +config TARGET_KORAT + bool "Support korat" + +config TARGET_LWMON5 + bool "Support lwmon5" + +config TARGET_PCS440EP + bool "Support pcs440ep" + +config TARGET_SBC405 + bool "Support sbc405" + +config TARGET_SC3 + bool "Support sc3" + +config TARGET_T3CORP + bool "Support t3corp" + +config TARGET_W7OLMC + bool "Support W7OLMC" + +config TARGET_W7OLMG + bool "Support W7OLMG" + +config TARGET_ZEUS + bool "Support zeus" + +config TARGET_ACADIA + bool "Support acadia" + +config TARGET_BAMBOO + bool "Support bamboo" + +config TARGET_BLUESTONE + bool "Support bluestone" + +config TARGET_BUBINGA + bool "Support bubinga" + +config TARGET_CANYONLANDS + bool "Support canyonlands" + +config TARGET_EBONY + bool "Support ebony" + +config TARGET_KATMAI + bool "Support katmai" + +config TARGET_KILAUEA + bool "Support kilauea" + +config TARGET_LUAN + bool "Support luan" + +config TARGET_MAKALU + bool "Support makalu" + +config TARGET_OCOTEA + bool "Support ocotea" + +config TARGET_REDWOOD + bool "Support redwood" + +config TARGET_SEQUOIA + bool "Support sequoia" + +config TARGET_TAIHU + bool "Support taihu" + +config TARGET_TAISHAN + bool "Support taishan" + +config TARGET_WALNUT + bool "Support walnut" + +config TARGET_YOSEMITE + bool "Support yosemite" + +config TARGET_YUCCA + bool "Support yucca" + +config TARGET_FX12MM + bool "Support fx12mm" + +config TARGET_V5FX30TEVAL + bool "Support v5fx30teval" + +config TARGET_CRAYL1 + bool "Support CRAYL1" + +config TARGET_CATCENTER + bool "Support CATcenter" + +config TARGET_PPCHAMELEONEVB + bool "Support PPChameleonEVB" + +config TARGET_APC405 + bool "Support APC405" + +config TARGET_AR405 + bool "Support AR405" + +config TARGET_ASH405 + bool "Support ASH405" + +config TARGET_CMS700 + bool "Support CMS700" + +config TARGET_CPCI2DP + bool "Support CPCI2DP" + +config TARGET_CPCI405 + bool "Support CPCI405" + +config TARGET_CPCI4052 + bool "Support CPCI4052" + +config TARGET_CPCI405AB + bool "Support CPCI405AB" + +config TARGET_CPCI405DT + bool "Support CPCI405DT" + +config TARGET_CPCIISER4 + bool "Support CPCIISER4" + +config TARGET_DP405 + bool "Support DP405" + +config TARGET_DU405 + bool "Support DU405" + +config TARGET_DU440 + bool "Support DU440" + +config TARGET_HH405 + bool "Support HH405" + +config TARGET_HUB405 + bool "Support HUB405" + +config TARGET_OCRTC + bool "Support OCRTC" + +config TARGET_PCI405 + bool "Support PCI405" + +config TARGET_PLU405 + bool "Support PLU405" + +config TARGET_PMC405 + bool "Support PMC405" + +config TARGET_PMC405DE + bool "Support PMC405DE" + +config TARGET_PMC440 + bool "Support PMC440" + +config TARGET_VOH405 + bool "Support VOH405" + +config TARGET_VOM405 + bool "Support VOM405" + +config TARGET_WUH405 + bool "Support WUH405" + +config TARGET_DLVISION_10G + bool "Support dlvision-10g" + +config TARGET_IO + bool "Support io" + +config TARGET_IOCON + bool "Support iocon" + +config TARGET_NEO + bool "Support neo" + +config TARGET_IO64 + bool "Support io64" + +config TARGET_DLVISION + bool "Support dlvision" + +config TARGET_GDPPC440ETX + bool "Support gdppc440etx" + +config TARGET_INTIP + bool "Support intip" + +config TARGET_ICON + bool "Support icon" + +config TARGET_MIP405 + bool "Support MIP405" + +config TARGET_PIP405 + bool "Support PIP405" + +config TARGET_ALPR + bool "Support alpr" + +config TARGET_P3P440 + bool "Support p3p440" + +config TARGET_KAREF + bool "Support KAREF" + +config TARGET_METROBOX + bool "Support METROBOX" + +config TARGET_XPEDITE1000 + bool "Support xpedite1000" + +config TARGET_ML507 + bool "Support ml507" + +config TARGET_XILINX_PPC405_GENERIC + bool "Support xilinx-ppc405-generic" + +config TARGET_XILINX_PPC440_GENERIC + bool "Support xilinx-ppc440-generic" + +endchoice + +source "board/amcc/acadia/Kconfig" +source "board/amcc/bamboo/Kconfig" +source "board/amcc/bluestone/Kconfig" +source "board/amcc/bubinga/Kconfig" +source "board/amcc/canyonlands/Kconfig" +source "board/amcc/ebony/Kconfig" +source "board/amcc/katmai/Kconfig" +source "board/amcc/kilauea/Kconfig" +source "board/amcc/luan/Kconfig" +source "board/amcc/makalu/Kconfig" +source "board/amcc/ocotea/Kconfig" +source "board/amcc/redwood/Kconfig" +source "board/amcc/sequoia/Kconfig" +source "board/amcc/taihu/Kconfig" +source "board/amcc/taishan/Kconfig" +source "board/amcc/walnut/Kconfig" +source "board/amcc/yosemite/Kconfig" +source "board/amcc/yucca/Kconfig" +source "board/avnet/fx12mm/Kconfig" +source "board/avnet/v5fx30teval/Kconfig" +source "board/cray/L1/Kconfig" +source "board/csb272/Kconfig" +source "board/csb472/Kconfig" +source "board/dave/PPChameleonEVB/Kconfig" +source "board/esd/apc405/Kconfig" +source "board/esd/ar405/Kconfig" +source "board/esd/ash405/Kconfig" +source "board/esd/cms700/Kconfig" +source "board/esd/cpci2dp/Kconfig" +source "board/esd/cpci405/Kconfig" +source "board/esd/cpciiser4/Kconfig" +source "board/esd/dp405/Kconfig" +source "board/esd/du405/Kconfig" +source "board/esd/du440/Kconfig" +source "board/esd/hh405/Kconfig" +source "board/esd/hub405/Kconfig" +source "board/esd/ocrtc/Kconfig" +source "board/esd/pci405/Kconfig" +source "board/esd/plu405/Kconfig" +source "board/esd/pmc405/Kconfig" +source "board/esd/pmc405de/Kconfig" +source "board/esd/pmc440/Kconfig" +source "board/esd/voh405/Kconfig" +source "board/esd/vom405/Kconfig" +source "board/esd/wuh405/Kconfig" +source "board/g2000/Kconfig" +source "board/gdsys/405ep/Kconfig" +source "board/gdsys/405ex/Kconfig" +source "board/gdsys/dlvision/Kconfig" +source "board/gdsys/gdppc440etx/Kconfig" +source "board/gdsys/intip/Kconfig" +source "board/jse/Kconfig" +source "board/korat/Kconfig" +source "board/lwmon5/Kconfig" +source "board/mosaixtech/icon/Kconfig" +source "board/mpl/mip405/Kconfig" +source "board/mpl/pip405/Kconfig" +source "board/pcs440ep/Kconfig" +source "board/prodrive/alpr/Kconfig" +source "board/prodrive/p3p440/Kconfig" +source "board/sandburst/karef/Kconfig" +source "board/sandburst/metrobox/Kconfig" +source "board/sbc405/Kconfig" +source "board/sc3/Kconfig" +source "board/t3corp/Kconfig" +source "board/w7o/Kconfig" +source "board/xes/xpedite1000/Kconfig" +source "board/xilinx/ml507/Kconfig" +source "board/xilinx/ppc405-generic/Kconfig" +source "board/xilinx/ppc440-generic/Kconfig" +source "board/zeus/Kconfig" + +endmenu diff --git a/arch/powerpc/cpu/ppc4xx/config.mk b/arch/powerpc/cpu/ppc4xx/config.mk index 102f069..f87c9dc 100644 --- a/arch/powerpc/cpu/ppc4xx/config.mk +++ b/arch/powerpc/cpu/ppc4xx/config.mk @@ -5,10 +5,10 @@ # SPDX-License-Identifier: GPL-2.0+ # -PLATFORM_CPPFLAGS += -DCONFIG_4xx -mstring -msoft-float +PLATFORM_CPPFLAGS += -mstring -msoft-float -cfg=$(shell grep configs $(objtree)/include/config.h | sed 's/.*<\(configs.*\)>/\1/') -is440:=$(shell grep CONFIG_440 $(srctree)/include/$(cfg)) +cfg=$(srctree)/include/configs/$(CONFIG_SYS_CONFIG_NAME:"%"=%).h +is440:=$(shell grep CONFIG_440 $(cfg)) ifneq (,$(findstring CONFIG_440,$(is440))) PLATFORM_CPPFLAGS += -Wa,-m440 -mcpu=440 diff --git a/arch/powerpc/cpu/ppc4xx/cpu_init.c b/arch/powerpc/cpu/ppc4xx/cpu_init.c index d465dcd..0b27d29 100644 --- a/arch/powerpc/cpu/ppc4xx/cpu_init.c +++ b/arch/powerpc/cpu/ppc4xx/cpu_init.c @@ -12,9 +12,7 @@ #include <asm/ppc4xx-gpio.h> #include <asm/ppc4xx.h> -#if defined(CONFIG_405GP) || defined(CONFIG_405EP) DECLARE_GLOBAL_DATA_PTR; -#endif #ifndef CONFIG_SYS_PLL_RECONFIG #define CONFIG_SYS_PLL_RECONFIG 0 @@ -451,6 +449,8 @@ cpu_init_f (void) mtdcr(PLB4A1_ACR, (mfdcr(PLB4A1_ACR) & ~PLB4Ax_ACR_RDP_MASK) | PLB4Ax_ACR_RDP_4DEEP); #endif /* CONFIG_440SP/SPE || CONFIG_460EX/GT || CONFIG_405EX */ + + gd = (gd_t *)(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_GBL_DATA_OFFSET); } /* diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h index cdc1f10..d3a8391 100644 --- a/arch/powerpc/include/asm/cache.h +++ b/arch/powerpc/include/asm/cache.h @@ -57,6 +57,12 @@ extern void unlock_ram_in_cache(void); #endif /* CONFIG_SYS_INIT_RAM_LOCK */ #endif /* __ASSEMBLY__ */ +#if defined(__KERNEL__) && !defined(__ASSEMBLY__) +int l2cache_init(void); +void enable_cpc(void); +void disable_cpc_sram(void); +#endif + /* prep registers for L2 */ #define CACHECRBA 0x80000823 /* Cache configuration register address */ #define L2CACHE_MASK 0x03 /* Mask for 2 L2 Cache bits */ diff --git a/arch/powerpc/include/asm/immap_85xx.h b/arch/powerpc/include/asm/immap_85xx.h index 8258ab3..dfb370e 100644 --- a/arch/powerpc/include/asm/immap_85xx.h +++ b/arch/powerpc/include/asm/immap_85xx.h @@ -2905,6 +2905,8 @@ struct ccsr_sfp_regs { #endif #define CONFIG_SYS_FSL_CORENET_SERDES_OFFSET 0xEA000 #define CONFIG_SYS_FSL_CORENET_SERDES2_OFFSET 0xEB000 +#define CONFIG_SYS_FSL_CORENET_SERDES3_OFFSET 0xEC000 +#define CONFIG_SYS_FSL_CORENET_SERDES4_OFFSET 0xED000 #define CONFIG_SYS_FSL_CPC_OFFSET 0x10000 #define CONFIG_SYS_FSL_SCFG_OFFSET 0xFC000 #define CONFIG_SYS_MPC85xx_DMA1_OFFSET 0x100000 @@ -3090,6 +3092,10 @@ struct ccsr_sfp_regs { (CONFIG_SYS_IMMR + CONFIG_SYS_FSL_CORENET_SERDES_OFFSET) #define CONFIG_SYS_FSL_CORENET_SERDES2_ADDR \ (CONFIG_SYS_IMMR + CONFIG_SYS_FSL_CORENET_SERDES2_OFFSET) +#define CONFIG_SYS_FSL_CORENET_SERDES3_ADDR \ + (CONFIG_SYS_IMMR + CONFIG_SYS_FSL_CORENET_SERDES3_OFFSET) +#define CONFIG_SYS_FSL_CORENET_SERDES4_ADDR \ + (CONFIG_SYS_IMMR + CONFIG_SYS_FSL_CORENET_SERDES4_OFFSET) #define CONFIG_SYS_MPC85xx_USB1_ADDR \ (CONFIG_SYS_IMMR + CONFIG_SYS_MPC85xx_USB1_OFFSET) #define CONFIG_SYS_MPC85xx_USB2_ADDR \ diff --git a/arch/powerpc/include/asm/immap_qe.h b/arch/powerpc/include/asm/immap_qe.h deleted file mode 100644 index b317dcb..0000000 --- a/arch/powerpc/include/asm/immap_qe.h +++ /dev/null @@ -1,582 +0,0 @@ -/* - * QUICC Engine (QE) Internal Memory Map. - * The Internal Memory Map for devices with QE on them. This - * is the superset of all QE devices (8360, etc.). - * - * Copyright (c) 2006-2009, 2011 Freescale Semiconductor, Inc. - * Author: Shlomi Gridih <gridish@freescale.com> - * - * SPDX-License-Identifier: GPL-2.0+ - */ - -#ifndef __IMMAP_QE_H__ -#define __IMMAP_QE_H__ - -#ifdef CONFIG_MPC83xx -#if defined(CONFIG_MPC8360) -#define QE_MURAM_SIZE 0xc000UL -#define MAX_QE_RISC 2 -#define QE_NUM_OF_SNUM 28 -#elif defined(CONFIG_MPC832x) || defined(CONFIG_MPC8309) -#define QE_MURAM_SIZE 0x4000UL -#define MAX_QE_RISC 1 -#define QE_NUM_OF_SNUM 28 -#endif -#endif - -/* QE I-RAM */ -typedef struct qe_iram { - u32 iadd; /* I-RAM Address Register */ - u32 idata; /* I-RAM Data Register */ - u8 res0[0x4]; - u32 iready; - u8 res1[0x70]; -} __attribute__ ((packed)) qe_iram_t; - -/* QE Interrupt Controller */ -typedef struct qe_ic { - u32 qicr; - u32 qivec; - u32 qripnr; - u32 qipnr; - u32 qipxcc; - u32 qipycc; - u32 qipwcc; - u32 qipzcc; - u32 qimr; - u32 qrimr; - u32 qicnr; - u8 res0[0x4]; - u32 qiprta; - u32 qiprtb; - u8 res1[0x4]; - u32 qricr; - u8 res2[0x20]; - u32 qhivec; - u8 res3[0x1C]; -} __attribute__ ((packed)) qe_ic_t; - -/* Communications Processor */ -typedef struct cp_qe { - u32 cecr; /* QE command register */ - u32 ceccr; /* QE controller configuration register */ - u32 cecdr; /* QE command data register */ - u8 res0[0xA]; - u16 ceter; /* QE timer event register */ - u8 res1[0x2]; - u16 cetmr; /* QE timers mask register */ - u32 cetscr; /* QE time-stamp timer control register */ - u32 cetsr1; /* QE time-stamp register 1 */ - u32 cetsr2; /* QE time-stamp register 2 */ - u8 res2[0x8]; - u32 cevter; /* QE virtual tasks event register */ - u32 cevtmr; /* QE virtual tasks mask register */ - u16 cercr; /* QE RAM control register */ - u8 res3[0x2]; - u8 res4[0x24]; - u16 ceexe1; /* QE external request 1 event register */ - u8 res5[0x2]; - u16 ceexm1; /* QE external request 1 mask register */ - u8 res6[0x2]; - u16 ceexe2; /* QE external request 2 event register */ - u8 res7[0x2]; - u16 ceexm2; /* QE external request 2 mask register */ - u8 res8[0x2]; - u16 ceexe3; /* QE external request 3 event register */ - u8 res9[0x2]; - u16 ceexm3; /* QE external request 3 mask register */ - u8 res10[0x2]; - u16 ceexe4; /* QE external request 4 event register */ - u8 res11[0x2]; - u16 ceexm4; /* QE external request 4 mask register */ - u8 res12[0x2]; - u8 res13[0x280]; -} __attribute__ ((packed)) cp_qe_t; - -/* QE Multiplexer */ -typedef struct qe_mux { - u32 cmxgcr; /* CMX general clock route register */ - u32 cmxsi1cr_l; /* CMX SI1 clock route low register */ - u32 cmxsi1cr_h; /* CMX SI1 clock route high register */ - u32 cmxsi1syr; /* CMX SI1 SYNC route register */ - u32 cmxucr1; /* CMX UCC1, UCC3 clock route register */ - u32 cmxucr2; /* CMX UCC5, UCC7 clock route register */ - u32 cmxucr3; /* CMX UCC2, UCC4 clock route register */ - u32 cmxucr4; /* CMX UCC6, UCC8 clock route register */ - u32 cmxupcr; /* CMX UPC clock route register */ - u8 res0[0x1C]; -} __attribute__ ((packed)) qe_mux_t; - -/* QE Timers */ -typedef struct qe_timers { - u8 gtcfr1; /* Timer 1 2 global configuration register */ - u8 res0[0x3]; - u8 gtcfr2; /* Timer 3 4 global configuration register */ - u8 res1[0xB]; - u16 gtmdr1; /* Timer 1 mode register */ - u16 gtmdr2; /* Timer 2 mode register */ - u16 gtrfr1; /* Timer 1 reference register */ - u16 gtrfr2; /* Timer 2 reference register */ - u16 gtcpr1; /* Timer 1 capture register */ - u16 gtcpr2; /* Timer 2 capture register */ - u16 gtcnr1; /* Timer 1 counter */ - u16 gtcnr2; /* Timer 2 counter */ - u16 gtmdr3; /* Timer 3 mode register */ - u16 gtmdr4; /* Timer 4 mode register */ - u16 gtrfr3; /* Timer 3 reference register */ - u16 gtrfr4; /* Timer 4 reference register */ - u16 gtcpr3; /* Timer 3 capture register */ - u16 gtcpr4; /* Timer 4 capture register */ - u16 gtcnr3; /* Timer 3 counter */ - u16 gtcnr4; /* Timer 4 counter */ - u16 gtevr1; /* Timer 1 event register */ - u16 gtevr2; /* Timer 2 event register */ - u16 gtevr3; /* Timer 3 event register */ - u16 gtevr4; /* Timer 4 event register */ - u16 gtps; /* Timer 1 prescale register */ - u8 res2[0x46]; -} __attribute__ ((packed)) qe_timers_t; - -/* BRG */ -typedef struct qe_brg { - u32 brgc1; /* BRG1 configuration register */ - u32 brgc2; /* BRG2 configuration register */ - u32 brgc3; /* BRG3 configuration register */ - u32 brgc4; /* BRG4 configuration register */ - u32 brgc5; /* BRG5 configuration register */ - u32 brgc6; /* BRG6 configuration register */ - u32 brgc7; /* BRG7 configuration register */ - u32 brgc8; /* BRG8 configuration register */ - u32 brgc9; /* BRG9 configuration register */ - u32 brgc10; /* BRG10 configuration register */ - u32 brgc11; /* BRG11 configuration register */ - u32 brgc12; /* BRG12 configuration register */ - u32 brgc13; /* BRG13 configuration register */ - u32 brgc14; /* BRG14 configuration register */ - u32 brgc15; /* BRG15 configuration register */ - u32 brgc16; /* BRG16 configuration register */ - u8 res0[0x40]; -} __attribute__ ((packed)) qe_brg_t; - -/* SPI */ -typedef struct spi { - u8 res0[0x20]; - u32 spmode; /* SPI mode register */ - u8 res1[0x2]; - u8 spie; /* SPI event register */ - u8 res2[0x1]; - u8 res3[0x2]; - u8 spim; /* SPI mask register */ - u8 res4[0x1]; - u8 res5[0x1]; - u8 spcom; /* SPI command register */ - u8 res6[0x2]; - u32 spitd; /* SPI transmit data register (cpu mode) */ - u32 spird; /* SPI receive data register (cpu mode) */ - u8 res7[0x8]; -} __attribute__ ((packed)) spi_t; - -/* SI */ -typedef struct si1 { - u16 siamr1; /* SI1 TDMA mode register */ - u16 sibmr1; /* SI1 TDMB mode register */ - u16 sicmr1; /* SI1 TDMC mode register */ - u16 sidmr1; /* SI1 TDMD mode register */ - u8 siglmr1_h; /* SI1 global mode register high */ - u8 res0[0x1]; - u8 sicmdr1_h; /* SI1 command register high */ - u8 res2[0x1]; - u8 sistr1_h; /* SI1 status register high */ - u8 res3[0x1]; - u16 sirsr1_h; /* SI1 RAM shadow address register high */ - u8 sitarc1; /* SI1 RAM counter Tx TDMA */ - u8 sitbrc1; /* SI1 RAM counter Tx TDMB */ - u8 sitcrc1; /* SI1 RAM counter Tx TDMC */ - u8 sitdrc1; /* SI1 RAM counter Tx TDMD */ - u8 sirarc1; /* SI1 RAM counter Rx TDMA */ - u8 sirbrc1; /* SI1 RAM counter Rx TDMB */ - u8 sircrc1; /* SI1 RAM counter Rx TDMC */ - u8 sirdrc1; /* SI1 RAM counter Rx TDMD */ - u8 res4[0x8]; - u16 siemr1; /* SI1 TDME mode register 16 bits */ - u16 sifmr1; /* SI1 TDMF mode register 16 bits */ - u16 sigmr1; /* SI1 TDMG mode register 16 bits */ - u16 sihmr1; /* SI1 TDMH mode register 16 bits */ - u8 siglmg1_l; /* SI1 global mode register low 8 bits */ - u8 res5[0x1]; - u8 sicmdr1_l; /* SI1 command register low 8 bits */ - u8 res6[0x1]; - u8 sistr1_l; /* SI1 status register low 8 bits */ - u8 res7[0x1]; - u16 sirsr1_l; /* SI1 RAM shadow address register low 16 bits */ - u8 siterc1; /* SI1 RAM counter Tx TDME 8 bits */ - u8 sitfrc1; /* SI1 RAM counter Tx TDMF 8 bits */ - u8 sitgrc1; /* SI1 RAM counter Tx TDMG 8 bits */ - u8 sithrc1; /* SI1 RAM counter Tx TDMH 8 bits */ - u8 sirerc1; /* SI1 RAM counter Rx TDME 8 bits */ - u8 sirfrc1; /* SI1 RAM counter Rx TDMF 8 bits */ - u8 sirgrc1; /* SI1 RAM counter Rx TDMG 8 bits */ - u8 sirhrc1; /* SI1 RAM counter Rx TDMH 8 bits */ - u8 res8[0x8]; - u32 siml1; /* SI1 multiframe limit register */ - u8 siedm1; /* SI1 extended diagnostic mode register */ - u8 res9[0xBB]; -} __attribute__ ((packed)) si1_t; - -/* SI Routing Tables */ -typedef struct sir { - u8 tx[0x400]; - u8 rx[0x400]; - u8 res0[0x800]; -} __attribute__ ((packed)) sir_t; - -/* USB Controller. */ -typedef struct usb_ctlr { - u8 usb_usmod; - u8 usb_usadr; - u8 usb_uscom; - u8 res1[1]; - u16 usb_usep1; - u16 usb_usep2; - u16 usb_usep3; - u16 usb_usep4; - u8 res2[4]; - u16 usb_usber; - u8 res3[2]; - u16 usb_usbmr; - u8 res4[1]; - u8 usb_usbs; - u16 usb_ussft; - u8 res5[2]; - u16 usb_usfrn; - u8 res6[0x22]; -} __attribute__ ((packed)) usb_t; - -/* MCC */ -typedef struct mcc { - u32 mcce; /* MCC event register */ - u32 mccm; /* MCC mask register */ - u32 mccf; /* MCC configuration register */ - u32 merl; /* MCC emergency request level register */ - u8 res0[0xF0]; -} __attribute__ ((packed)) mcc_t; - -/* QE UCC Slow */ -typedef struct ucc_slow { - u32 gumr_l; /* UCCx general mode register (low) */ - u32 gumr_h; /* UCCx general mode register (high) */ - u16 upsmr; /* UCCx protocol-specific mode register */ - u8 res0[0x2]; - u16 utodr; /* UCCx transmit on demand register */ - u16 udsr; /* UCCx data synchronization register */ - u16 ucce; /* UCCx event register */ - u8 res1[0x2]; - u16 uccm; /* UCCx mask register */ - u8 res2[0x1]; - u8 uccs; /* UCCx status register */ - u8 res3[0x24]; - u16 utpt; - u8 guemr; /* UCC general extended mode register */ - u8 res4[0x200 - 0x091]; -} __attribute__ ((packed)) ucc_slow_t; - -typedef struct ucc_mii_mng { - u32 miimcfg; /* MII management configuration reg */ - u32 miimcom; /* MII management command reg */ - u32 miimadd; /* MII management address reg */ - u32 miimcon; /* MII management control reg */ - u32 miimstat; /* MII management status reg */ - u32 miimind; /* MII management indication reg */ - u32 ifctl; /* interface control reg */ - u32 ifstat; /* interface statux reg */ -} __attribute__ ((packed))uec_mii_t; - -typedef struct ucc_ethernet { - u32 maccfg1; /* mac configuration reg. 1 */ - u32 maccfg2; /* mac configuration reg. 2 */ - u32 ipgifg; /* interframe gap reg. */ - u32 hafdup; /* half-duplex reg. */ - u8 res1[0x10]; - u32 miimcfg; /* MII management configuration reg */ - u32 miimcom; /* MII management command reg */ - u32 miimadd; /* MII management address reg */ - u32 miimcon; /* MII management control reg */ - u32 miimstat; /* MII management status reg */ - u32 miimind; /* MII management indication reg */ - u32 ifctl; /* interface control reg */ - u32 ifstat; /* interface statux reg */ - u32 macstnaddr1; /* mac station address part 1 reg */ - u32 macstnaddr2; /* mac station address part 2 reg */ - u8 res2[0x8]; - u32 uempr; /* UCC Ethernet Mac parameter reg */ - u32 utbipar; /* UCC tbi address reg */ - u16 uescr; /* UCC Ethernet statistics control reg */ - u8 res3[0x180 - 0x15A]; - u32 tx64; /* Total number of frames (including bad - * frames) transmitted that were exactly - * of the minimal length (64 for un tagged, - * 68 for tagged, or with length exactly - * equal to the parameter MINLength */ - u32 tx127; /* Total number of frames (including bad - * frames) transmitted that were between - * MINLength (Including FCS length==4) - * and 127 octets */ - u32 tx255; /* Total number of frames (including bad - * frames) transmitted that were between - * 128 (Including FCS length==4) and 255 - * octets */ - u32 rx64; /* Total number of frames received including - * bad frames that were exactly of the - * mninimal length (64 bytes) */ - u32 rx127; /* Total number of frames (including bad - * frames) received that were between - * MINLength (Including FCS length==4) - * and 127 octets */ - u32 rx255; /* Total number of frames (including - * bad frames) received that were between - * 128 (Including FCS length==4) and 255 - * octets */ - u32 txok; /* Total number of octets residing in frames - * that where involved in succesfull - * transmission */ - u16 txcf; /* Total number of PAUSE control frames - * transmitted by this MAC */ - u8 res4[0x2]; - u32 tmca; /* Total number of frames that were transmitted - * succesfully with the group address bit set - * that are not broadcast frames */ - u32 tbca; /* Total number of frames transmitted - * succesfully that had destination address - * field equal to the broadcast address */ - u32 rxfok; /* Total number of frames received OK */ - u32 rxbok; /* Total number of octets received OK */ - u32 rbyt; /* Total number of octets received including - * octets in bad frames. Must be implemented - * in HW because it includes octets in frames - * that never even reach the UCC */ - u32 rmca; /* Total number of frames that were received - * succesfully with the group address bit set - * that are not broadcast frames */ - u32 rbca; /* Total number of frames received succesfully - * that had destination address equal to the - * broadcast address */ - u32 scar; /* Statistics carry register */ - u32 scam; /* Statistics caryy mask register */ - u8 res5[0x200 - 0x1c4]; -} __attribute__ ((packed)) uec_t; - -/* QE UCC Fast */ -typedef struct ucc_fast { - u32 gumr; /* UCCx general mode register */ - u32 upsmr; /* UCCx protocol-specific mode register */ - u16 utodr; /* UCCx transmit on demand register */ - u8 res0[0x2]; - u16 udsr; /* UCCx data synchronization register */ - u8 res1[0x2]; - u32 ucce; /* UCCx event register */ - u32 uccm; /* UCCx mask register. */ - u8 uccs; /* UCCx status register */ - u8 res2[0x7]; - u32 urfb; /* UCC receive FIFO base */ - u16 urfs; /* UCC receive FIFO size */ - u8 res3[0x2]; - u16 urfet; /* UCC receive FIFO emergency threshold */ - u16 urfset; /* UCC receive FIFO special emergency - * threshold */ - u32 utfb; /* UCC transmit FIFO base */ - u16 utfs; /* UCC transmit FIFO size */ - u8 res4[0x2]; - u16 utfet; /* UCC transmit FIFO emergency threshold */ - u8 res5[0x2]; - u16 utftt; /* UCC transmit FIFO transmit threshold */ - u8 res6[0x2]; - u16 utpt; /* UCC transmit polling timer */ - u8 res7[0x2]; - u32 urtry; /* UCC retry counter register */ - u8 res8[0x4C]; - u8 guemr; /* UCC general extended mode register */ - u8 res9[0x100 - 0x091]; - uec_t ucc_eth; -} __attribute__ ((packed)) ucc_fast_t; - -/* QE UCC */ -typedef struct ucc_common { - u8 res1[0x90]; - u8 guemr; - u8 res2[0x200 - 0x091]; -} __attribute__ ((packed)) ucc_common_t; - -typedef struct ucc { - union { - ucc_slow_t slow; - ucc_fast_t fast; - ucc_common_t common; - }; -} __attribute__ ((packed)) ucc_t; - -/* MultiPHY UTOPIA POS Controllers (UPC) */ -typedef struct upc { - u32 upgcr; /* UTOPIA/POS general configuration register */ - u32 uplpa; /* UTOPIA/POS last PHY address */ - u32 uphec; /* ATM HEC register */ - u32 upuc; /* UTOPIA/POS UCC configuration */ - u32 updc1; /* UTOPIA/POS device 1 configuration */ - u32 updc2; /* UTOPIA/POS device 2 configuration */ - u32 updc3; /* UTOPIA/POS device 3 configuration */ - u32 updc4; /* UTOPIA/POS device 4 configuration */ - u32 upstpa; /* UTOPIA/POS STPA threshold */ - u8 res0[0xC]; - u32 updrs1_h; /* UTOPIA/POS device 1 rate select */ - u32 updrs1_l; /* UTOPIA/POS device 1 rate select */ - u32 updrs2_h; /* UTOPIA/POS device 2 rate select */ - u32 updrs2_l; /* UTOPIA/POS device 2 rate select */ - u32 updrs3_h; /* UTOPIA/POS device 3 rate select */ - u32 updrs3_l; /* UTOPIA/POS device 3 rate select */ - u32 updrs4_h; /* UTOPIA/POS device 4 rate select */ - u32 updrs4_l; /* UTOPIA/POS device 4 rate select */ - u32 updrp1; /* UTOPIA/POS device 1 receive priority low */ - u32 updrp2; /* UTOPIA/POS device 2 receive priority low */ - u32 updrp3; /* UTOPIA/POS device 3 receive priority low */ - u32 updrp4; /* UTOPIA/POS device 4 receive priority low */ - u32 upde1; /* UTOPIA/POS device 1 event */ - u32 upde2; /* UTOPIA/POS device 2 event */ - u32 upde3; /* UTOPIA/POS device 3 event */ - u32 upde4; /* UTOPIA/POS device 4 event */ - u16 uprp1; - u16 uprp2; - u16 uprp3; - u16 uprp4; - u8 res1[0x8]; - u16 uptirr1_0; /* Device 1 transmit internal rate 0 */ - u16 uptirr1_1; /* Device 1 transmit internal rate 1 */ - u16 uptirr1_2; /* Device 1 transmit internal rate 2 */ - u16 uptirr1_3; /* Device 1 transmit internal rate 3 */ - u16 uptirr2_0; /* Device 2 transmit internal rate 0 */ - u16 uptirr2_1; /* Device 2 transmit internal rate 1 */ - u16 uptirr2_2; /* Device 2 transmit internal rate 2 */ - u16 uptirr2_3; /* Device 2 transmit internal rate 3 */ - u16 uptirr3_0; /* Device 3 transmit internal rate 0 */ - u16 uptirr3_1; /* Device 3 transmit internal rate 1 */ - u16 uptirr3_2; /* Device 3 transmit internal rate 2 */ - u16 uptirr3_3; /* Device 3 transmit internal rate 3 */ - u16 uptirr4_0; /* Device 4 transmit internal rate 0 */ - u16 uptirr4_1; /* Device 4 transmit internal rate 1 */ - u16 uptirr4_2; /* Device 4 transmit internal rate 2 */ - u16 uptirr4_3; /* Device 4 transmit internal rate 3 */ - u32 uper1; /* Device 1 port enable register */ - u32 uper2; /* Device 2 port enable register */ - u32 uper3; /* Device 3 port enable register */ - u32 uper4; /* Device 4 port enable register */ - u8 res2[0x150]; -} __attribute__ ((packed)) upc_t; - -/* SDMA */ -typedef struct sdma { - u32 sdsr; /* Serial DMA status register */ - u32 sdmr; /* Serial DMA mode register */ - u32 sdtr1; /* SDMA system bus threshold register */ - u32 sdtr2; /* SDMA secondary bus threshold register */ - u32 sdhy1; /* SDMA system bus hysteresis register */ - u32 sdhy2; /* SDMA secondary bus hysteresis register */ - u32 sdta1; /* SDMA system bus address register */ - u32 sdta2; /* SDMA secondary bus address register */ - u32 sdtm1; /* SDMA system bus MSNUM register */ - u32 sdtm2; /* SDMA secondary bus MSNUM register */ - u8 res0[0x10]; - u32 sdaqr; /* SDMA address bus qualify register */ - u32 sdaqmr; /* SDMA address bus qualify mask register */ - u8 res1[0x4]; - u32 sdwbcr; /* SDMA CAM entries base register */ - u8 res2[0x38]; -} __attribute__ ((packed)) sdma_t; - -/* Debug Space */ -typedef struct dbg { - u32 bpdcr; /* Breakpoint debug command register */ - u32 bpdsr; /* Breakpoint debug status register */ - u32 bpdmr; /* Breakpoint debug mask register */ - u32 bprmrr0; /* Breakpoint request mode risc register 0 */ - u32 bprmrr1; /* Breakpoint request mode risc register 1 */ - u8 res0[0x8]; - u32 bprmtr0; /* Breakpoint request mode trb register 0 */ - u32 bprmtr1; /* Breakpoint request mode trb register 1 */ - u8 res1[0x8]; - u32 bprmir; /* Breakpoint request mode immediate register */ - u32 bprmsr; /* Breakpoint request mode serial register */ - u32 bpemr; /* Breakpoint exit mode register */ - u8 res2[0x48]; -} __attribute__ ((packed)) dbg_t; - -/* - * RISC Special Registers (Trap and Breakpoint). These are described in - * the QE Developer's Handbook. -*/ -typedef struct rsp { - u32 tibcr[16]; /* Trap/instruction breakpoint control regs */ - u8 res0[64]; - u32 ibcr0; - u32 ibs0; - u32 ibcnr0; - u8 res1[4]; - u32 ibcr1; - u32 ibs1; - u32 ibcnr1; - u32 npcr; - u32 dbcr; - u32 dbar; - u32 dbamr; - u32 dbsr; - u32 dbcnr; - u8 res2[12]; - u32 dbdr_h; - u32 dbdr_l; - u32 dbdmr_h; - u32 dbdmr_l; - u32 bsr; - u32 bor; - u32 bior; - u8 res3[4]; - u32 iatr[4]; - u32 eccr; /* Exception control configuration register */ - u32 eicr; - u8 res4[0x100-0xf8]; -} __attribute__ ((packed)) rsp_t; - -typedef struct qe_immap { - qe_iram_t iram; /* I-RAM */ - qe_ic_t ic; /* Interrupt Controller */ - cp_qe_t cp; /* Communications Processor */ - qe_mux_t qmx; /* QE Multiplexer */ - qe_timers_t qet; /* QE Timers */ - spi_t spi[0x2]; /* spi */ - mcc_t mcc; /* mcc */ - qe_brg_t brg; /* brg */ - usb_t usb; /* USB */ - si1_t si1; /* SI */ - u8 res11[0x800]; - sir_t sir; /* SI Routing Tables */ - ucc_t ucc1; /* ucc1 */ - ucc_t ucc3; /* ucc3 */ - ucc_t ucc5; /* ucc5 */ - ucc_t ucc7; /* ucc7 */ - u8 res12[0x600]; - upc_t upc1; /* MultiPHY UTOPIA POS Controller 1 */ - ucc_t ucc2; /* ucc2 */ - ucc_t ucc4; /* ucc4 */ - ucc_t ucc6; /* ucc6 */ - ucc_t ucc8; /* ucc8 */ - u8 res13[0x600]; - upc_t upc2; /* MultiPHY UTOPIA POS Controller 2 */ - sdma_t sdma; /* SDMA */ - dbg_t dbg; /* Debug Space */ - rsp_t rsp[0x2]; /* RISC Special Registers - * (Trap and Breakpoint) */ - u8 res14[0x300]; - u8 res15[0x3A00]; - u8 res16[0x8000]; /* 0x108000 - 0x110000 */ - u8 muram[QE_MURAM_SIZE]; -} __attribute__ ((packed)) qe_map_t; - -extern qe_map_t *qe_immr; - -#endif /* __IMMAP_QE_H__ */ diff --git a/arch/powerpc/include/asm/io.h b/arch/powerpc/include/asm/io.h index d8b7b97..a5257e9 100644 --- a/arch/powerpc/include/asm/io.h +++ b/arch/powerpc/include/asm/io.h @@ -123,6 +123,9 @@ static inline void isync(void) #define iobarrier_r() eieio() #define iobarrier_w() eieio() +#define mb() sync() +#define isb() isync() + /* * Non ordered and non-swapping "raw" accessors */ diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h index a5e7a61..1b98e0f 100644 --- a/arch/powerpc/include/asm/processor.h +++ b/arch/powerpc/include/asm/processor.h @@ -378,11 +378,16 @@ #else #define SPRN_TCR 0x154 /* Book E Timer Control Register */ #endif /* CONFIG_BOOKE */ +#ifdef CONFIG_E500MC +#define TCR_WP(x) (((64-x)&0x3)<<30)| \ + (((64-x)&0x3c)<<15) /* WDT Period 2^x clocks*/ +#else #define TCR_WP(x) (((x)&0x3)<<30) /* WDT Period */ #define WP_2_17 0 /* 2^17 clocks */ #define WP_2_21 1 /* 2^21 clocks */ #define WP_2_25 2 /* 2^25 clocks */ #define WP_2_29 3 /* 2^29 clocks */ +#endif /* CONFIG_E500 */ #define TCR_WRC(x) (((x)&0x3)<<28) /* WDT Reset Control */ #define WRC_NONE 0 /* No reset will occur */ #define WRC_CORE 1 /* Core reset will occur */ @@ -1118,7 +1123,6 @@ #define SVR_B4860 0X868000 #define SVR_G4860 0x868001 #define SVR_B4460 0x868003 -#define SVR_G4060 0x868003 #define SVR_B4440 0x868100 #define SVR_G4440 0x868101 #define SVR_B4420 0x868102 diff --git a/arch/powerpc/lib/board.c b/arch/powerpc/lib/board.c index 300ab12..0296205 100644 --- a/arch/powerpc/lib/board.c +++ b/arch/powerpc/lib/board.c @@ -226,6 +226,9 @@ static int init_func_spi(void) #if defined(CONFIG_WATCHDOG) int init_func_watchdog_init(void) { +#if defined(CONFIG_MPC85xx) + init_85xx_watchdog(); +#endif puts(" Watchdog enabled\n"); WATCHDOG_RESET(); return 0; @@ -370,6 +373,11 @@ void board_init_f(ulong bootflag) #ifdef CONFIG_DEEP_SLEEP /* Jump to kernel in deep sleep case */ if (in_be32(&gur->scrtsr[0]) & (1 << 3)) { + l2cache_init(); +#if defined(CONFIG_RAMBOOT_PBL) + disable_cpc_sram(); +#endif + enable_cpc(); start_addr = in_be32(&scfg->sparecr[1]); kernel_resume = (func_t)start_addr; kernel_resume(); diff --git a/arch/sandbox/Kconfig b/arch/sandbox/Kconfig new file mode 100644 index 0000000..c393550 --- /dev/null +++ b/arch/sandbox/Kconfig @@ -0,0 +1,16 @@ +menu "Sandbox architecture" + depends on SANDBOX + +config SYS_ARCH + string + default "sandbox" + +config SYS_BOARD + string + default "sandbox" + +config SYS_CONFIG_NAME + string + default "sandbox" + +endmenu diff --git a/arch/sandbox/config.mk b/arch/sandbox/config.mk index c3f889f..e38a44b 100644 --- a/arch/sandbox/config.mk +++ b/arch/sandbox/config.mk @@ -1,7 +1,7 @@ # Copyright (c) 2011 The Chromium OS Authors. # SPDX-License-Identifier: GPL-2.0+ -PLATFORM_CPPFLAGS += -DCONFIG_SANDBOX -D__SANDBOX__ -U_FORTIFY_SOURCE +PLATFORM_CPPFLAGS += -D__SANDBOX__ -U_FORTIFY_SOURCE PLATFORM_CPPFLAGS += -DCONFIG_ARCH_MAP_SYSMEM -DCONFIG_SYS_GENERIC_BOARD PLATFORM_LIBS += -lrt diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig new file mode 100644 index 0000000..e6ded16 --- /dev/null +++ b/arch/sh/Kconfig @@ -0,0 +1,98 @@ +menu "SuperH architecture" + depends on SH + +config SYS_ARCH + string + default "sh" + +choice + prompt "Target select" + +config TARGET_RSK7203 + bool "Support rsk7203" + +config TARGET_RSK7264 + bool "Support rsk7264" + +config TARGET_RSK7269 + bool "Support rsk7269" + +config TARGET_MPR2 + bool "Support mpr2" + +config TARGET_MS7720SE + bool "Support ms7720se" + +config TARGET_SHMIN + bool "Support shmin" + +config TARGET_ESPT + bool "Support espt" + +config TARGET_MS7722SE + bool "Support ms7722se" + +config TARGET_MS7750SE + bool "Support ms7750se" + +config TARGET_AP_SH4A_4A + bool "Support ap_sh4a_4a" + +config TARGET_AP325RXA + bool "Support ap325rxa" + +config TARGET_ECOVEC + bool "Support ecovec" + +config TARGET_MIGOR + bool "Support MigoR" + +config TARGET_R0P7734 + bool "Support r0p7734" + +config TARGET_R2DPLUS + bool "Support r2dplus" + +config TARGET_R7780MP + bool "Support r7780mp" + +config TARGET_SH7752EVB + bool "Support sh7752evb" + +config TARGET_SH7753EVB + bool "Support sh7753evb" + +config TARGET_SH7757LCR + bool "Support sh7757lcr" + +config TARGET_SH7763RDP + bool "Support sh7763rdp" + +config TARGET_SH7785LCR + bool "Support sh7785lcr" + +endchoice + +source "board/alphaproject/ap_sh4a_4a/Kconfig" +source "board/espt/Kconfig" +source "board/mpr2/Kconfig" +source "board/ms7720se/Kconfig" +source "board/ms7722se/Kconfig" +source "board/ms7750se/Kconfig" +source "board/renesas/MigoR/Kconfig" +source "board/renesas/ap325rxa/Kconfig" +source "board/renesas/ecovec/Kconfig" +source "board/renesas/r0p7734/Kconfig" +source "board/renesas/r2dplus/Kconfig" +source "board/renesas/r7780mp/Kconfig" +source "board/renesas/rsk7203/Kconfig" +source "board/renesas/rsk7264/Kconfig" +source "board/renesas/rsk7269/Kconfig" +source "board/renesas/sh7752evb/Kconfig" +source "board/renesas/sh7753evb/Kconfig" +source "board/renesas/sh7757lcr/Kconfig" +source "board/renesas/sh7763rdp/Kconfig" +source "board/renesas/sh7785lcr/Kconfig" +source "board/shmin/Kconfig" + +endmenu diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig new file mode 100644 index 0000000..fc92910 --- /dev/null +++ b/arch/sparc/Kconfig @@ -0,0 +1,34 @@ +menu "SPARC architecture" + depends on SPARC + +config SYS_ARCH + string + default "sparc" + +choice + prompt "Target select" + +config TARGET_GRSIM_LEON2 + bool "Support grsim_leon2" + +config TARGET_GR_CPCI_AX2000 + bool "Support gr_cpci_ax2000" + +config TARGET_GR_EP2S60 + bool "Support gr_ep2s60" + +config TARGET_GR_XC3S_1500 + bool "Support gr_xc3s_1500" + +config TARGET_GRSIM + bool "Support grsim" + +endchoice + +source "board/gaisler/gr_cpci_ax2000/Kconfig" +source "board/gaisler/gr_ep2s60/Kconfig" +source "board/gaisler/gr_xc3s_1500/Kconfig" +source "board/gaisler/grsim/Kconfig" +source "board/gaisler/grsim_leon2/Kconfig" + +endmenu diff --git a/arch/sparc/config.mk b/arch/sparc/config.mk index be59f58..196d28a 100644 --- a/arch/sparc/config.mk +++ b/arch/sparc/config.mk @@ -14,4 +14,4 @@ gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`) CONFIG_STANDALONE_LOAD_ADDR ?= 0x00000000 -L $(gcclibdir) \ -T $(srctree)/examples/standalone/sparc.lds -PLATFORM_CPPFLAGS += -DCONFIG_SPARC -D__sparc__ +PLATFORM_CPPFLAGS += -D__sparc__ diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig new file mode 100644 index 0000000..8fc619a --- /dev/null +++ b/arch/x86/Kconfig @@ -0,0 +1,18 @@ +menu "x86 architecture" + depends on X86 + +config SYS_ARCH + string + default "x86" + +choice + prompt "Target select" + +config TARGET_COREBOOT + bool "Support coreboot" + +endchoice + +source "board/chromebook-x86/coreboot/Kconfig" + +endmenu diff --git a/arch/x86/cpu/config.mk b/arch/x86/cpu/config.mk index 4b2c873..f7b01d3 100644 --- a/arch/x86/cpu/config.mk +++ b/arch/x86/cpu/config.mk @@ -7,7 +7,7 @@ CROSS_COMPILE ?= i386-linux- -PLATFORM_CPPFLAGS += -DCONFIG_X86 -D__I386__ -Werror +PLATFORM_CPPFLAGS += -D__I386__ -Werror # DO NOT MODIFY THE FOLLOWING UNLESS YOU REALLY KNOW WHAT YOU ARE DOING! LDPPFLAGS += -DRESET_SEG_START=0xffff0000 |