Merge branch 'master' of git://git.denx.de/u-boot-sh
authorTom Rini <trini@konsulko.com>
Mon, 27 May 2019 00:18:20 +0000 (20:18 -0400)
committerTom Rini <trini@konsulko.com>
Mon, 27 May 2019 00:18:20 +0000 (20:18 -0400)
- Gen3 PCIe driver + enablement on Salvator-X platforms.
- Gen3 recovery SPL used to reload ATF/OpTee/U-Boot instead of minimon.
- SDHI HS400 fixes ported from latest BSP and datasheet.

590 files changed:
Kconfig
MAINTAINERS
README
arch/Kconfig
arch/arm/Kconfig
arch/arm/cpu/armv7/arch_timer.c
arch/arm/cpu/armv8/Kconfig
arch/arm/cpu/armv8/fsl-layerscape/Kconfig
arch/arm/cpu/armv8/fsl-layerscape/Makefile
arch/arm/cpu/armv8/fsl-layerscape/cpu.c
arch/arm/cpu/armv8/fsl-layerscape/doc/README.soc
arch/arm/cpu/armv8/fsl-layerscape/ls1028a_serdes.c [new file with mode: 0644]
arch/arm/dts/Makefile
arch/arm/dts/fsl-ls1012a.dtsi
arch/arm/dts/fsl-ls1028a-qds.dts [new file with mode: 0644]
arch/arm/dts/fsl-ls1028a-rdb.dts [new file with mode: 0644]
arch/arm/dts/fsl-ls1028a.dtsi [new file with mode: 0644]
arch/arm/dts/fsl-ls1043a.dtsi
arch/arm/dts/fsl-ls1046a.dtsi
arch/arm/dts/fsl-ls1088a.dtsi
arch/arm/dts/fsl-lx2160a.dtsi
arch/arm/dts/ls1021a.dtsi
arch/arm/dts/socfpga_arria10_socdk_sdmmc_handoff.dtsi
arch/arm/dts/stm32mp15-ddr3-1x4Gb-1066-binG.dtsi
arch/arm/dts/stm32mp15-ddr3-2x4Gb-1066-binG.dtsi
arch/arm/include/asm/arch-fsl-layerscape/config.h
arch/arm/include/asm/arch-fsl-layerscape/cpu.h
arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
arch/arm/include/asm/arch-fsl-layerscape/soc.h
arch/arm/include/asm/arch-fsl-layerscape/stream_id_lsch3.h
arch/arm/mach-socfpga/include/mach/misc.h
arch/arm/mach-socfpga/misc.c
arch/arm/mach-socfpga/spl_a10.c
arch/arm/mach-socfpga/spl_gen5.c
arch/arm/mach-stm32mp/Kconfig
arch/arm/mach-stm32mp/bsec.c
arch/arm/mach-stm32mp/include/mach/ddr.h
arch/arm/mach-stm32mp/include/mach/stm32.h
arch/arm/mach-stm32mp/psci.c
arch/m68k/Kconfig
arch/m68k/cpu/mcf5227x/Makefile
arch/m68k/cpu/mcf5227x/cpu_init.c
arch/m68k/cpu/mcf5227x/dspi.c [new file with mode: 0644]
arch/m68k/cpu/mcf5227x/start.S
arch/m68k/cpu/mcf5445x/Makefile
arch/m68k/cpu/mcf5445x/cpu_init.c
arch/m68k/cpu/mcf5445x/dspi.c [new file with mode: 0644]
arch/m68k/cpu/mcf547x_8x/start.S
arch/m68k/cpu/u-boot.lds
arch/m68k/dts/M5208EVBE.dts [new file with mode: 0644]
arch/m68k/dts/M52277EVB.dts [new file with mode: 0644]
arch/m68k/dts/M52277EVB_stmicro.dts [new file with mode: 0644]
arch/m68k/dts/M5235EVB.dts [new file with mode: 0644]
arch/m68k/dts/M5235EVB_Flash32.dts [new file with mode: 0644]
arch/m68k/dts/M5249EVB.dts [new file with mode: 0644]
arch/m68k/dts/M5253DEMO.dts [new file with mode: 0644]
arch/m68k/dts/M5272C3.dts [new file with mode: 0644]
arch/m68k/dts/M5275EVB.dts [new file with mode: 0644]
arch/m68k/dts/M5282EVB.dts [new file with mode: 0644]
arch/m68k/dts/M53017EVB.dts [new file with mode: 0644]
arch/m68k/dts/M5329AFEE.dts [new file with mode: 0644]
arch/m68k/dts/M5329BFEE.dts [new file with mode: 0644]
arch/m68k/dts/M5373EVB.dts [new file with mode: 0644]
arch/m68k/dts/M54418TWR.dts [new file with mode: 0644]
arch/m68k/dts/M54418TWR_nand_mii.dts [new file with mode: 0644]
arch/m68k/dts/M54418TWR_nand_rmii.dts [new file with mode: 0644]
arch/m68k/dts/M54418TWR_nand_rmii_lowfreq.dts [new file with mode: 0644]
arch/m68k/dts/M54418TWR_serial_mii.dts [new file with mode: 0644]
arch/m68k/dts/M54418TWR_serial_rmii.dts [new file with mode: 0644]
arch/m68k/dts/M54451EVB.dts [new file with mode: 0644]
arch/m68k/dts/M54451EVB_stmicro.dts [new file with mode: 0644]
arch/m68k/dts/M54455EVB.dts [new file with mode: 0644]
arch/m68k/dts/M54455EVB_a66.dts [new file with mode: 0644]
arch/m68k/dts/M54455EVB_i66.dts [new file with mode: 0644]
arch/m68k/dts/M54455EVB_intel.dts [new file with mode: 0644]
arch/m68k/dts/M54455EVB_stm33.dts [new file with mode: 0644]
arch/m68k/dts/M5475AFE.dts [new file with mode: 0644]
arch/m68k/dts/M5475BFE.dts [new file with mode: 0644]
arch/m68k/dts/M5475CFE.dts [new file with mode: 0644]
arch/m68k/dts/M5475DFE.dts [new file with mode: 0644]
arch/m68k/dts/M5475EFE.dts [new file with mode: 0644]
arch/m68k/dts/M5475FFE.dts [new file with mode: 0644]
arch/m68k/dts/M5475GFE.dts [new file with mode: 0644]
arch/m68k/dts/M5485AFE.dts [new file with mode: 0644]
arch/m68k/dts/M5485BFE.dts [new file with mode: 0644]
arch/m68k/dts/M5485CFE.dts [new file with mode: 0644]
arch/m68k/dts/M5485DFE.dts [new file with mode: 0644]
arch/m68k/dts/M5485EFE.dts [new file with mode: 0644]
arch/m68k/dts/M5485FFE.dts [new file with mode: 0644]
arch/m68k/dts/M5485GFE.dts [new file with mode: 0644]
arch/m68k/dts/M5485HFE.dts [new file with mode: 0644]
arch/m68k/dts/Makefile [new file with mode: 0644]
arch/m68k/dts/amcore.dts [new file with mode: 0644]
arch/m68k/dts/astro_mcf5373l.dts [new file with mode: 0644]
arch/m68k/dts/cobra5272.dts [new file with mode: 0644]
arch/m68k/dts/eb_cpu5282.dts [new file with mode: 0644]
arch/m68k/dts/eb_cpu5282_internal.dts [new file with mode: 0644]
arch/m68k/dts/mcf5208.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf5227x.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf523x.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf5249.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf5253.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf5271.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf5272.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf5275.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf5282.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf5301x.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf5307.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf5329.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf537x.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf5441x.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf5445x.dtsi [new file with mode: 0644]
arch/m68k/dts/mcf54xx.dtsi [new file with mode: 0644]
arch/m68k/dts/stmark2.dts [new file with mode: 0644]
arch/m68k/include/asm/coldfire/dspi.h
arch/mips/Kconfig
arch/mips/mach-mtmips/cpu.c
arch/powerpc/cpu/mpc85xx/Kconfig
arch/powerpc/dts/t2080.dtsi
board/freescale/ls1028a/Kconfig [new file with mode: 0644]
board/freescale/ls1028a/MAINTAINERS [new file with mode: 0644]
board/freescale/ls1028a/Makefile [new file with mode: 0644]
board/freescale/ls1028a/README [new file with mode: 0644]
board/freescale/ls1028a/ddr.c [new file with mode: 0644]
board/freescale/ls1028a/ls1028a.c [new file with mode: 0644]
board/freescale/lx2160a/lx2160a.c
board/st/stm32mp1/board.c
common/Kconfig
common/Makefile
common/fdt_support.c
configs/B4420QDS_NAND_defconfig
configs/B4420QDS_SPIFLASH_defconfig
configs/B4420QDS_defconfig
configs/B4860QDS_NAND_defconfig
configs/B4860QDS_SECURE_BOOT_defconfig
configs/B4860QDS_SPIFLASH_defconfig
configs/B4860QDS_SRIO_PCIE_BOOT_defconfig
configs/B4860QDS_defconfig
configs/Cyrus_P5020_defconfig
configs/Cyrus_P5040_defconfig
configs/M5208EVBE_defconfig
configs/M52277EVB_defconfig
configs/M52277EVB_stmicro_defconfig
configs/M5235EVB_Flash32_defconfig
configs/M5235EVB_defconfig
configs/M5249EVB_defconfig
configs/M5253DEMO_defconfig
configs/M5272C3_defconfig
configs/M5275EVB_defconfig
configs/M5282EVB_defconfig
configs/M53017EVB_defconfig
configs/M5329AFEE_defconfig
configs/M5329BFEE_defconfig
configs/M5373EVB_defconfig
configs/M54418TWR_defconfig
configs/M54418TWR_nand_mii_defconfig
configs/M54418TWR_nand_rmii_defconfig
configs/M54418TWR_nand_rmii_lowfreq_defconfig
configs/M54418TWR_serial_mii_defconfig
configs/M54418TWR_serial_rmii_defconfig
configs/M54451EVB_defconfig
configs/M54451EVB_stmicro_defconfig
configs/M54455EVB_a66_defconfig
configs/M54455EVB_defconfig
configs/M54455EVB_i66_defconfig
configs/M54455EVB_intel_defconfig
configs/M54455EVB_stm33_defconfig
configs/M5475AFE_defconfig
configs/M5475BFE_defconfig
configs/M5475CFE_defconfig
configs/M5475DFE_defconfig
configs/M5475EFE_defconfig
configs/M5475FFE_defconfig
configs/M5475GFE_defconfig
configs/M5485AFE_defconfig
configs/M5485BFE_defconfig
configs/M5485CFE_defconfig
configs/M5485DFE_defconfig
configs/M5485EFE_defconfig
configs/M5485FFE_defconfig
configs/M5485GFE_defconfig
configs/M5485HFE_defconfig
configs/MCR3000_defconfig
configs/MPC8308RDB_defconfig
configs/MPC8313ERDB_33_defconfig
configs/MPC8313ERDB_66_defconfig
configs/MPC8313ERDB_NAND_33_defconfig
configs/MPC8313ERDB_NAND_66_defconfig
configs/MPC8315ERDB_defconfig
configs/MPC8323ERDB_defconfig
configs/MPC832XEMDS_ATM_defconfig
configs/MPC832XEMDS_HOST_33_defconfig
configs/MPC832XEMDS_HOST_66_defconfig
configs/MPC832XEMDS_SLAVE_defconfig
configs/MPC832XEMDS_defconfig
configs/MPC8349EMDS_PCI64_defconfig
configs/MPC8349EMDS_SDRAM_defconfig
configs/MPC8349EMDS_SLAVE_defconfig
configs/MPC8349EMDS_defconfig
configs/MPC8349ITXGP_defconfig
configs/MPC8349ITX_LOWBOOT_defconfig
configs/MPC8349ITX_defconfig
configs/MPC837XEMDS_HOST_defconfig
configs/MPC837XEMDS_SLAVE_defconfig
configs/MPC837XEMDS_defconfig
configs/MPC837XERDB_SLAVE_defconfig
configs/MPC837XERDB_defconfig
configs/MPC8568MDS_defconfig
configs/MPC8569MDS_ATM_defconfig
configs/MPC8569MDS_defconfig
configs/P1021RDB-PC_36BIT_NAND_defconfig
configs/P1021RDB-PC_36BIT_SDCARD_defconfig
configs/P1021RDB-PC_36BIT_SPIFLASH_defconfig
configs/P1021RDB-PC_36BIT_defconfig
configs/P1021RDB-PC_NAND_defconfig
configs/P1021RDB-PC_SDCARD_defconfig
configs/P1021RDB-PC_SPIFLASH_defconfig
configs/P1021RDB-PC_defconfig
configs/P1023RDB_defconfig
configs/P1025RDB_36BIT_defconfig
configs/P1025RDB_NAND_defconfig
configs/P1025RDB_SDCARD_defconfig
configs/P1025RDB_SPIFLASH_defconfig
configs/P1025RDB_defconfig
configs/P2041RDB_NAND_defconfig
configs/P2041RDB_SDCARD_defconfig
configs/P2041RDB_SECURE_BOOT_defconfig
configs/P2041RDB_SPIFLASH_defconfig
configs/P2041RDB_SRIO_PCIE_BOOT_defconfig
configs/P2041RDB_defconfig
configs/P3041DS_NAND_SECURE_BOOT_defconfig
configs/P3041DS_NAND_defconfig
configs/P3041DS_SDCARD_defconfig
configs/P3041DS_SECURE_BOOT_defconfig
configs/P3041DS_SPIFLASH_defconfig
configs/P3041DS_SRIO_PCIE_BOOT_defconfig
configs/P3041DS_defconfig
configs/P4080DS_SDCARD_defconfig
configs/P4080DS_SECURE_BOOT_defconfig
configs/P4080DS_SPIFLASH_defconfig
configs/P4080DS_SRIO_PCIE_BOOT_defconfig
configs/P4080DS_defconfig
configs/P5020DS_NAND_SECURE_BOOT_defconfig
configs/P5020DS_NAND_defconfig
configs/P5020DS_SDCARD_defconfig
configs/P5020DS_SECURE_BOOT_defconfig
configs/P5020DS_SPIFLASH_defconfig
configs/P5020DS_SRIO_PCIE_BOOT_defconfig
configs/P5020DS_defconfig
configs/P5040DS_NAND_SECURE_BOOT_defconfig
configs/P5040DS_NAND_defconfig
configs/P5040DS_SDCARD_defconfig
configs/P5040DS_SECURE_BOOT_defconfig
configs/P5040DS_SPIFLASH_defconfig
configs/P5040DS_defconfig
configs/T1023RDB_NAND_defconfig
configs/T1023RDB_SDCARD_defconfig
configs/T1023RDB_SECURE_BOOT_defconfig
configs/T1023RDB_SPIFLASH_defconfig
configs/T1023RDB_defconfig
configs/T1024QDS_DDR4_SECURE_BOOT_defconfig
configs/T1024QDS_DDR4_defconfig
configs/T1024QDS_NAND_defconfig
configs/T1024QDS_SDCARD_defconfig
configs/T1024QDS_SECURE_BOOT_defconfig
configs/T1024QDS_SPIFLASH_defconfig
configs/T1024QDS_defconfig
configs/T1024RDB_NAND_defconfig
configs/T1024RDB_SDCARD_defconfig
configs/T1024RDB_SECURE_BOOT_defconfig
configs/T1024RDB_SPIFLASH_defconfig
configs/T1024RDB_defconfig
configs/T1040D4RDB_NAND_defconfig
configs/T1040D4RDB_SDCARD_defconfig
configs/T1040D4RDB_SECURE_BOOT_defconfig
configs/T1040D4RDB_SPIFLASH_defconfig
configs/T1040D4RDB_defconfig
configs/T1040QDS_DDR4_defconfig
configs/T1040QDS_SECURE_BOOT_defconfig
configs/T1040QDS_defconfig
configs/T1040RDB_NAND_defconfig
configs/T1040RDB_SDCARD_defconfig
configs/T1040RDB_SECURE_BOOT_defconfig
configs/T1040RDB_SPIFLASH_defconfig
configs/T1040RDB_defconfig
configs/T1042D4RDB_NAND_defconfig
configs/T1042D4RDB_SDCARD_defconfig
configs/T1042D4RDB_SECURE_BOOT_defconfig
configs/T1042D4RDB_SPIFLASH_defconfig
configs/T1042D4RDB_defconfig
configs/T1042RDB_PI_NAND_SECURE_BOOT_defconfig
configs/T1042RDB_PI_NAND_defconfig
configs/T1042RDB_PI_SDCARD_defconfig
configs/T1042RDB_PI_SPIFLASH_defconfig
configs/T1042RDB_PI_defconfig
configs/T1042RDB_SECURE_BOOT_defconfig
configs/T1042RDB_defconfig
configs/T2080QDS_NAND_defconfig
configs/T2080QDS_SDCARD_defconfig
configs/T2080QDS_SECURE_BOOT_defconfig
configs/T2080QDS_SPIFLASH_defconfig
configs/T2080QDS_SRIO_PCIE_BOOT_defconfig
configs/T2080QDS_defconfig
configs/T2080RDB_NAND_defconfig
configs/T2080RDB_SDCARD_defconfig
configs/T2080RDB_SECURE_BOOT_defconfig
configs/T2080RDB_SPIFLASH_defconfig
configs/T2080RDB_SRIO_PCIE_BOOT_defconfig
configs/T2080RDB_defconfig
configs/T2081QDS_NAND_defconfig
configs/T2081QDS_SDCARD_defconfig
configs/T2081QDS_SPIFLASH_defconfig
configs/T2081QDS_SRIO_PCIE_BOOT_defconfig
configs/T2081QDS_defconfig
configs/T4160QDS_NAND_defconfig
configs/T4160QDS_SDCARD_defconfig
configs/T4160QDS_SECURE_BOOT_defconfig
configs/T4160QDS_defconfig
configs/T4160RDB_defconfig
configs/T4240QDS_NAND_defconfig
configs/T4240QDS_SDCARD_defconfig
configs/T4240QDS_SECURE_BOOT_defconfig
configs/T4240QDS_SRIO_PCIE_BOOT_defconfig
configs/T4240QDS_defconfig
configs/T4240RDB_SDCARD_defconfig
configs/T4240RDB_defconfig
configs/TQM834x_defconfig
configs/TWR-P1025_defconfig
configs/ae350_rv32_xip_defconfig
configs/ae350_rv64_xip_defconfig
configs/am335x_guardian_defconfig
configs/amcore_defconfig
configs/arndale_defconfig
configs/astro_mcf5373l_defconfig
configs/beelink_gs1_defconfig
configs/bitmain_antminer_s9_defconfig
configs/bk4r1_defconfig
configs/caddy2_defconfig
configs/calimain_defconfig
configs/chromebook_link64_defconfig
configs/clearfog_defconfig
configs/cobra5272_defconfig
configs/colibri_imx6_defconfig
configs/crs305-1g-4s_defconfig
configs/dh_imx6_defconfig
configs/display5_defconfig
configs/eb_cpu5282_defconfig
configs/eb_cpu5282_internal_defconfig
configs/edison_defconfig
configs/evb-px5_defconfig
configs/evb-rk3229_defconfig
configs/gardena-smart-gateway-mt7688-ram_defconfig
configs/gardena-smart-gateway-mt7688_defconfig
configs/gazerbeam_defconfig
configs/ge_bx50v3_defconfig
configs/highbank_defconfig
configs/hrcon_defconfig
configs/hrcon_dh_defconfig
configs/ids8313_defconfig
configs/imx6qdl_icore_mmc_defconfig
configs/imx8mq_evk_defconfig
configs/imx8qm_mek_defconfig
configs/imx8qxp_mek_defconfig
configs/kmcoge4_defconfig
configs/kmcoge5ne_defconfig
configs/kmeter1_defconfig
configs/kmlion1_defconfig
configs/kmopti2_defconfig
configs/kmsupx5_defconfig
configs/kmtegr1_defconfig
configs/kmtepr2_defconfig
configs/kmvect1_defconfig
configs/kylin-rk3036_defconfig
configs/linkit-smart-7688-ram_defconfig
configs/linkit-smart-7688_defconfig
configs/ls1028aqds_tfa_defconfig [new file with mode: 0644]
configs/ls1028ardb_tfa_defconfig [new file with mode: 0644]
configs/ls1043aqds_defconfig
configs/ls1043aqds_lpuart_defconfig
configs/ls1043aqds_nand_defconfig
configs/ls1043aqds_nor_ddr3_defconfig
configs/ls1043aqds_qspi_defconfig
configs/ls1043aqds_sdcard_ifc_defconfig
configs/ls1043aqds_sdcard_qspi_defconfig
configs/ls1043aqds_tfa_SECURE_BOOT_defconfig
configs/ls1043aqds_tfa_defconfig
configs/ls1043ardb_SECURE_BOOT_defconfig
configs/ls1043ardb_defconfig
configs/ls1043ardb_nand_SECURE_BOOT_defconfig
configs/ls1043ardb_nand_defconfig
configs/ls1043ardb_sdcard_SECURE_BOOT_defconfig
configs/ls1043ardb_sdcard_defconfig
configs/ls1043ardb_tfa_SECURE_BOOT_defconfig
configs/ls1043ardb_tfa_defconfig
configs/ls1046aqds_SECURE_BOOT_defconfig
configs/ls1046aqds_defconfig
configs/ls1046aqds_lpuart_defconfig
configs/ls1046aqds_nand_defconfig
configs/ls1046aqds_qspi_defconfig
configs/ls1046aqds_sdcard_ifc_defconfig
configs/ls1046aqds_sdcard_qspi_defconfig
configs/ls1046aqds_tfa_SECURE_BOOT_defconfig
configs/ls1046aqds_tfa_defconfig
configs/ls1046ardb_emmc_defconfig
configs/ls1046ardb_qspi_SECURE_BOOT_defconfig
configs/ls1046ardb_qspi_defconfig
configs/ls1046ardb_qspi_spl_defconfig
configs/ls1046ardb_sdcard_SECURE_BOOT_defconfig
configs/ls1046ardb_sdcard_defconfig
configs/ls1046ardb_tfa_SECURE_BOOT_defconfig
configs/ls1046ardb_tfa_defconfig
configs/ls1088aqds_qspi_SECURE_BOOT_defconfig
configs/ls1088aqds_qspi_defconfig
configs/ls1088aqds_sdcard_qspi_defconfig
configs/ls1088aqds_tfa_defconfig
configs/ls1088ardb_qspi_SECURE_BOOT_defconfig
configs/ls1088ardb_qspi_defconfig
configs/ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig
configs/ls1088ardb_sdcard_qspi_defconfig
configs/ls1088ardb_tfa_SECURE_BOOT_defconfig
configs/ls1088ardb_tfa_defconfig
configs/ls2080aqds_nand_defconfig
configs/ls2080aqds_qspi_defconfig
configs/ls2080aqds_sdcard_defconfig
configs/ls2080ardb_defconfig
configs/ls2088ardb_qspi_SECURE_BOOT_defconfig
configs/ls2088ardb_qspi_defconfig
configs/ls2088ardb_tfa_SECURE_BOOT_defconfig
configs/ls2088ardb_tfa_defconfig
configs/lx2160aqds_tfa_SECURE_BOOT_defconfig
configs/lx2160aqds_tfa_defconfig
configs/lx2160ardb_tfa_SECURE_BOOT_defconfig
configs/lx2160ardb_tfa_defconfig
configs/m53menlo_defconfig
configs/microblaze-generic_defconfig
configs/mpc8308_p1m_defconfig
configs/mscc_serval_defconfig
configs/mx53cx9020_defconfig
configs/mx53ppd_defconfig
configs/nanopc-t4-rk3399_defconfig
configs/nanopi-m4-rk3399_defconfig
configs/nyan-big_defconfig
configs/orangepi-rk3399_defconfig
configs/pcm052_defconfig
configs/pico-hobbit-imx7d_defconfig
configs/pico-imx7d_defconfig
configs/pico-pi-imx7d_defconfig
configs/qemu-x86_64_defconfig
configs/sandbox64_defconfig
configs/sandbox_defconfig
configs/sandbox_flattree_defconfig
configs/sandbox_noblk_defconfig
configs/sandbox_spl_defconfig
configs/sbc8349_PCI_33_defconfig
configs/sbc8349_PCI_66_defconfig
configs/sbc8349_defconfig
configs/smartweb_defconfig
configs/socfpga_arria10_defconfig
configs/socfpga_is1_defconfig
configs/socfpga_sr1500_defconfig
configs/stmark2_defconfig
configs/strider_con_defconfig
configs/strider_con_dp_defconfig
configs/strider_cpu_defconfig
configs/strider_cpu_dp_defconfig
configs/suvd3_defconfig
configs/syzygy_hub_defconfig
configs/taurus_defconfig
configs/topic_miami_defconfig
configs/topic_miamilite_defconfig
configs/topic_miamiplus_defconfig
configs/tqma6s_wru4_mmc_defconfig
configs/tuge1_defconfig
configs/tuxx1_defconfig
configs/variscite_dart6ul_defconfig
configs/ve8313_defconfig
configs/vme8349_defconfig
configs/x600_defconfig
configs/zynq_cse_nand_defconfig
configs/zynq_cse_nor_defconfig
configs/zynq_cse_qspi_defconfig
doc/device-tree-bindings/clock/st,stm32mp1.txt
doc/device-tree-bindings/memory-controllers/st,stm32mp1-ddr.txt
doc/device-tree-bindings/serial/mcf-uart.txt [new file with mode: 0644]
doc/device-tree-bindings/spi/spi-mcf-dspi.txt [new file with mode: 0644]
drivers/ata/Kconfig
drivers/ata/Makefile
drivers/ata/fsl_ahci.c [new file with mode: 0644]
drivers/ata/fsl_sata.h
drivers/ata/sata_ceva.c
drivers/clk/clk_stm32mp1.c
drivers/core/ofnode.c
drivers/core/root.c
drivers/gpio/dwapb_gpio.c
drivers/i2c/stm32f7_i2c.c
drivers/misc/Kconfig
drivers/misc/Makefile
drivers/mmc/fsl_esdhc.c
drivers/net/Kconfig
drivers/net/fm/fm.c
drivers/pci/Kconfig
drivers/pci/Makefile
drivers/pci/pcie_layerscape_gen4.c [new file with mode: 0644]
drivers/pci/pcie_layerscape_gen4.h [new file with mode: 0644]
drivers/pci/pcie_layerscape_gen4_fixup.c [new file with mode: 0644]
drivers/qe/Kconfig
drivers/ram/stm32mp1/Kconfig
drivers/ram/stm32mp1/Makefile
drivers/ram/stm32mp1/stm32mp1_ddr.c
drivers/ram/stm32mp1/stm32mp1_ddr.h
drivers/ram/stm32mp1/stm32mp1_ddr_regs.h
drivers/ram/stm32mp1/stm32mp1_interactive.c [new file with mode: 0644]
drivers/ram/stm32mp1/stm32mp1_ram.c
drivers/ram/stm32mp1/stm32mp1_tests.c [new file with mode: 0644]
drivers/ram/stm32mp1/stm32mp1_tests.h [new file with mode: 0644]
drivers/ram/stm32mp1/stm32mp1_tuning.c [new file with mode: 0644]
drivers/serial/Kconfig
drivers/serial/mcfuart.c
drivers/serial/serial_stm32.c
drivers/spi/Kconfig
drivers/spi/cf_spi.c
drivers/usb/host/ehci-fsl.c
drivers/watchdog/Kconfig
drivers/watchdog/Makefile
drivers/watchdog/sp805_wdt.c [new file with mode: 0644]
env/Kconfig
env/common.c
include/configs/B4860QDS.h
include/configs/M52277EVB.h
include/configs/M54418TWR.h
include/configs/M54451EVB.h
include/configs/M54455EVB.h
include/configs/MPC8323ERDB.h
include/configs/MPC832XEMDS.h
include/configs/MPC8568MDS.h
include/configs/MPC8569MDS.h
include/configs/P1023RDB.h
include/configs/P2041RDB.h
include/configs/T102xQDS.h
include/configs/T102xRDB.h
include/configs/T1040QDS.h
include/configs/T104xRDB.h
include/configs/T208xQDS.h
include/configs/T208xRDB.h
include/configs/T4240QDS.h
include/configs/T4240RDB.h
include/configs/corenet_ds.h
include/configs/cyrus.h
include/configs/km/km-mpc8309.h
include/configs/km/km-mpc832x.h
include/configs/km/km-mpc8360.h
include/configs/km/kmp204x-common.h
include/configs/ls1012a_common.h
include/configs/ls1012afrwy.h
include/configs/ls1012ardb.h
include/configs/ls1021aqds.h
include/configs/ls1021atwr.h
include/configs/ls1028a_common.h [new file with mode: 0644]
include/configs/ls1028aqds.h [new file with mode: 0644]
include/configs/ls1028ardb.h [new file with mode: 0644]
include/configs/ls1043a_common.h
include/configs/ls1043aqds.h
include/configs/ls1043ardb.h
include/configs/ls1046a_common.h
include/configs/ls1046aqds.h
include/configs/ls1046ardb.h
include/configs/ls1088ardb.h
include/configs/ls2080ardb.h
include/configs/lx2160a_common.h
include/configs/lx2160ardb.h
include/configs/p1_p2_rdb_pc.h
include/configs/p1_twr.h
include/configs/stm32mp1.h
include/configs/stmark2.h
include/dm/ofnode.h
include/dm/platform_data/spi_coldfire.h [new file with mode: 0644]
include/efi_loader.h
include/fdtdec.h
include/stdint.h [new file with mode: 0644]
lib/efi_loader/efi_boottime.c
lib/efi_loader/efi_runtime.c
lib/efi_loader/efi_unicode_collation.c
lib/efi_loader/efi_variable.c
lib/efi_selftest/efi_selftest_rtc.c
lib/efi_selftest/efi_selftest_variables.c
lib/fdtdec.c
lib/fdtdec_test.c
scripts/config_whitelist.txt
tools/buildman/builder.py
tools/stm32image.c

diff --git a/Kconfig b/Kconfig
index 7bdb536012de9a1a9c9deab91dbd95870cd559c3..301ebf8de3bc87e699003ef19623f610a125d976 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -147,7 +147,7 @@ config SYS_MALLOC_F_LEN
 
 config SYS_MALLOC_LEN
        hex "Define memory for Dynamic allocation"
-       depends on ARCH_ZYNQ || ARCH_VERSAL
+       depends on ARCH_ZYNQ || ARCH_VERSAL || ARCH_STM32MP
        help
          This defines memory to be allocated for Dynamic allocation
          TODO: Use for other architectures
index c41bc89fe9ce6a451bb1aafa06ebb392e65189b1..36625795a48a4769ef0c675bbfc4e7ab5ab5f6f1 100644 (file)
@@ -519,6 +519,7 @@ FREESCALE QORIQ
 M:     Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
 S:     Maintained
 T:     git git://git.denx.de/u-boot-fsl-qoriq.git
+F:     drivers/watchdog/sp805_wdt.c
 
 I2C
 M:     Heiko Schocher <hs@denx.de>
diff --git a/README b/README
index fd1e17c51375ccaf58d9c8331b4095794cc1e0b8..e2efef06301310594f28cf364e232a311bf5f700 100644 (file)
--- a/README
+++ b/README
@@ -3294,12 +3294,12 @@ within that device.
 
 - CONFIG_SYS_FMAN_FW_ADDR
        The address in the storage device where the FMAN microcode is located.  The
-       meaning of this address depends on which CONFIG_SYS_QE_FW_IN_xxx macro
+       meaning of this address depends on which CONFIG_SYS_QE_FMAN_FW_IN_xxx macro
        is also specified.
 
 - CONFIG_SYS_QE_FW_ADDR
        The address in the storage device where the QE microcode is located.  The
-       meaning of this address depends on which CONFIG_SYS_QE_FW_IN_xxx macro
+       meaning of this address depends on which CONFIG_SYS_QE_FMAN_FW_IN_xxx macro
        is also specified.
 
 - CONFIG_SYS_QE_FMAN_FW_LENGTH
index 239289b88565ec3c59f1629042702df9a7e4f6ac..e574b0d441b0b1a32e3aa7fce4bcb22ea41ca613 100644 (file)
@@ -28,6 +28,7 @@ config M68K
        select HAVE_PRIVATE_LIBGCC
        select SYS_BOOT_GET_CMDLINE
        select SYS_BOOT_GET_KBD
+       select SUPPORT_OF_CONTROL
 
 config MICROBLAZE
        bool "MicroBlaze architecture"
index 00be3d1721d0e5982cf22948a3de7ad52832c6a4..01ff57cf1bec359d89620df661a9d16c434ac55e 100644 (file)
@@ -1262,6 +1262,28 @@ config TARGET_LS1012AFRDM
          development platform that supports the QorIQ LS1012A
          Layerscape Architecture processor.
 
+config TARGET_LS1028AQDS
+       bool "Support ls1028aqds"
+       select ARCH_LS1028A
+       select ARM64
+       select ARMV8_MULTIENTRY
+       help
+         Support for Freescale LS1028AQDS platform
+         The LS1028A Development System (QDS) is a high-performance
+         development platform that supports the QorIQ LS1028A
+         Layerscape Architecture processor.
+
+config TARGET_LS1028ARDB
+       bool "Support ls1028ardb"
+       select ARCH_LS1028A
+       select ARM64
+       select ARMV8_MULTIENTRY
+       help
+         Support for Freescale LS1028ARDB platform
+         The LS1028A Development System (RDB) is a high-performance
+         development platform that supports the QorIQ LS1028A
+         Layerscape Architecture processor.
+
 config TARGET_LS1088ARDB
        bool "Support ls1088ardb"
        select ARCH_LS1088A
@@ -1466,6 +1488,7 @@ config ARCH_STM32MP
        imply CMD_DM
        imply CMD_POWEROFF
        imply ENV_VARS_UBOOT_RUNTIME_CONFIG
+       imply USE_PREBOOT
        help
          Support for STM32MP SoC family developed by STMicroelectronics,
          MPUs based on ARM cortex A core
@@ -1666,6 +1689,7 @@ source "board/freescale/ls2080a/Kconfig"
 source "board/freescale/ls2080aqds/Kconfig"
 source "board/freescale/ls2080ardb/Kconfig"
 source "board/freescale/ls1088a/Kconfig"
+source "board/freescale/ls1028a/Kconfig"
 source "board/freescale/ls1021aqds/Kconfig"
 source "board/freescale/ls1043aqds/Kconfig"
 source "board/freescale/ls1021atwr/Kconfig"
index 3db31c020952389b3fe9952bcba45802746e1453..5de63053d5934ad8c3fac1dcf27273c014e4a4eb 100644 (file)
@@ -49,6 +49,9 @@ unsigned long long get_ticks(void)
 
 ulong timer_get_boot_us(void)
 {
+       if (!gd->arch.timer_rate_hz)
+               timer_init();
+
        return lldiv(get_ticks(), gd->arch.timer_rate_hz / 1000000);
 }
 
index 7405c3a4a1c4a5688df9d0759d63d37d5ebcda9e..8a97d5b3fb163eb3f243ae35b8b37e7aeeaf0307 100644 (file)
@@ -104,6 +104,7 @@ config PSCI_RESET
                   !TARGET_LS1012ARDB && !TARGET_LS1012AFRDM && \
                   !TARGET_LS1012A2G5RDB && !TARGET_LS1012AQDS && \
                   !TARGET_LS1012AFRWY && \
+                  !TARGET_LS1028ARDB && !TARGET_LS1028AQDS && \
                   !TARGET_LS1043ARDB && !TARGET_LS1043AQDS && \
                   !TARGET_LS1046ARDB && !TARGET_LS1046AQDS && \
                   !TARGET_LS2081ARDB && !TARGET_LX2160ARDB && \
index f48481f465a56b89b33ff60e83460d549f5e0bba..a843c1eb6515809cf7182f725376337867c58937 100644 (file)
@@ -20,6 +20,40 @@ config ARCH_LS1012A
        select SYS_I2C_MXC_I2C2
        imply PANIC_HANG
 
+config ARCH_LS1028A
+       bool
+       select ARMV8_SET_SMPEN
+       select FSL_LSCH3
+       select NXP_LSCH3_2
+       select SYS_FSL_HAS_CCI400
+       select SYS_FSL_SRDS_1
+       select SYS_HAS_SERDES
+       select SYS_FSL_DDR
+       select SYS_FSL_DDR_LE
+       select SYS_FSL_DDR_VER_50
+       select SYS_FSL_HAS_DDR3
+       select SYS_FSL_HAS_DDR4
+       select SYS_FSL_HAS_SEC
+       select SYS_FSL_SEC_COMPAT_5
+       select SYS_FSL_SEC_LE
+       select FSL_TZASC_1
+       select ARCH_EARLY_INIT_R
+       select BOARD_EARLY_INIT_F
+       select SYS_I2C_MXC
+       select SYS_I2C_MXC_I2C1
+       select SYS_I2C_MXC_I2C2
+       select SYS_I2C_MXC_I2C3
+       select SYS_I2C_MXC_I2C4
+       select SYS_I2C_MXC_I2C5
+       select SYS_I2C_MXC_I2C6
+       select SYS_I2C_MXC_I2C7
+       select SYS_I2C_MXC_I2C8
+       select SYS_FSL_ERRATUM_A009007
+       select SYS_FSL_ERRATUM_A008514 if !TFABOOT
+       select SYS_FSL_ERRATUM_A009663 if !TFABOOT
+       select SYS_FSL_ERRATUM_A009942 if !TFABOOT
+       imply PANIC_HANG
+
 config ARCH_LS1043A
        bool
        select ARMV8_SET_SMPEN
@@ -242,8 +276,9 @@ config FSL_LAYERSCAPE
 
 config FSL_PCIE_COMPAT
        string "PCIe compatible of Kernel DT"
-       depends on PCIE_LAYERSCAPE
+       depends on PCIE_LAYERSCAPE || PCIE_LAYERSCAPE_GEN4
        default "fsl,ls1012a-pcie" if ARCH_LS1012A
+       default "fsl,ls1028a-pcie" if ARCH_LS1028A
        default "fsl,ls1043a-pcie" if ARCH_LS1043A
        default "fsl,ls1046a-pcie" if ARCH_LS1046A
        default "fsl,ls2080a-pcie" if ARCH_LS2080A
@@ -343,6 +378,7 @@ config SYS_FSL_ERRATUM_A010539
 
 config MAX_CPUS
        int "Maximum number of CPUs permitted for Layerscape"
+       default 2 if ARCH_LS1028A
        default 4 if ARCH_LS1043A
        default 4 if ARCH_LS1046A
        default 16 if ARCH_LS2080A
@@ -377,7 +413,7 @@ config QSPI_AHB_INIT
 config SYS_CCI400_OFFSET
        hex "Offset for CCI400 base"
        depends on SYS_FSL_HAS_CCI400
-       default 0x3090000 if ARCH_LS1088A
+       default 0x3090000 if ARCH_LS1088A || ARCH_LS1028A
        default 0x180000 if FSL_LSCH2
        help
          Offset for CCI400 base
@@ -446,6 +482,7 @@ config CLUSTER_CLK_FREQ
 
 config SYS_FSL_PCLK_DIV
        int "Platform clock divider"
+       default 1 if ARCH_LS1028A
        default 1 if ARCH_LS1043A
        default 1 if ARCH_LS1046A
        default 1 if ARCH_LS1088A
index e9bc987a9cf2c80be795598f2fc05da41de6b9a8..a8d3cf91fc8c09c5a7d1680c696f4b7c37559221 100644 (file)
@@ -48,3 +48,7 @@ endif
 ifneq ($(CONFIG_ARCH_LS1088A),)
 obj-$(CONFIG_SYS_HAS_SERDES) += ls1088a_serdes.o
 endif
+
+ifneq ($(CONFIG_ARCH_LS1028A),)
+obj-$(CONFIG_SYS_HAS_SERDES) += ls1028a_serdes.o
+endif
index 12d709e23ec1fabe9d2c823ac64f813d564158df..edb9c966581425e4e1bb798e2418e6b1670caca6 100644 (file)
@@ -58,6 +58,7 @@ static struct cpu_type cpu_type_list[] = {
        CPU_TYPE_ENTRY(LS1026A, LS1026A, 2),
        CPU_TYPE_ENTRY(LS2040A, LS2040A, 4),
        CPU_TYPE_ENTRY(LS1012A, LS1012A, 1),
+       CPU_TYPE_ENTRY(LS1028A, LS1028A, 2),
        CPU_TYPE_ENTRY(LS1088A, LS1088A, 8),
        CPU_TYPE_ENTRY(LS1084A, LS1084A, 8),
        CPU_TYPE_ENTRY(LS1048A, LS1048A, 4),
@@ -246,17 +247,33 @@ static struct mm_region final_map[] = {
          PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
          PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
        },
+#ifdef CONFIG_SYS_PCIE3_PHYS_ADDR
        { CONFIG_SYS_PCIE3_PHYS_ADDR, CONFIG_SYS_PCIE3_PHYS_ADDR,
          CONFIG_SYS_PCIE3_PHYS_SIZE,
          PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
          PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
        },
-#if defined(CONFIG_ARCH_LS2080A) || defined(CONFIG_ARCH_LX2160A)
+#endif
+#ifdef CONFIG_SYS_PCIE4_PHYS_ADDR
        { CONFIG_SYS_PCIE4_PHYS_ADDR, CONFIG_SYS_PCIE4_PHYS_ADDR,
          CONFIG_SYS_PCIE4_PHYS_SIZE,
          PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
          PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
        },
+#endif
+#ifdef SYS_PCIE5_PHYS_ADDR
+       { SYS_PCIE5_PHYS_ADDR, SYS_PCIE5_PHYS_ADDR,
+         SYS_PCIE5_PHYS_SIZE,
+         PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
+         PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
+       },
+#endif
+#ifdef SYS_PCIE6_PHYS_ADDR
+       { SYS_PCIE6_PHYS_ADDR, SYS_PCIE6_PHYS_ADDR,
+         SYS_PCIE6_PHYS_SIZE,
+         PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
+         PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
+       },
 #endif
        { CONFIG_SYS_FSL_WRIOP1_BASE, CONFIG_SYS_FSL_WRIOP1_BASE,
          CONFIG_SYS_FSL_WRIOP1_SIZE,
@@ -341,11 +358,13 @@ static struct mm_region final_map[] = {
          PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
          PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
        },
+#ifdef CONFIG_SYS_PCIE3_PHYS_ADDR
        { CONFIG_SYS_PCIE3_PHYS_ADDR, CONFIG_SYS_PCIE3_PHYS_ADDR,
          CONFIG_SYS_PCIE3_PHYS_SIZE,
          PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
          PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
        },
+#endif
        { CONFIG_SYS_FSL_DRAM_BASE3, CONFIG_SYS_FSL_DRAM_BASE3,
          CONFIG_SYS_FSL_DRAM_SIZE3,
          PTE_BLOCK_MEMTYPE(MT_NORMAL) |
@@ -448,16 +467,20 @@ static void fix_pcie_mmu_map(void)
                                final_map[i].virt = 0x2800000000ULL;
                                final_map[i].size = 0x800000000ULL;
                                break;
+#ifdef CONFIG_SYS_PCIE3_PHYS_ADDR
                        case CONFIG_SYS_PCIE3_PHYS_ADDR:
                                final_map[i].phys = 0x3000000000ULL;
                                final_map[i].virt = 0x3000000000ULL;
                                final_map[i].size = 0x800000000ULL;
                                break;
+#endif
+#ifdef CONFIG_SYS_PCIE4_PHYS_ADDR
                        case CONFIG_SYS_PCIE4_PHYS_ADDR:
                                final_map[i].phys = 0x3800000000ULL;
                                final_map[i].virt = 0x3800000000ULL;
                                final_map[i].size = 0x800000000ULL;
                                break;
+#endif
                        default:
                                break;
                        }
@@ -785,12 +808,8 @@ enum env_location env_get_location(enum env_operation op, int prio)
        if (prio)
                return ENVL_UNKNOWN;
 
-#ifdef CONFIG_CHAIN_OF_TRUST
-       /* Check Boot Mode
-        * If Boot Mode is Secure, return ENVL_NOWHERE
-        */
-       if (fsl_check_boot_mode_secure() == 1)
-               goto done;
+#ifdef CONFIG_ENV_IS_NOWHERE
+       return env_loc;
 #endif
 
        switch (src) {
@@ -820,9 +839,6 @@ enum env_location env_get_location(enum env_operation op, int prio)
                break;
        }
 
-#ifdef CONFIG_CHAIN_OF_TRUST
-done:
-#endif
        return env_loc;
 }
 #endif /* CONFIG_TFABOOT */
index a0e262169e844d52e4d3aa530b0f11688f839a2d..ad55573c85e050f1e3547df3fe484416ac054431 100644 (file)
@@ -8,6 +8,7 @@ SoC overview
        6. LS2088A
        7. LS2081A
        8. LX2160A
+       9. LS1028A
 
 LS1043A
 ---------
@@ -328,3 +329,53 @@ LX2160A SoC has 2 more similar SoC personalities
 
 2)LX2080A, few difference w.r.t. LX2160A:
        a) Eight 64-bit ARM v8 Cortex-A72 CPUs
+
+
+LS1028A
+--------
+The QorIQ LS1028A processor integrates two 64-bit Arm Cortex-A72 cores with
+a GPU and LCD controller, as well as two TSN-enabled Ethernet controllers and
+a TSNenabled 4-port switch.
+
+The high performance Cortex-A72 cores, performing above 16,000 CoreMarks,
+combined with 2.5 Gbit Ethernet, PCI express Gen 3.0, SATA 3.0, USB 3.0 and
+Octal/Quad SPI interfaces provide capabilities for a number of industrial and
+embedded applications. The device provides excellent integration with the
+new Time-Sensitive Networking standard, and enables a number of
+TSN applications.
+
+The LS1028A SoC includes the following function and features:
+ - Two 64-bit ARM v8 A72 CPUs
+ - Cache Coherent interconnect (CCI-400)
+ - One 32-bit DDR3L/DDR4 SDRAM memory controller with ECC
+ - eDP/Displayport interface
+ - Graphics processing unit
+ - One Configurable x4 SerDes
+ - Ethernet interfaces
+   - Non-switched: One Ethernet MAC supporting 2.5G, 1G, 100M, 10M, one
+   ethernet MAC supporting 1G, 100M, 10M.
+   - Switched: TSN IP to support four 2.5/1G interfaces.
+   - None of the MACs support MACSEC
+   - Support for RGMII, SGMII (and 1000Base-KX), SGMII 2.5x, QSGMII
+   - Support for 10G-SXGMII and 10G-QXGMII.
+   - Energy efficient Ethernet support (802.3az)
+   - IEEE 1588 support
+  - High-speed peripheral interfaces
+    - Two PCIe 3.0 controllers, one supporting x4 operation
+    - One serial ATA (SATA 3.0) controller
+  - Additional peripheral interfaces
+    - Two high-speed USB 2.0/3.0 controllers with integrated PHY each
+      supporting host or device modes
+    - Two Enhanced secure digital host controllers (SD/SDIO/eMMC)
+    - Two Serial peripheral interface (SPI) controllers
+    - Eight I2C controllers
+    - Two UART controllers
+    - Additional six Industrual UARTs (LPUART).
+    - One FlexSPI controller
+    - General Purpose IO (GPIO)
+    - Two CAN-FD interfaces
+    - Eight Flextimers with PWM I/O
+  - Support for hardware virtualization and partitioning enforcement
+  - Layerscape Trust Architecture
+  - Service Processor (SP) provides pre-boot initialization and secure-boot
+    capabilities
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/ls1028a_serdes.c b/arch/arm/cpu/armv8/fsl-layerscape/ls1028a_serdes.c
new file mode 100644 (file)
index 0000000..ef598c4
--- /dev/null
@@ -0,0 +1,73 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2019 NXP
+ */
+
+#include <common.h>
+#include <asm/arch/fsl_serdes.h>
+
+struct serdes_config {
+       u32 protocol;
+       u8 lanes[SRDS_MAX_LANES];
+       u8 rcw_lanes[SRDS_MAX_LANES];
+};
+
+static struct serdes_config serdes1_cfg_tbl[] = {
+       /* SerDes 1 */
+       {0xCC5B, {PCIE1, QSGMII_B, PCIE2, PCIE2} },
+       {0xEB99, {SGMII1, SGMII1, PCIE2, SATA1} },
+       {0xCC99, {SGMII1, SGMII1, PCIE2, PCIE2} },
+       {0xBB99, {SGMII1, SGMII1, PCIE2, PCIE1} },
+       {0x9999, {SGMII1, SGMII2, SGMII3, SGMII4} },
+       {0xEBCC, {PCIE1, PCIE1, PCIE2, SATA1} },
+       {0xCCCC, {PCIE1, PCIE1, PCIE2, PCIE2} },
+       {0xDDDD, {PCIE1, PCIE1, PCIE1, PCIE1} },
+       {}
+};
+
+static struct serdes_config *serdes_cfg_tbl[] = {
+       serdes1_cfg_tbl,
+};
+
+enum srds_prtcl serdes_get_prtcl(int serdes, int cfg, int lane)
+{
+       struct serdes_config *ptr;
+
+       if (serdes >= ARRAY_SIZE(serdes_cfg_tbl))
+               return 0;
+
+       ptr = serdes_cfg_tbl[serdes];
+       while (ptr->protocol) {
+               if (ptr->protocol == cfg)
+                       return ptr->lanes[lane];
+               ptr++;
+       }
+
+       return 0;
+}
+
+int is_serdes_prtcl_valid(int serdes, u32 prtcl)
+{
+       int i;
+       struct serdes_config *ptr;
+
+       if (serdes >= ARRAY_SIZE(serdes_cfg_tbl))
+               return 0;
+
+       ptr = serdes_cfg_tbl[serdes];
+       while (ptr->protocol) {
+               if (ptr->protocol == prtcl)
+                       break;
+               ptr++;
+       }
+
+       if (!ptr->protocol)
+               return 0;
+
+       for (i = 0; i < SRDS_MAX_LANES; i++) {
+               if (ptr->lanes[i] != NONE)
+                       return 1;
+       }
+
+       return 0;
+}
index 0ec7bc987d02326fe4dace0360d51ce7eb04ead6..31ef2b66a333aaa54c5e166ecd63b359e82858dc 100644 (file)
@@ -329,6 +329,8 @@ dtb-$(CONFIG_FSL_LSCH3) += fsl-ls2080a-qds.dtb \
        fsl-ls2088a-rdb-qspi.dtb \
        fsl-ls1088a-rdb.dtb \
        fsl-ls1088a-qds.dtb \
+       fsl-ls1028a-rdb.dtb \
+       fsl-ls1028a-qds.dtb \
        fsl-lx2160a-rdb.dtb \
        fsl-lx2160a-qds.dtb
 dtb-$(CONFIG_FSL_LSCH2) += fsl-ls1043a-qds-duart.dtb \
index f22cbf4b2a289e4bcf0bc0015cc17f1c5ee9327d..1125e5753b9583a281246af6c14a5604fbf89a5b 100644 (file)
 
                sata: sata@3200000 {
                        compatible = "fsl,ls1012a-ahci";
-                       reg = <0x0 0x3200000 0x0 0x10000>;
+                       reg = <0x0 0x3200000 0x0 0x10000 /* ccsr sata base */
+                              0x0 0x20140520 0x0 0x4>;  /* ecc sata addr */
+                       reg-names = "sata-base", "ecc-addr";
                        interrupts = <0 69 4>;
                        clocks = <&clockgen 4 0>;
                        status = "disabled";
diff --git a/arch/arm/dts/fsl-ls1028a-qds.dts b/arch/arm/dts/fsl-ls1028a-qds.dts
new file mode 100644 (file)
index 0000000..46a0419
--- /dev/null
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * NXP ls1028AQDS device tree source
+ *
+ * Copyright 2019 NXP
+ *
+ */
+
+/dts-v1/;
+
+#include "fsl-ls1028a.dtsi"
+
+/ {
+       model = "NXP Layerscape 1028a QDS Board";
+       compatible = "fsl,ls1028a-qds", "fsl,ls1028a";
+};
+
+&dspi0 {
+       status = "okay";
+};
+
+&dspi1 {
+       status = "okay";
+};
+
+&dspi2 {
+       status = "okay";
+};
+
+&esdhc0 {
+       status = "okay";
+};
+
+&esdhc1 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+};
+
+&i2c5 {
+       status = "okay";
+};
+
+&i2c6 {
+       status = "okay";
+};
+
+&i2c7 {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&serial0 {
+       status = "okay";
+};
+
+&serial1 {
+       status = "okay";
+};
+
+&usb1 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
diff --git a/arch/arm/dts/fsl-ls1028a-rdb.dts b/arch/arm/dts/fsl-ls1028a-rdb.dts
new file mode 100644 (file)
index 0000000..932cfa2
--- /dev/null
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * NXP ls1028ARDB device tree source
+ *
+ * Copyright 2019 NXP
+ *
+ */
+
+/dts-v1/;
+
+#include "fsl-ls1028a.dtsi"
+
+/ {
+       model = "NXP Layerscape 1028a RDB Board";
+       compatible = "fsl,ls1028a-rdb", "fsl,ls1028a";
+};
+
+&dspi0 {
+       status = "okay";
+};
+
+&dspi1 {
+       status = "okay";
+};
+
+&dspi2 {
+       status = "okay";
+};
+
+&esdhc0 {
+       status = "okay";
+};
+
+&esdhc1 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+};
+
+&i2c5 {
+       status = "okay";
+};
+
+&i2c6 {
+       status = "okay";
+};
+
+&i2c7 {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&serial0 {
+       status = "okay";
+};
+
+&serial1 {
+       status = "okay";
+};
+
+&usb1 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
diff --git a/arch/arm/dts/fsl-ls1028a.dtsi b/arch/arm/dts/fsl-ls1028a.dtsi
new file mode 100644 (file)
index 0000000..e6a443a
--- /dev/null
@@ -0,0 +1,285 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * NXP ls1028a SOC common device tree source
+ *
+ * Copyright 2019 NXP
+ *
+ */
+
+/ {
+       compatible = "fsl,ls1028a";
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       sysclk: sysclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+               clock-output-names = "sysclk";
+       };
+
+       clockgen: clocking@1300000 {
+               compatible = "fsl,ls1028a-clockgen";
+               reg = <0x0 0x1300000 0x0 0xa0000>;
+               #clock-cells = <2>;
+               clocks = <&sysclk>;
+       };
+
+       memory@01080000 {
+               device_type = "memory";
+               reg = <0x00000000 0x01080000 0 0x80000000>;
+                     /* DRAM space - 1, size : 2 GB DRAM */
+       };
+
+       gic: interrupt-controller@6000000 {
+               compatible = "arm,gic-v3";
+               reg = <0x0 0x06000000 0 0x10000>, /* GIC Dist */
+                         <0x0 0x06040000 0 0x40000>;
+               #interrupt-cells = <3>;
+               interrupt-controller;
+               interrupts = <1 9 0x4>;
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <1 13 0x8>, /* Physical Secure PPI, active-low */
+                            <1 14 0x8>, /* Physical Non-Secure PPI, active-low */
+                            <1 11 0x8>, /* Virtual PPI, active-low */
+                            <1 10 0x8>; /* Hypervisor PPI, active-low */
+       };
+
+       fspi: flexspi@20C0000 {
+               compatible = "nxp,dn-fspi";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x0 0x20C0000 0x0 0x10000>,
+                       <0x0 0x20000000 0x0 0x10000000>; /*64MB flash*/
+               reg-names = "FSPI", "FSPI-memory";
+               num-cs = <1>;
+               status = "disabled";
+       };
+
+       serial0: serial@21c0500 {
+               device_type = "serial";
+               compatible = "fsl,ns16550", "ns16550a";
+               reg = <0x0 0x21c0500 0x0 0x100>;
+               interrupts = <0 32 0x1>; /* edge triggered */
+               status = "disabled";
+       };
+
+       serial1: serial@21c0600 {
+               device_type = "serial";
+               compatible = "fsl,ns16550", "ns16550a";
+               reg = <0x0 0x21c0600 0x0 0x100>;
+               interrupts = <0 32 0x1>; /* edge triggered */
+               status = "disabled";
+       };
+
+       pcie@3400000 {
+              compatible = "fsl,ls-pcie", "fsl,ls1028-pcie", "snps,dw-pcie";
+              reg = <0x00 0x03400000 0x0 0x80000
+                      0x00 0x03480000 0x0 0x40000   /* lut registers */
+                      0x00 0x034c0000 0x0 0x40000  /* pf controls registers */
+                      0x80 0x00000000 0x0 0x20000>; /* configuration space */
+              reg-names = "dbi", "lut", "ctrl", "config";
+              #address-cells = <3>;
+              #size-cells = <2>;
+              device_type = "pci";
+              num-lanes = <4>;
+              bus-range = <0x0 0xff>;
+              ranges = <0x81000000 0x0 0x00000000 0x80 0x00020000 0x0 0x00010000   /* downstream I/O */
+                      0x82000000 0x0 0x40000000 0x80 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
+       };
+
+       pcie@3500000 {
+              compatible = "fsl,ls-pcie", "fsl,ls1028-pcie", "snps,dw-pcie";
+              reg = <0x00 0x03500000 0x0 0x80000
+                      0x00 0x03580000 0x0 0x40000   /* lut registers */
+                      0x00 0x035c0000 0x0 0x40000  /* pf controls registers */
+                      0x88 0x00000000 0x0 0x20000>; /* configuration space */
+              reg-names = "dbi", "lut", "ctrl", "config";
+              #address-cells = <3>;
+              #size-cells = <2>;
+              device_type = "pci";
+              num-lanes = <4>;
+              bus-range = <0x0 0xff>;
+              ranges = <0x81000000 0x0 0x00000000 0x88 0x00020000 0x0 0x00010000   /* downstream I/O */
+                      0x82000000 0x0 0x40000000 0x88 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
+       };
+
+       i2c0: i2c@2000000 {
+               compatible = "fsl,vf610-i2c";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x0 0x2000000 0x0 0x10000>;
+               interrupts = <0 34 0x4>;
+               clock-names = "i2c";
+               clocks = <&clockgen 4 0>;
+               status = "disabled";
+       };
+
+       i2c1: i2c@2010000 {
+               compatible = "fsl,vf610-i2c";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x0 0x2010000 0x0 0x10000>;
+               interrupts = <0 34 0x4>;
+               clock-names = "i2c";
+               clocks = <&clockgen 4 0>;
+               status = "disabled";
+       };
+
+       i2c2: i2c@2020000 {
+               compatible = "fsl,vf610-i2c";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x0 0x2020000 0x0 0x10000>;
+               interrupts = <0 35 0x4>;
+               clock-names = "i2c";
+               clocks = <&clockgen 4 0>;
+               status = "disabled";
+       };
+
+       i2c3: i2c@2030000 {
+               compatible = "fsl,vf610-i2c";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x0 0x2030000 0x0 0x10000>;
+               interrupts = <0 35 0x4>;
+               clock-names = "i2c";
+               clocks = <&clockgen 4 0>;
+               status = "disabled";
+       };
+
+       i2c4: i2c@2040000 {
+               compatible = "fsl,vf610-i2c";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x0 0x2040000 0x0 0x10000>;
+               interrupts = <0 74 0x4>;
+               clock-names = "i2c";
+               clocks = <&clockgen 4 0>;
+               status = "disabled";
+       };
+
+       i2c5: i2c@2050000 {
+               compatible = "fsl,vf610-i2c";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x0 0x2050000 0x0 0x10000>;
+               interrupts = <0 74 0x4>;
+               clock-names = "i2c";
+               clocks = <&clockgen 4 0>;
+               status = "disabled";
+       };
+
+       i2c6: i2c@2060000 {
+               compatible = "fsl,vf610-i2c";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x0 0x2060000 0x0 0x10000>;
+               interrupts = <0 75 0x4>;
+               clock-names = "i2c";
+               clocks = <&clockgen 4 0>;
+               status = "disabled";
+       };
+
+       i2c7: i2c@2070000 {
+               compatible = "fsl,vf610-i2c";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x0 0x2070000 0x0 0x10000>;
+               interrupts = <0 75 0x4>;
+               clock-names = "i2c";
+               clocks = <&clockgen 4 0>;
+               status = "disabled";
+       };
+
+       usb1: usb3@3100000 {
+               compatible = "fsl,layerscape-dwc3";
+               reg = <0x0 0x3100000 0x0 0x10000>;
+               interrupts = <0 80 0x4>;
+               dr_mode = "host";
+               status = "disabled";
+       };
+
+       usb2: usb3@3110000 {
+               compatible = "fsl,layerscape-dwc3";
+               reg = <0x0 0x3110000 0x0 0x10000>;
+               interrupts = <0 81 0x4>;
+               dr_mode = "host";
+               status = "disabled";
+       };
+
+       dspi0: dspi@2100000 {
+               compatible = "fsl,vf610-dspi";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x0 0x2100000 0x0 0x10000>;
+               interrupts = <0 26 0x4>;
+               clock-names = "dspi";
+               clocks = <&clockgen 4 0>;
+               num-cs = <5>;
+               litte-endian;
+               status = "disabled";
+       };
+
+       dspi1: dspi@2110000 {
+               compatible = "fsl,vf610-dspi";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x0 0x2110000 0x0 0x10000>;
+               interrupts = <0 26 0x4>;
+               clock-names = "dspi";
+               clocks = <&clockgen 4 0>;
+               num-cs = <5>;
+               little-endian;
+               status = "disabled";
+       };
+
+       dspi2: dspi@2120000 {
+               compatible = "fsl,vf610-dspi";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x0 0x2120000 0x0 0x10000>;
+               interrupts = <0 26 0x4>;
+               clock-names = "dspi";
+               clocks = <&clockgen 4 0>;
+               num-cs = <5>;
+               little-endian;
+               status = "disabled";
+       };
+
+       esdhc0: esdhc@2140000 {
+               compatible = "fsl,esdhc";
+               reg = <0x0 0x2140000 0x0 0x10000>;
+               interrupts = <0 28 0x4>;
+               big-endian;
+               bus-width = <4>;
+               status = "disabled";
+       };
+
+       esdhc1: esdhc@2150000 {
+               compatible = "fsl,esdhc";
+               reg = <0x0 0x2150000 0x0 0x10000>;
+               interrupts = <0 63 0x4>;
+               big-endian;
+               non-removable;
+               bus-width = <4>;
+               status = "disabled";
+       };
+
+       sata: sata@3200000 {
+               compatible = "fsl,ls1028a-ahci";
+               reg = <0x0 0x3200000 0x0 0x10000>;
+               interrupts = <0 133 4>;
+               clocks = <&clockgen 4 1>;
+               status = "disabled";
+       };
+
+       cluster1_core0_watchdog: wdt@c000000 {
+               compatible = "arm,sp805-wdt";
+               reg = <0x0 0xc000000 0x0 0x1000>;
+       };
+};
index bb70992f9e7b23ac31f507ad7936b6fa2ab4f09c..b159c3ca732e2dd2304d88f6a77cb8959f8da78f 100644 (file)
 
                sata: sata@3200000 {
                        compatible = "fsl,ls1043a-ahci";
-                       reg = <0x0 0x3200000 0x0 0x10000>;
+                       reg = <0x0 0x3200000 0x0 0x10000 /* ccsr sata base */
+                              0x0 0x20140520 0x0 0x4>;  /* ecc sata addr*/
+                       reg-names = "sata-base", "ecc-addr";
                        interrupts = <0 69 4>;
                        clocks = <&clockgen 4 0>;
                        status = "disabled";
index 5ac10e05d7e905e9d716314637a4ec26c32846bf..fdf93fd2681a04f759651ff45d452dd85622bed6 100644 (file)
 
                sata: sata@3200000 {
                        compatible = "fsl,ls1046a-ahci";
-                       reg = <0x0 0x3200000 0x0 0x10000>;
+                       reg = <0x0 0x3200000 0x0 0x10000 /* ccsr sata base */
+                              0x0 0x20140520 0x0 0x4>;  /* ecc sata addr*/
+                       reg-names = "sata-base", "ecc-addr";
                        interrupts = <0 69 4>;
                        clocks = <&clockgen 4 1>;
                        status = "disabled";
index 9455e0346650c75b57ea0fb13b4b8b357764a402..7c705858fd84105ec8f60b96ce167625a6d52155 100644 (file)
 
        sata: sata@3200000 {
                compatible = "fsl,ls1088a-ahci";
-               reg = <0x0 0x3200000 0x0 0x10000>;
+               reg = <0x0 0x3200000 0x0 0x10000 /* ccsr sata base */
+                      0x7 0x100520  0x0 0x4>;   /* ecc sata addr*/
+               reg-names = "sata-base", "ecc-addr";
                interrupts = <0 133 4>;
                status = "disabled";
        };
index 510b070582d1d654a6b2a994c063c53a4cdb7a7e..28220781d3fdde0b013e990ea5603ec74bba08c2 100644 (file)
                        status = "disabled";
 
        };
+
+       pcie@3400000 {
+               compatible = "fsl,lx2160a-pcie";
+               reg = <0x00 0x03400000 0x0 0x80000   /* PAB registers */
+                      0x00 0x03480000 0x0 0x40000   /* LUT registers */
+                      0x00 0x034c0000 0x0 0x40000   /* PF control registers */
+                      0x80 0x00000000 0x0 0x1000>; /* configuration space */
+               reg-names = "ccsr", "lut", "pf_ctrl", "config";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               device_type = "pci";
+               bus-range = <0x0 0xff>;
+               ranges = <0x82000000 0x0 0x40000000 0x80 0x40000000 0x0 0x40000000>;
+       };
+
+       pcie@3500000 {
+               compatible = "fsl,lx2160a-pcie";
+               reg = <0x00 0x03500000 0x0 0x80000   /* PAB registers */
+                      0x00 0x03580000 0x0 0x40000   /* LUT registers */
+                      0x00 0x035c0000 0x0 0x40000   /* PF control registers */
+                      0x88 0x00000000 0x0 0x1000>; /* configuration space */
+               reg-names = "ccsr", "lut", "pf_ctrl", "config";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               device_type = "pci";
+               num-lanes = <2>;
+               bus-range = <0x0 0xff>;
+               ranges = <0x82000000 0x0 0x40000000 0x88 0x40000000 0x0 0x40000000>;
+       };
+
+       pcie@3600000 {
+               compatible = "fsl,lx2160a-pcie";
+               reg = <0x00 0x03600000 0x0 0x80000   /* PAB registers */
+                      0x00 0x03680000 0x0 0x40000   /* LUT registers */
+                      0x00 0x036c0000 0x0 0x40000   /* PF control registers */
+                      0x90 0x00000000 0x0 0x1000>; /* configuration space */
+               reg-names = "ccsr", "lut", "pf_ctrl", "config";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               device_type = "pci";
+               bus-range = <0x0 0xff>;
+               ranges = <0x82000000 0x0 0x40000000 0x90 0x40000000 0x0 0x40000000>;
+       };
+
+       pcie@3700000 {
+               compatible = "fsl,lx2160a-pcie";
+               reg = <0x00 0x03700000 0x0 0x80000   /* PAB registers */
+                      0x00 0x03780000 0x0 0x40000   /* LUT registers */
+                      0x00 0x037c0000 0x0 0x40000   /* PF control registers */
+                      0x98 0x00000000 0x0 0x1000>; /* configuration space */
+               reg-names = "ccsr", "lut", "pf_ctrl", "config";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               device_type = "pci";
+               bus-range = <0x0 0xff>;
+               ranges = <0x82000000 0x0 0x40000000 0x98 0x40000000 0x0 0x40000000>;
+       };
+
+       pcie@3800000 {
+               compatible = "fsl,lx2160a-pcie";
+               reg = <0x00 0x03800000 0x0 0x80000   /* PAB registers */
+                      0x00 0x03880000 0x0 0x40000   /* LUT registers */
+                      0x00 0x038c0000 0x0 0x40000   /* PF control registers */
+                      0xa0 0x00000000 0x0 0x1000>; /* configuration space */
+               reg-names = "ccsr", "lut", "pf_ctrl", "config";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               device_type = "pci";
+               bus-range = <0x0 0xff>;
+               ranges = <0x82000000 0x0 0x40000000 0xa0 0x40000000 0x0 0x40000000>;
+       };
+
+       pcie@3900000 {
+               compatible = "fsl,lx2160a-pcie";
+               reg = <0x00 0x03900000 0x0 0x80000   /* PAB registers */
+                      0x00 0x03980000 0x0 0x40000   /* LUT registers */
+                      0x00 0x039c0000 0x0 0x40000   /* PF control registers */
+                      0xa8 0x00000000 0x0 0x1000>; /* configuration space */
+               reg-names = "ccsr", "lut", "pf_ctrl", "config";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               device_type = "pci";
+               bus-range = <0x0 0xff>;
+               ranges = <0x82000000 0x0 0x40000000 0xa8 0x40000000 0x0 0x40000000>;
+       };
 };
index 7670a39617ce38878567f43db35739225fd38de7..8a0f473e25cafc0343c736486053574b82ef9e3a 100644 (file)
 
                sata: sata@3200000 {
                        compatible = "fsl,ls1021a-ahci";
-                       reg = <0x3200000 0x10000>;
+                       reg = <0x0 0x3200000 0x0 0x10000 /* ccsr sata base */
+                              0x0 0x20220520 0x0 0x4>;  /* ecc sata addr*/
+                       reg-names = "sata-base", "ecc-addr";
                        interrupts = <0 101 4>;
                        status = "disabled";
                };
index 0446fd441e2b57a0e47f3c3e700d4ed27eac9118..60c419251bbc7cca8969ac4986d883c03d507518 100644 (file)
        #size-cells = <1>;
        model = "SOCFPGA Arria10 Dev Kit";      /* Bootloader setting: uboot.model */
 
-       chosen {
-               cff-file = "socfpga.rbf";       /* Bootloader setting: uboot.rbf_filename */
-       };
-
        /* Clock sources */
        clocks {
                #address-cells = <1>;
index 7d9b95ccf166abb997204e30f15ec0c72e9b27fa..dc30360b0a413af913d5a52354fcfd4c8001e28d 100644 (file)
@@ -16,8 +16,8 @@
  * address mapping : RBC
  * Tc > + 85C : N
  */
-#define DDR_MEM_NAME "DDR3-1066/888 bin G 1x4Gb 533MHz v1.43"
-#define DDR_MEM_SPEED 533
+#define DDR_MEM_NAME "DDR3-1066/888 bin G 1x4Gb 533MHz v1.44"
+#define DDR_MEM_SPEED 533000
 #define DDR_MEM_SIZE 0x20000000
 
 #define DDR_MSTR 0x00041401
 #define DDR_DX1DLLCR 0x40000000
 #define DDR_DX1DQTR 0xFFFFFFFF
 #define DDR_DX1DQSTR 0x3DB02000
-#define DDR_DX2GCR 0x0000CE81
+#define DDR_DX2GCR 0x0000CE80
 #define DDR_DX2DLLCR 0x40000000
 #define DDR_DX2DQTR 0xFFFFFFFF
 #define DDR_DX2DQSTR 0x3DB02000
-#define DDR_DX3GCR 0x0000CE81
+#define DDR_DX3GCR 0x0000CE80
 #define DDR_DX3DLLCR 0x40000000
 #define DDR_DX3DQTR 0xFFFFFFFF
 #define DDR_DX3DQSTR 0x3DB02000
index 8a5a821ec4e28bfd300c4ac000cc8a81ba3f8c11..8158a56f1350cd488d97563e228ecdcaa7d6ab22 100644 (file)
@@ -1,9 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
 /*
  * Copyright (C) 2018, STMicroelectronics - All Rights Reserved
- */
-
-/* STM32MP157C ED1 and ED2 BOARD configuration
+ *
+ * STM32MP157C ED1 BOARD configuration
  * 2x DDR3L 4Gb each, 16-bit, 533MHz, Single Die Package in flyby topology.
  * Reference used NT5CC256M16DP-DI from NANYA
  *
  * timing mode optimized
  * Scheduling/QoS options : type = 2
  * address mapping : RBC
+ * Tc > + 85C : N
  */
 
-#define DDR_MEM_NAME "DDR3-1066 bin G 2x4Gb 533MHz v1.36"
-#define DDR_MEM_SPEED 533
+#define DDR_MEM_NAME "DDR3-1066/888 bin G 2x4Gb 533MHz v1.44"
+#define DDR_MEM_SPEED 533000
 #define DDR_MEM_SIZE 0x40000000
 
 #define DDR_MSTR 0x00040401
@@ -62,7 +62,7 @@
 #define DDR_ADDRMAP11 0x00000000
 #define DDR_ODTCFG 0x06000600
 #define DDR_ODTMAP 0x00000001
-#define DDR_SCHED 0x00001201
+#define DDR_SCHED 0x00000C01
 #define DDR_SCHED1 0x00000000
 #define DDR_PERFHPR1 0x01000001
 #define DDR_PERFLPR1 0x08000200
 #define DDR_PCCFG 0x00000010
 #define DDR_PCFGR_0 0x00010000
 #define DDR_PCFGW_0 0x00000000
-#define DDR_PCFGQOS0_0 0x02100B03
+#define DDR_PCFGQOS0_0 0x02100C03
 #define DDR_PCFGQOS1_0 0x00800100
-#define DDR_PCFGWQOS0_0 0x01100B03
+#define DDR_PCFGWQOS0_0 0x01100C03
 #define DDR_PCFGWQOS1_0 0x01000200
 #define DDR_PCFGR_1 0x00010000
 #define DDR_PCFGW_1 0x00000000
-#define DDR_PCFGQOS0_1 0x02100B03
-#define DDR_PCFGQOS1_1 0x00800100
-#define DDR_PCFGWQOS0_1 0x01100B03
+#define DDR_PCFGQOS0_1 0x02100C03
+#define DDR_PCFGQOS1_1 0x00800040
+#define DDR_PCFGWQOS0_1 0x01100C03
 #define DDR_PCFGWQOS1_1 0x01000200
 #define DDR_PGCR 0x01442E02
 #define DDR_PTR0 0x0022AA5B
 #define DDR_MR2 0x00000208
 #define DDR_MR3 0x00000000
 #define DDR_ODTCR 0x00010000
-#define DDR_ZQ0CR1 0x0000005B
+#define DDR_ZQ0CR1 0x00000038
 #define DDR_DX0GCR 0x0000CE81
 #define DDR_DX0DLLCR 0x40000000
 #define DDR_DX0DQTR 0xFFFFFFFF
index 903d5096c71829890db36635dbf7f7275d85b5e1..eb21c09e01dcb49a84a434d062e2a1e77874def5 100644 (file)
 
 #define CONFIG_SYS_FSL_MAX_NUM_OF_SEC          1
 
+#elif defined(CONFIG_ARCH_LS1028A)
+#define CONFIG_SYS_FSL_NUM_CC_PLLS             3
+#define CONFIG_SYS_FSL_CLUSTER_CLOCKS          { 1, 1 }
+#define CONFIG_GICV3
+#define CONFIG_FSL_TZPC_BP147
+#define CONFIG_FSL_TZASC_400
+
+/* TZ Protection Controller Definitions */
+#define TZPC_BASE                              0x02200000
+#define TZPCR0SIZE_BASE                                (TZPC_BASE)
+#define TZPCDECPROT_0_STAT_BASE                        (TZPC_BASE + 0x800)
+#define TZPCDECPROT_0_SET_BASE                 (TZPC_BASE + 0x804)
+#define TZPCDECPROT_0_CLR_BASE                 (TZPC_BASE + 0x808)
+#define TZPCDECPROT_1_STAT_BASE                        (TZPC_BASE + 0x80C)
+#define TZPCDECPROT_1_SET_BASE                 (TZPC_BASE + 0x810)
+#define TZPCDECPROT_1_CLR_BASE                 (TZPC_BASE + 0x814)
+#define TZPCDECPROT_2_STAT_BASE                        (TZPC_BASE + 0x818)
+#define TZPCDECPROT_2_SET_BASE                 (TZPC_BASE + 0x81C)
+#define TZPCDECPROT_2_CLR_BASE                 (TZPC_BASE + 0x820)
+
+#define        SRDS_MAX_LANES  4
+
+#define CONFIG_SYS_FSL_OCRAM_BASE              0x18000000 /* initial RAM */
+#define SYS_FSL_OCRAM_SPACE_SIZE               0x00200000 /* 2M */
+#define CONFIG_SYS_FSL_OCRAM_SIZE              0x00040000 /* Real size 256K */
+
+/* Generic Interrupt Controller Definitions */
+#define GICD_BASE                              0x06000000
+#define GICR_BASE                              0x06040000
+
+/* SMMU Definitions */
+#define SMMU_BASE                              0x05000000 /* GR0 Base */
+
+/* DDR */
+#define CONFIG_SYS_DDR_BLOCK1_SIZE     ((phys_size_t)2 << 30)
+#define CONFIG_MAX_MEM_MAPPED          CONFIG_SYS_DDR_BLOCK1_SIZE
+
+#define CONFIG_SYS_FSL_CCSR_GUR_LE
+#define CONFIG_SYS_FSL_CCSR_SCFG_LE
+#define CONFIG_SYS_FSL_ESDHC_LE
+#define CONFIG_SYS_FSL_PEX_LUT_LE
+
+#define CONFIG_SYS_MEMAC_LITTLE_ENDIAN
+
+/* SFP */
+#define CONFIG_SYS_FSL_SFP_VER_3_4
+#define CONFIG_SYS_FSL_SFP_LE
+#define CONFIG_SYS_FSL_SRK_LE
+
+/* SEC */
+#define CONFIG_SYS_FSL_MAX_NUM_OF_SEC          1
+
+/* Security Monitor */
+#define CONFIG_SYS_FSL_SEC_MON_LE
+
+/* Secure Boot */
+#define CONFIG_ESBC_HDR_LS
+
+/* DCFG - GUR */
+#define CONFIG_SYS_FSL_CCSR_GUR_LE
+
 #elif defined(CONFIG_FSL_LSCH2)
 #define CONFIG_SYS_FSL_OCRAM_BASE              0x10000000 /* initial RAM */
 #define SYS_FSL_OCRAM_SPACE_SIZE               0x00200000 /* 2M space */
index d62754e0451d4dc5b6250fe66274492bd548b1a1..bdeb62576c7065f2f9f548f9082796d9ccf4c4c0 100644 (file)
 #define CONFIG_SYS_FSL_QBMAN_BASE      0x818000000
 #define CONFIG_SYS_FSL_QBMAN_SIZE      0x8000000
 #define CONFIG_SYS_FSL_QBMAN_SIZE_1    0x4000000
+#ifdef CONFIG_ARCH_LS2080A
 #define CONFIG_SYS_PCIE1_PHYS_SIZE     0x200000000
 #define CONFIG_SYS_PCIE2_PHYS_SIZE     0x200000000
 #define CONFIG_SYS_PCIE3_PHYS_SIZE     0x200000000
 #define CONFIG_SYS_PCIE4_PHYS_SIZE     0x200000000
+#else
+#define CONFIG_SYS_PCIE1_PHYS_SIZE     0x800000000
+#define CONFIG_SYS_PCIE2_PHYS_SIZE     0x800000000
+#define CONFIG_SYS_PCIE3_PHYS_SIZE     0x800000000
+#define CONFIG_SYS_PCIE4_PHYS_SIZE     0x800000000
+#define SYS_PCIE5_PHYS_SIZE            0x800000000
+#define SYS_PCIE6_PHYS_SIZE            0x800000000
+#endif
 #define CONFIG_SYS_FSL_WRIOP1_BASE     0x4300000000
 #define CONFIG_SYS_FSL_WRIOP1_SIZE     0x100000000
 #define CONFIG_SYS_FSL_AIOP1_BASE      0x4b00000000
index 9fab88ab2ffa1904c0bc66c946bd989dcad16f10..24c1b0e482eb48c71dcdf351d4912d8e2fdbb2d8 100644 (file)
 #define CONFIG_SYS_PCIE2_ADDR                  (CONFIG_SYS_IMMR + 0x2500000)
 #define CONFIG_SYS_PCIE3_ADDR                  (CONFIG_SYS_IMMR + 0x2600000)
 #define CONFIG_SYS_PCIE4_ADDR                  (CONFIG_SYS_IMMR + 0x2700000)
-#ifdef CONFIG_ARCH_LS1088A
+#ifdef CONFIG_ARCH_LX2160A
+#define SYS_PCIE5_ADDR                         (CONFIG_SYS_IMMR + 0x2800000)
+#define SYS_PCIE6_ADDR                         (CONFIG_SYS_IMMR + 0x2900000)
+#endif
+
+#ifdef CONFIG_ARCH_LX2160A
+#define CONFIG_SYS_PCIE1_PHYS_ADDR             0x8000000000ULL
+#define CONFIG_SYS_PCIE2_PHYS_ADDR             0x8800000000ULL
+#define CONFIG_SYS_PCIE3_PHYS_ADDR             0x9000000000ULL
+#define CONFIG_SYS_PCIE4_PHYS_ADDR             0x9800000000ULL
+#define SYS_PCIE5_PHYS_ADDR                    0xa000000000ULL
+#define SYS_PCIE6_PHYS_ADDR                    0xa800000000ULL
+#elif CONFIG_ARCH_LS1088A
 #define CONFIG_SYS_PCIE1_PHYS_ADDR             0x2000000000ULL
 #define CONFIG_SYS_PCIE2_PHYS_ADDR             0x2800000000ULL
 #define CONFIG_SYS_PCIE3_PHYS_ADDR             0x3000000000ULL
+#elif CONFIG_ARCH_LS1028A
+#define CONFIG_SYS_PCIE1_PHYS_ADDR             0x8000000000ULL
+#define CONFIG_SYS_PCIE2_PHYS_ADDR             0x8800000000ULL
 #else
 #define CONFIG_SYS_PCIE1_PHYS_ADDR             0x1000000000ULL
 #define CONFIG_SYS_PCIE2_PHYS_ADDR             0x1200000000ULL
@@ -375,6 +390,12 @@ struct ccsr_gur {
 #define FSL_CHASSIS3_SRDS2_PRTCL_SHIFT FSL_CHASSIS3_RCWSR30_SRDS2_PRTCL_SHIFT
 #define FSL_CHASSIS3_SRDS1_REGSR       29
 #define FSL_CHASSIS3_SRDS2_REGSR       30
+#elif defined(CONFIG_ARCH_LS1028A)
+#define        FSL_CHASSIS3_RCWSR29_SRDS1_PRTCL_MASK   0xFFFF0000
+#define        FSL_CHASSIS3_RCWSR29_SRDS1_PRTCL_SHIFT  16
+#define FSL_CHASSIS3_SRDS1_PRTCL_MASK  FSL_CHASSIS3_RCWSR29_SRDS1_PRTCL_MASK
+#define FSL_CHASSIS3_SRDS1_PRTCL_SHIFT FSL_CHASSIS3_RCWSR29_SRDS1_PRTCL_SHIFT
+#define FSL_CHASSIS3_SRDS1_REGSR       29
 #endif
 #define RCW_SB_EN_REG_INDEX    9
 #define RCW_SB_EN_MASK         0x00000400
index 7d95c4e2f58038d029f507663e7d893796f37daf..234440b5fec1bd51650760540d9fa1436476ee03 100644 (file)
@@ -83,6 +83,7 @@ enum boot_src get_boot_src(void);
 /* LS1043A/LS1023A 23x23 package silicon has different value of VAR_PER */
 #define SVR_LS1043A_P23                0x879202
 #define SVR_LS1023A_P23                0x87920A
+#define SVR_LS1028A            0x870B00
 #define SVR_LS1046A            0x870700
 #define SVR_LS1026A            0x870708
 #define SVR_LS1048A            0x870320
index e017d8b55895ba79328dd9281458e35a99b5900a..c53cc57e56762baf50360838780a83af6212db10 100644 (file)
@@ -87,7 +87,7 @@
 #define FSL_PEX_STREAM_ID_NUM          (0x100)
 #endif
 
-#if defined(CONFIG_ARCH_LS2080A)
+#if defined(CONFIG_ARCH_LS2080A) || defined(CONFIG_ARCH_LS1028A)
 #define FSL_PEX_STREAM_ID_END          22
 #elif defined(CONFIG_ARCH_LS1088A)
 #define FSL_PEX_STREAM_ID_END          18
index c3ca8cdf3babc4a241f14b7eec77a9d1fb3f57db..27d0b6a370862ab2a03ddb80d13dd63182069a88 100644 (file)
@@ -40,5 +40,6 @@ void socfpga_sdram_remap_zero(void);
 #endif
 
 void do_bridge_reset(int enable, unsigned int mask);
+void socfpga_pl310_clear(void);
 
 #endif /* _MISC_H_ */
index db1983dc311dd1617a11323818f802d9b5e5b284..49dadd4c3d8f6321777e3466c40c1fde382f7673 100644 (file)
@@ -70,6 +70,60 @@ void v7_outer_cache_disable(void)
        /* Disable the L2 cache */
        clrbits_le32(&pl310->pl310_ctrl, L2X0_CTRL_EN);
 }
+
+void socfpga_pl310_clear(void)
+{
+       u32 mask = 0xff, ena = 0;
+
+       icache_enable();
+
+       /* Disable the L2 cache */
+       clrbits_le32(&pl310->pl310_ctrl, L2X0_CTRL_EN);
+
+       writel(0x0, &pl310->pl310_tag_latency_ctrl);
+       writel(0x10, &pl310->pl310_data_latency_ctrl);
+
+       /* enable BRESP, instruction and data prefetch, full line of zeroes */
+       setbits_le32(&pl310->pl310_aux_ctrl,
+                    L310_AUX_CTRL_DATA_PREFETCH_MASK |
+                    L310_AUX_CTRL_INST_PREFETCH_MASK |
+                    L310_SHARED_ATT_OVERRIDE_ENABLE);
+
+       /* Enable the L2 cache */
+       ena = readl(&pl310->pl310_ctrl);
+       ena |= L2X0_CTRL_EN;
+
+       /*
+        * Invalidate the PL310 L2 cache. Keep the invalidation code
+        * entirely in L1 I-cache to avoid any bus traffic through
+        * the L2.
+        */
+       asm volatile(
+               ".align 5                       \n"
+               "       b       3f              \n"
+               "1:     str     %1,     [%4]    \n"
+               "       dsb                     \n"
+               "       isb                     \n"
+               "       str     %0,     [%2]    \n"
+               "       dsb                     \n"
+               "       isb                     \n"
+               "2:     ldr     %0,     [%2]    \n"
+               "       cmp     %0,     #0      \n"
+               "       bne     2b              \n"
+               "       str     %0,     [%3]    \n"
+               "       dsb                     \n"
+               "       isb                     \n"
+               "       b       4f              \n"
+               "3:     b       1b              \n"
+               "4:     nop                     \n"
+       : "+r"(mask), "+r"(ena)
+       : "r"(&pl310->pl310_inv_way),
+         "r"(&pl310->pl310_cache_sync), "r"(&pl310->pl310_ctrl)
+       : "memory", "cc");
+
+       /* Disable the L2 cache */
+       clrbits_le32(&pl310->pl310_ctrl, L2X0_CTRL_EN);
+}
 #endif
 
 #if defined(CONFIG_SYS_CONSOLE_IS_IN_ENV) && \
index b466307f98528ec6375bc6e3ac0cce31bcb5dc44..b820cb0673df609d5b1825bb2fe87e2e565d0607 100644 (file)
@@ -110,6 +110,7 @@ void board_init_f(ulong dummy)
 
        socfpga_init_security_policies();
        socfpga_sdram_remap_zero();
+       socfpga_pl310_clear();
 
        /* Assert reset to all except L4WD0 and L4TIMER0 */
        socfpga_per_reset_all();
index 1a60cdc89724676e26eb1b5742290ea030447f8f..87b76b47de31e7ade7a9f4d5e1f07a3731e26045 100644 (file)
@@ -5,7 +5,6 @@
 
 #include <common.h>
 #include <asm/io.h>
-#include <asm/pl310.h>
 #include <asm/u-boot.h>
 #include <asm/utils.h>
 #include <image.h>
@@ -25,8 +24,6 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-static struct pl310_regs *const pl310 =
-       (struct pl310_regs *)CONFIG_SYS_PL310_BASE;
 static const struct socfpga_system_manager *sysmgr_regs =
        (struct socfpga_system_manager *)SOCFPGA_SYSMGR_ADDRESS;
 
@@ -63,60 +60,6 @@ u32 spl_boot_mode(const u32 boot_device)
 }
 #endif
 
-static void socfpga_pl310_clear(void)
-{
-       u32 mask = 0xff, ena = 0;
-
-       icache_enable();
-
-       /* Disable the L2 cache */
-       clrbits_le32(&pl310->pl310_ctrl, L2X0_CTRL_EN);
-
-       writel(0x111, &pl310->pl310_tag_latency_ctrl);
-       writel(0x121, &pl310->pl310_data_latency_ctrl);
-
-       /* enable BRESP, instruction and data prefetch, full line of zeroes */
-       setbits_le32(&pl310->pl310_aux_ctrl,
-                    L310_AUX_CTRL_DATA_PREFETCH_MASK |
-                    L310_AUX_CTRL_INST_PREFETCH_MASK |
-                    L310_SHARED_ATT_OVERRIDE_ENABLE);
-
-       /* Enable the L2 cache */
-       ena = readl(&pl310->pl310_ctrl);
-       ena |= L2X0_CTRL_EN;
-
-       /*
-        * Invalidate the PL310 L2 cache. Keep the invalidation code
-        * entirely in L1 I-cache to avoid any bus traffic through
-        * the L2.
-        */
-       asm volatile(
-               ".align 5                       \n"
-               "       b       3f              \n"
-               "1:     str     %1,     [%4]    \n"
-               "       dsb                     \n"
-               "       isb                     \n"
-               "       str     %0,     [%2]    \n"
-               "       dsb                     \n"
-               "       isb                     \n"
-               "2:     ldr     %0,     [%2]    \n"
-               "       cmp     %0,     #0      \n"
-               "       bne     2b              \n"
-               "       str     %0,     [%3]    \n"
-               "       dsb                     \n"
-               "       isb                     \n"
-               "       b       4f              \n"
-               "3:     b       1b              \n"
-               "4:     nop                     \n"
-       : "+r"(mask), "+r"(ena)
-       : "r"(&pl310->pl310_inv_way),
-         "r"(&pl310->pl310_cache_sync), "r"(&pl310->pl310_ctrl)
-       : "memory", "cc");
-
-       /* Disable the L2 cache */
-       clrbits_le32(&pl310->pl310_ctrl, L2X0_CTRL_EN);
-}
-
 void board_init_f(ulong dummy)
 {
        const struct cm_config *cm_default_cfg = cm_get_default_config();
index 73aa382712268ddcb14477e651e7f6b31b0566d6..77f66c65c03ecbbce3c55b2df38b50b5351027b6 100644 (file)
@@ -17,12 +17,20 @@ config SPL
        select SPL_DM_RESET
        select SPL_SERIAL_SUPPORT
        select SPL_SYSCON
+       imply BOOTSTAGE_STASH if SPL_BOOTSTAGE
+       imply SPL_BOOTSTAGE if BOOTSTAGE
        imply SPL_DISPLAY_PRINT
        imply SPL_LIBDISK_SUPPORT
 
 config SYS_SOC
        default "stm32mp"
 
+config SYS_MALLOC_LEN
+       default 0x2000000
+
+config ENV_SIZE
+       default 0x1000
+
 config TARGET_STM32MP1
        bool "Support stm32mp1xx"
        select ARCH_SUPPORT_PSCI if !STM32MP1_TRUSTED
@@ -33,6 +41,10 @@ config TARGET_STM32MP1
        select STM32_RCC
        select STM32_RESET
        select SYS_ARCH_TIMER
+       imply BOOTCOUNT_LIMIT
+       imply BOOTSTAGE
+       imply CMD_BOOTCOUNT
+       imply CMD_BOOTSTAGE
        imply SYSRESET_PSCI if STM32MP1_TRUSTED
        imply SYSRESET_SYSCON if !STM32MP1_TRUSTED
        help
@@ -70,6 +82,18 @@ config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_MMC2
          Partition on the second MMC to load U-Boot from when the MMC is being
          used in raw mode
 
+config BOOTSTAGE_STASH_ADDR
+       default 0xC3000000
+
+if BOOTCOUNT_LIMIT
+config SYS_BOOTCOUNT_SINGLEWORD
+       default y
+
+# TAMP_BOOTCOUNT = TAMP_BACKUP_REGISTER(21)
+config SYS_BOOTCOUNT_ADDR
+       default 0x5C00A154
+endif
+
 if DEBUG_UART
 
 config DEBUG_UART_BOARD_INIT
index 9ed8d8c56c3c4c811eeef7b75867de1b8b7853eb..0166649685413209dea179fc8b101cc2bd15a902 100644 (file)
@@ -7,9 +7,9 @@
 #include <dm.h>
 #include <misc.h>
 #include <asm/io.h>
-#include <linux/iopoll.h>
 #include <asm/arch/stm32mp1_smc.h>
 #include <linux/arm-smccc.h>
+#include <linux/iopoll.h>
 
 #define BSEC_OTP_MAX_VALUE             95
 
index 18575842ba9a7f098f19605b4f3210c024a27ebf..b8a17cfbddb8ac1976dd5fc3950c99875b58ea1d 100644 (file)
@@ -6,6 +6,13 @@
 #ifndef __MACH_STM32MP_DDR_H_
 #define __MACH_STM32MP_DDR_H_
 
-int board_ddr_power_init(void);
+/* DDR power initializations */
+enum ddr_type {
+       STM32MP_DDR3,
+       STM32MP_LPDDR2,
+       STM32MP_LPDDR3,
+};
+
+int board_ddr_power_init(enum ddr_type ddr_type);
 
 #endif
index c526c88e3ee9caf25558c66c80d976c8bacdb37b..67953520448572814c91b22d8d80d8afe4198790 100644 (file)
@@ -88,6 +88,7 @@ enum boot_device {
 #define TAMP_BACKUP_MAGIC_NUMBER       TAMP_BACKUP_REGISTER(4)
 #define TAMP_BACKUP_BRANCH_ADDRESS     TAMP_BACKUP_REGISTER(5)
 #define TAMP_BOOT_CONTEXT              TAMP_BACKUP_REGISTER(20)
+#define TAMP_BOOTCOUNT                 TAMP_BACKUP_REGISTER(21)
 
 #define TAMP_BOOT_MODE_MASK            GENMASK(15, 8)
 #define TAMP_BOOT_MODE_SHIFT           8
index c2dff38c368c9f6c540651157212015d14519cc9..139bb09292263c5e8db9fb7e40a1d63ed607e3c5 100644 (file)
@@ -47,14 +47,14 @@ static u32 __secure stm32mp_get_gicd_base_address(void)
        return (periphbase & CBAR_MASK) + GIC_DIST_OFFSET;
 }
 
-static void __secure stm32mp_smp_kick_all_cpus(void)
+static void __secure stm32mp_raise_sgi0(int cpu)
 {
        u32 gic_dist_addr;
 
        gic_dist_addr = stm32mp_get_gicd_base_address();
 
-       /* kick all CPUs (except this one) by writing to GICD_SGIR */
-       writel(1U << 24, gic_dist_addr + GICD_SGIR);
+       /* ask cpu with SGI0 */
+       writel((BIT(cpu) << 16), gic_dist_addr + GICD_SGIR);
 }
 
 void __secure psci_arch_cpu_entry(void)
@@ -62,6 +62,9 @@ void __secure psci_arch_cpu_entry(void)
        u32 cpu = psci_get_cpu_id();
 
        psci_set_state(cpu, PSCI_AFFINITY_LEVEL_ON);
+
+       /* reset magic in TAMP register */
+       writel(0xFFFFFFFF, TAMP_BACKUP_MAGIC_NUMBER);
 }
 
 int __secure psci_features(u32 function_id, u32 psci_fid)
@@ -127,6 +130,16 @@ int __secure psci_cpu_on(u32 function_id, u32 target_cpu, u32 pc,
        if (psci_state[cpu] == PSCI_AFFINITY_LEVEL_ON)
                return ARM_PSCI_RET_ALREADY_ON;
 
+       /* reset magic in TAMP register */
+       if (readl(TAMP_BACKUP_MAGIC_NUMBER))
+               writel(0xFFFFFFFF, TAMP_BACKUP_MAGIC_NUMBER);
+       /*
+        * ROM code need a first SGI0 after core reset
+        * core is ready when magic is set to 0 in ROM code
+        */
+       while (readl(TAMP_BACKUP_MAGIC_NUMBER))
+               stm32mp_raise_sgi0(cpu);
+
        /* store target PC and context id*/
        psci_save(cpu, pc, context_id);
 
@@ -142,7 +155,8 @@ int __secure psci_cpu_on(u32 function_id, u32 target_cpu, u32 pc,
                writel(BOOT_API_A7_CORE0_MAGIC_NUMBER,
                       TAMP_BACKUP_MAGIC_NUMBER);
 
-       stm32mp_smp_kick_all_cpus();
+       /* Generate an IT to start the core */
+       stm32mp_raise_sgi0(cpu);
 
        return ARM_PSCI_RET_SUCCESS;
 }
index 1f6df5c870444efe4c73862f3a3fc7c8e436fca6..fef108105b505a083db377a431a5cd21da4eed63 100644 (file)
@@ -6,36 +6,69 @@ config SYS_ARCH
 
 # processor family
 config MCF520x
+       select OF_CONTROL
+       select DM
+        select DM_SERIAL
        bool
 
 config MCF52x2
+       select OF_CONTROL
+       select DM
+        select DM_SERIAL
        bool
 
 config MCF523x
+       select OF_CONTROL
+       select DM
+        select DM_SERIAL
        bool
 
 config MCF530x
+       select OF_CONTROL
+       select DM
+        select DM_SERIAL
        bool
 
 config MCF5301x
+       select OF_CONTROL
+       select DM
+        select DM_SERIAL
        bool
 
 config MCF532x
+       select OF_CONTROL
+       select DM
+        select DM_SERIAL
        bool
 
 config MCF537x
+       select OF_CONTROL
+       select DM
+        select DM_SERIAL
        bool
 
 config MCF5441x
+       select OF_CONTROL
+       select DM
+        select DM_SERIAL
        bool
 
 config MCF5445x
+       select OF_CONTROL
+       select DM
+        select DM_SERIAL
        bool
 
 config MCF5227x
+       select OF_CONTROL
+       select DM
+        select DM_SERIAL
        bool
 
 config MCF547x_8x
+       select OF_CONTROL
+        select DM
+        select DM_SERIAL
        bool
 
 # processor type
index ef43893c51aac7c865abbbe39a341e27106342af..6a38c4838e99de10c24041036d183f2e15fd6e19 100644 (file)
@@ -6,4 +6,4 @@
 # ccflags-y += -DET_DEBUG
 
 extra-y        = start.o
-obj-y  = cpu.o speed.o cpu_init.o interrupts.o
+obj-y  = cpu.o speed.o cpu_init.o interrupts.o dspi.o
index 0d6a484a4538ed0bcc99774be3bce58a6dee6519..3bbc42f508ceda6cdf0d62174ce08d0f214c9ea9 100644 (file)
 #include <asm/rtc.h>
 #include <linux/compiler.h>
 
+void cfspi_port_conf(void)
+{
+       gpio_t *gpio = (gpio_t *)MMAP_GPIO;
+
+       out_8(&gpio->par_dspi,
+             GPIO_PAR_DSPI_SIN_SIN | GPIO_PAR_DSPI_SOUT_SOUT |
+             GPIO_PAR_DSPI_SCK_SCK);
+}
+
 /*
  * Breath some life into the CPU...
  *
@@ -93,6 +102,8 @@ void cpu_init_f(void)
 #endif
 
        icache_enable();
+
+       cfspi_port_conf();
 }
 
 /*
@@ -137,57 +148,3 @@ void uart_port_conf(int port)
                break;
        }
 }
-
-#ifdef CONFIG_CF_DSPI
-void cfspi_port_conf(void)
-{
-       gpio_t *gpio = (gpio_t *) MMAP_GPIO;
-
-       out_8(&gpio->par_dspi,
-               GPIO_PAR_DSPI_SIN_SIN | GPIO_PAR_DSPI_SOUT_SOUT |
-               GPIO_PAR_DSPI_SCK_SCK);
-}
-
-int cfspi_claim_bus(uint bus, uint cs)
-{
-       dspi_t *dspi = (dspi_t *) MMAP_DSPI;
-       gpio_t *gpio = (gpio_t *) MMAP_GPIO;
-
-       if ((in_be32(&dspi->sr) & DSPI_SR_TXRXS) != DSPI_SR_TXRXS)
-               return -1;
-
-       /* Clear FIFO and resume transfer */
-       clrbits_be32(&dspi->mcr, DSPI_MCR_CTXF | DSPI_MCR_CRXF);
-
-       switch (cs) {
-       case 0:
-               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_UNMASK);
-               setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
-               break;
-       case 2:
-               clrbits_8(&gpio->par_timer, ~GPIO_PAR_TIMER_T2IN_UNMASK);
-               setbits_8(&gpio->par_timer, GPIO_PAR_TIMER_T2IN_DSPIPCS2);
-               break;
-       }
-
-       return 0;
-}
-
-void cfspi_release_bus(uint bus, uint cs)
-{
-       dspi_t *dspi = (dspi_t *) MMAP_DSPI;
-       gpio_t *gpio = (gpio_t *) MMAP_GPIO;
-
-       /* Clear FIFO */
-       clrbits_be32(&dspi->mcr, DSPI_MCR_CTXF | DSPI_MCR_CRXF);
-
-       switch (cs) {
-       case 0:
-               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
-               break;
-       case 2:
-               clrbits_8(&gpio->par_timer, ~GPIO_PAR_TIMER_T2IN_UNMASK);
-               break;
-       }
-}
-#endif
diff --git a/arch/m68k/cpu/mcf5227x/dspi.c b/arch/m68k/cpu/mcf5227x/dspi.c
new file mode 100644 (file)
index 0000000..8fc4da2
--- /dev/null
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2019
+ * Angelo Dureghello <angleo@sysam.it>
+ *
+ * CPU specific dspi routines
+ */
+
+#include <common.h>
+#include <asm/immap.h>
+#include <asm/io.h>
+
+#ifdef CONFIG_CF_DSPI
+void dspi_chip_select(int cs)
+{
+       struct gpio *gpio = (struct gpio *)MMAP_GPIO;
+
+       switch (cs) {
+       case 0:
+               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_UNMASK);
+               setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
+               break;
+       case 2:
+               clrbits_8(&gpio->par_timer, ~GPIO_PAR_TIMER_T2IN_UNMASK);
+               setbits_8(&gpio->par_timer, GPIO_PAR_TIMER_T2IN_DSPIPCS2);
+               break;
+       }
+}
+
+void dspi_chip_unselect(int cs)
+{
+       struct gpio *gpio = (struct gpio *)MMAP_GPIO;
+
+       switch (cs) {
+       case 0:
+               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
+               break;
+       case 2:
+               clrbits_8(&gpio->par_timer, ~GPIO_PAR_TIMER_T2IN_UNMASK);
+               break;
+       }
+}
+#endif /* CONFIG_CF_DSPI */
index e1b6c351338e9126a3828704c94e218a40ae912a..61f9c6859c5c066266dc28146131b6efc510da45 100644 (file)
@@ -378,7 +378,8 @@ _start:
        clr.l   %sp@-
 
        /* run low-level board init code (from flash) */
-       bsr     board_init_f
+       move.l  #board_init_f, %a1
+       jsr     (%a1)
 
        /* board_init_f() does not return */
 
index be2cb2a6fb5842c544c5fdd55a0b2f310c675e7d..ba90fc3c34a30e58287abbeb015048a0f6ef0f10 100644 (file)
@@ -6,4 +6,4 @@
 # ccflags-y += -DET_DEBUG
 
 extra-y        = start.o
-obj-y  = cpu.o speed.o cpu_init.o interrupts.o pci.o
+obj-y  = cpu.o speed.o cpu_init.o interrupts.o pci.o dspi.o
index 7632d9262c4ad02678498338d47457a10c1bdda4..8f4991c1cb6cd9a0556321905fa88b9f66a72bea 100644 (file)
@@ -66,6 +66,32 @@ void init_fbcs(void)
 #endif
 }
 
+#ifdef CONFIG_CF_DSPI
+void cfspi_port_conf(void)
+{
+       gpio_t *gpio = (gpio_t *)MMAP_GPIO;
+
+#ifdef CONFIG_MCF5445x
+       out_8(&gpio->par_dspi,
+             GPIO_PAR_DSPI_SIN_SIN |
+             GPIO_PAR_DSPI_SOUT_SOUT |
+             GPIO_PAR_DSPI_SCK_SCK);
+#endif
+
+#ifdef CONFIG_MCF5441x
+       pm_t *pm = (pm_t *)MMAP_PM;
+
+       out_8(&gpio->par_dspi0,
+             GPIO_PAR_DSPI0_SIN_DSPI0SIN | GPIO_PAR_DSPI0_SOUT_DSPI0SOUT |
+             GPIO_PAR_DSPI0_SCK_DSPI0SCK);
+       out_8(&gpio->srcr_dspiow, 3);
+
+       /* DSPI0 */
+       out_8(&pm->pmcr0, 23);
+#endif
+}
+#endif
+
 /*
  * Breath some life into the CPU...
  *
@@ -204,6 +230,10 @@ void cpu_init_f(void)
                GPIO_PAR_FBCTL_OE | GPIO_PAR_FBCTL_TA_TA |
                GPIO_PAR_FBCTL_RW_RW | GPIO_PAR_FBCTL_TS_TS);
 
+#ifdef CONFIG_CF_SPI
+       cfspi_port_conf();
+#endif
+
 #ifdef CONFIG_SYS_FSL_I2C
        out_be16(&gpio->par_feci2c,
                GPIO_PAR_FECI2C_SCL_SCL | GPIO_PAR_FECI2C_SDA_SDA);
@@ -433,115 +463,3 @@ int fecpin_setclear(struct eth_device *dev, int setclear)
 }
 #endif
 
-#ifdef CONFIG_CF_DSPI
-void cfspi_port_conf(void)
-{
-       gpio_t *gpio = (gpio_t *) MMAP_GPIO;
-
-#ifdef CONFIG_MCF5445x
-       out_8(&gpio->par_dspi,
-               GPIO_PAR_DSPI_SIN_SIN |
-               GPIO_PAR_DSPI_SOUT_SOUT |
-               GPIO_PAR_DSPI_SCK_SCK);
-#endif
-
-#ifdef CONFIG_MCF5441x
-       pm_t *pm = (pm_t *) MMAP_PM;
-
-       out_8(&gpio->par_dspi0,
-               GPIO_PAR_DSPI0_SIN_DSPI0SIN | GPIO_PAR_DSPI0_SOUT_DSPI0SOUT |
-               GPIO_PAR_DSPI0_SCK_DSPI0SCK);
-       out_8(&gpio->srcr_dspiow, 3);
-
-       /* DSPI0 */
-       out_8(&pm->pmcr0, 23);
-#endif
-}
-
-int cfspi_claim_bus(uint bus, uint cs)
-{
-       dspi_t *dspi = (dspi_t *) MMAP_DSPI;
-       gpio_t *gpio = (gpio_t *) MMAP_GPIO;
-
-       if ((in_be32(&dspi->sr) & DSPI_SR_TXRXS) != DSPI_SR_TXRXS)
-               return -1;
-
-       /* Clear FIFO and resume transfer */
-       clrbits_be32(&dspi->mcr, DSPI_MCR_CTXF | DSPI_MCR_CRXF);
-
-#ifdef CONFIG_MCF5445x
-       switch (cs) {
-       case 0:
-               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
-               setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
-               break;
-       case 1:
-               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS1_PCS1);
-               setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS1_PCS1);
-               break;
-       case 2:
-               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS2_PCS2);
-               setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS2_PCS2);
-               break;
-       case 3:
-               clrbits_8(&gpio->par_dma, ~GPIO_PAR_DMA_DACK0_UNMASK);
-               setbits_8(&gpio->par_dma, GPIO_PAR_DMA_DACK0_PCS3);
-               break;
-       case 5:
-               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS5_PCS5);
-               setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS5_PCS5);
-               break;
-       }
-#endif
-
-#ifdef CONFIG_MCF5441x
-       switch (cs) {
-       case 0:
-               clrbits_8(&gpio->par_dspi0, ~GPIO_PAR_DSPI0_PCS0_MASK);
-               setbits_8(&gpio->par_dspi0, GPIO_PAR_DSPI0_PCS0_DSPI0PCS0);
-               break;
-       case 1:
-               clrbits_8(&gpio->par_dspiow, GPIO_PAR_DSPIOW_DSPI0PSC1);
-               setbits_8(&gpio->par_dspiow, GPIO_PAR_DSPIOW_DSPI0PSC1);
-               break;
-       }
-#endif
-
-       return 0;
-}
-
-void cfspi_release_bus(uint bus, uint cs)
-{
-       dspi_t *dspi = (dspi_t *) MMAP_DSPI;
-       gpio_t *gpio = (gpio_t *) MMAP_GPIO;
-
-       /* Clear FIFO */
-       clrbits_be32(&dspi->mcr, DSPI_MCR_CTXF | DSPI_MCR_CRXF);
-
-#ifdef CONFIG_MCF5445x
-       switch (cs) {
-       case 0:
-               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
-               break;
-       case 1:
-               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS1_PCS1);
-               break;
-       case 2:
-               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS2_PCS2);
-               break;
-       case 3:
-               clrbits_8(&gpio->par_dma, ~GPIO_PAR_DMA_DACK0_UNMASK);
-               break;
-       case 5:
-               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS5_PCS5);
-               break;
-       }
-#endif
-
-#ifdef CONFIG_MCF5441x
-       if (cs == 1)
-               clrbits_8(&gpio->par_dspiow, GPIO_PAR_DSPIOW_DSPI0PSC1);
-#endif
-}
-
-#endif
diff --git a/arch/m68k/cpu/mcf5445x/dspi.c b/arch/m68k/cpu/mcf5445x/dspi.c
new file mode 100644 (file)
index 0000000..b0e2f2c
--- /dev/null
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2019
+ * Angelo Dureghello <angleo@sysam.it>
+ *
+ * CPU specific dspi routines
+ */
+
+#include <common.h>
+#include <asm/immap.h>
+#include <asm/io.h>
+
+#ifdef CONFIG_CF_DSPI
+void dspi_chip_select(int cs)
+{
+       struct gpio *gpio = (struct gpio *)MMAP_GPIO;
+
+#ifdef CONFIG_MCF5445x
+       switch (cs) {
+       case 0:
+               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
+               setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
+               break;
+       case 1:
+               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS1_PCS1);
+               setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS1_PCS1);
+               break;
+       case 2:
+               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS2_PCS2);
+               setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS2_PCS2);
+               break;
+       case 3:
+               clrbits_8(&gpio->par_dma, ~GPIO_PAR_DMA_DACK0_UNMASK);
+               setbits_8(&gpio->par_dma, GPIO_PAR_DMA_DACK0_PCS3);
+               break;
+       case 5:
+               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS5_PCS5);
+               setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS5_PCS5);
+               break;
+       }
+#endif
+#ifdef CONFIG_MCF5441x
+       switch (cs) {
+       case 0:
+               clrbits_8(&gpio->par_dspi0,
+                         ~GPIO_PAR_DSPI0_PCS0_MASK);
+               setbits_8(&gpio->par_dspi0,
+                         GPIO_PAR_DSPI0_PCS0_DSPI0PCS0);
+               break;
+       case 1:
+               clrbits_8(&gpio->par_dspiow,
+                         GPIO_PAR_DSPIOW_DSPI0PSC1);
+               setbits_8(&gpio->par_dspiow,
+                         GPIO_PAR_DSPIOW_DSPI0PSC1);
+               break;
+       }
+#endif
+}
+
+void dspi_chip_unselect(int cs)
+{
+       struct gpio *gpio = (struct gpio *)MMAP_GPIO;
+
+#ifdef CONFIG_MCF5445x
+       switch (cs) {
+       case 0:
+               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
+               break;
+       case 1:
+               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS1_PCS1);
+               break;
+       case 2:
+               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS2_PCS2);
+               break;
+       case 3:
+               clrbits_8(&gpio->par_dma, ~GPIO_PAR_DMA_DACK0_UNMASK);
+               break;
+       case 5:
+               clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS5_PCS5);
+               break;
+       }
+#endif
+#ifdef CONFIG_MCF5441x
+       if (cs == 1)
+               clrbits_8(&gpio->par_dspiow, GPIO_PAR_DSPIOW_DSPI0PSC1);
+#endif
+}
+#endif /* CONFIG_CF_DSPI */
index 7cb5db7ff056b0cf962df1ede017d0e1aed60aec..4dd57bf39c48977063161c5b178f393670479fc2 100644 (file)
@@ -131,7 +131,8 @@ _start:
         * then (and always) gd struct space will be reserved
         */
        move.l  %sp, -(%sp)
-       bsr     board_init_f_alloc_reserve
+       move.l  #board_init_f_alloc_reserve, %a1
+       jsr     (%a1)
 
        /* update stack and frame-pointers */
        move.l  %d0, %sp
@@ -139,7 +140,8 @@ _start:
 
        /* initialize reserved area */
        move.l  %d0, -(%sp)
-       bsr     board_init_f_init_reserve
+       move.l  #board_init_f_init_reserve, %a1
+       jsr     (%a1)
 
        /* run low-level CPU init code (from flash) */
        jbsr    cpu_init_f
index 96451208e520284733ccd3a441f059c7f9bab171..64cf2ff5ef97367a9fa043a5fd02631f576e868f 100644 (file)
@@ -68,13 +68,15 @@ SECTIONS
        __ex_table : { *(__ex_table) }
        __stop___ex_table = .;
 
-       . = ALIGN(256);
+       . = ALIGN(4);
        __init_begin = .;
        .text.init : { *(.text.init) }
        .data.init : { *(.data.init) }
-       . = ALIGN(256);
+       . = ALIGN(4);
        __init_end = .;
 
+       _end = .;
+
        __bss_start = .;
        .bss (NOLOAD)       :
        {
diff --git a/arch/m68k/dts/M5208EVBE.dts b/arch/m68k/dts/M5208EVBE.dts
new file mode 100644 (file)
index 0000000..e78513f
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5208.dtsi"
+
+/ {
+       model = "Freescale M5208EVBE";
+       compatible = "fsl,M5208EVBE";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M52277EVB.dts b/arch/m68k/dts/M52277EVB.dts
new file mode 100644 (file)
index 0000000..a2210c8
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5227x.dtsi"
+
+/ {
+       model = "Freescale M52277EVB";
+       compatible = "fsl,M52277EVB";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M52277EVB_stmicro.dts b/arch/m68k/dts/M52277EVB_stmicro.dts
new file mode 100644 (file)
index 0000000..5fd3ca5
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5227x.dtsi"
+
+/ {
+       model = "Freescale M52277_stmicro";
+       compatible = "fsl,M52277_stmicro";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M5235EVB.dts b/arch/m68k/dts/M5235EVB.dts
new file mode 100644 (file)
index 0000000..1a32539
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf523x.dtsi"
+
+/ {
+       model = "Freescale M5235EVB";
+       compatible = "fsl,M5235EVB";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M5235EVB_Flash32.dts b/arch/m68k/dts/M5235EVB_Flash32.dts
new file mode 100644 (file)
index 0000000..fcbffb2
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf523x.dtsi"
+
+/ {
+       model = "Freescale M5235EVB_Flash32";
+       compatible = "fsl,M5235EVB_Flash32";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M5249EVB.dts b/arch/m68k/dts/M5249EVB.dts
new file mode 100644 (file)
index 0000000..b2a1be9
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5249.dtsi"
+
+/ {
+       model = "Freescale M5249EVB";
+       compatible = "fsl,M5249EVB";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M5253DEMO.dts b/arch/m68k/dts/M5253DEMO.dts
new file mode 100644 (file)
index 0000000..7ebaa9a
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5253.dtsi"
+
+/ {
+       model = "Freescale M5253DEMO";
+       compatible = "fsl,M5253DEMO";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M5272C3.dts b/arch/m68k/dts/M5272C3.dts
new file mode 100644 (file)
index 0000000..6efb8a4
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5272.dtsi"
+
+/ {
+       model = "Freescale M5272C3";
+       compatible = "fsl,M5272C3";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M5275EVB.dts b/arch/m68k/dts/M5275EVB.dts
new file mode 100644 (file)
index 0000000..cd9eb7d
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5275.dtsi"
+
+/ {
+       model = "Freescale M5275EVB";
+       compatible = "fsl,M5275EVB";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M5282EVB.dts b/arch/m68k/dts/M5282EVB.dts
new file mode 100644 (file)
index 0000000..9527caa
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5282.dtsi"
+
+/ {
+       model = "Freescale M5282EVB";
+       compatible = "fsl,M5282EVB";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M53017EVB.dts b/arch/m68k/dts/M53017EVB.dts
new file mode 100644 (file)
index 0000000..b267488
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5301x.dtsi"
+
+/ {
+       model = "Freescale M53017EVB";
+       compatible = "fsl,M53017EVB";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M5329AFEE.dts b/arch/m68k/dts/M5329AFEE.dts
new file mode 100644 (file)
index 0000000..7d121d6
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5329.dtsi"
+
+/ {
+       model = "Freescale M5329AFEE";
+       compatible = "fsl,M5329AFEE";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M5329BFEE.dts b/arch/m68k/dts/M5329BFEE.dts
new file mode 100644 (file)
index 0000000..cd087b6
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5329.dtsi"
+
+/ {
+       model = "Freescale M5329BFEE";
+       compatible = "fsl,M5329BFEE";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M5373EVB.dts b/arch/m68k/dts/M5373EVB.dts
new file mode 100644 (file)
index 0000000..930f911
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf537x.dtsi"
+
+/ {
+       model = "Freescale M5373EVB";
+       compatible = "fsl,M5373EVB";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M54418TWR.dts b/arch/m68k/dts/M54418TWR.dts
new file mode 100644 (file)
index 0000000..7765c7a
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5441x.dtsi"
+
+/ {
+       model = "Freescale M54418TWR";
+       compatible = "fsl,M54418TWR";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M54418TWR_nand_mii.dts b/arch/m68k/dts/M54418TWR_nand_mii.dts
new file mode 100644 (file)
index 0000000..9b1cb85
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5441x.dtsi"
+
+/ {
+       model = "Freescale M54418TWR_nand_mii";
+       compatible = "fsl,M54418TWR_nand_mii";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M54418TWR_nand_rmii.dts b/arch/m68k/dts/M54418TWR_nand_rmii.dts
new file mode 100644 (file)
index 0000000..824a66a
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5441x.dtsi"
+
+/ {
+       model = "Freescale M54418TWR_nand_rmii";
+       compatible = "fsl,M54418TWR_nand_rmii";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M54418TWR_nand_rmii_lowfreq.dts b/arch/m68k/dts/M54418TWR_nand_rmii_lowfreq.dts
new file mode 100644 (file)
index 0000000..74fa197
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5441x.dtsi"
+
+/ {
+       model = "Freescale M54418TWR_nand_rmii_lowfreq";
+       compatible = "fsl,M54418TWR_nand_rmii_lowfreq";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M54418TWR_serial_mii.dts b/arch/m68k/dts/M54418TWR_serial_mii.dts
new file mode 100644 (file)
index 0000000..22f27b5
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5441x.dtsi"
+
+/ {
+       model = "Freescale M54418TWR_serial_mii";
+       compatible = "fsl,M54418TWR_serial_mii";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M54418TWR_serial_rmii.dts b/arch/m68k/dts/M54418TWR_serial_rmii.dts
new file mode 100644 (file)
index 0000000..0ddefd9
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5441x.dtsi"
+
+/ {
+       model = "Freescale M54418TWR_serial_rmii";
+       compatible = "fsl,M54418TWR_serial_rmii";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M54451EVB.dts b/arch/m68k/dts/M54451EVB.dts
new file mode 100644 (file)
index 0000000..b57bfea
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5445x.dtsi"
+
+/ {
+       model = "Freescale M54451EVB";
+       compatible = "fsl,M54451EVB";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M54451EVB_stmicro.dts b/arch/m68k/dts/M54451EVB_stmicro.dts
new file mode 100644 (file)
index 0000000..9a088e1
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5445x.dtsi"
+
+/ {
+       model = "Freescale M54451EVB_stmicro";
+       compatible = "fsl,M54451EVB";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M54455EVB.dts b/arch/m68k/dts/M54455EVB.dts
new file mode 100644 (file)
index 0000000..dd11181
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5445x.dtsi"
+
+/ {
+       model = "Freescale M54455EVB";
+       compatible = "fsl,M54455EVB";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M54455EVB_a66.dts b/arch/m68k/dts/M54455EVB_a66.dts
new file mode 100644 (file)
index 0000000..70d544b
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5445x.dtsi"
+
+/ {
+       model = "Freescale M54455EVB_a66";
+       compatible = "fsl,M54455EVB_a66";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M54455EVB_i66.dts b/arch/m68k/dts/M54455EVB_i66.dts
new file mode 100644 (file)
index 0000000..b37a872
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5445x.dtsi"
+
+/ {
+       model = "Freescale M54455EVB_i66";
+       compatible = "fsl,M54455EVB_i66";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M54455EVB_intel.dts b/arch/m68k/dts/M54455EVB_intel.dts
new file mode 100644 (file)
index 0000000..c92228f
--- /dev/null
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5445x.dtsi"
+
+/ {
+       model = "Freescale M54455EVB_intel";
+       compatible = "fsl,M5275EVB_intel";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/M54455EVB_stm33.dts b/arch/m68k/dts/M54455EVB_stm33.dts
new file mode 100644 (file)
index 0000000..9e467f9
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5445x.dtsi"
+
+/ {
+       model = "Freescale M54455EVB_stm33";
+       compatible = "fsl,M5275EVB_stm33";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       status = "okay";
+};
diff --git a/arch/m68k/dts/M5475AFE.dts b/arch/m68k/dts/M5475AFE.dts
new file mode 100644 (file)
index 0000000..0c0a79b
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5475AFE";
+       compatible = "fsl,M5475AFE";
+};
+
diff --git a/arch/m68k/dts/M5475BFE.dts b/arch/m68k/dts/M5475BFE.dts
new file mode 100644 (file)
index 0000000..c4d1409
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5475BFE";
+       compatible = "fsl,M5475BFE";
+};
+
diff --git a/arch/m68k/dts/M5475CFE.dts b/arch/m68k/dts/M5475CFE.dts
new file mode 100644 (file)
index 0000000..4c92c33
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5475CFE";
+       compatible = "fsl,M5475CFE";
+};
+
diff --git a/arch/m68k/dts/M5475DFE.dts b/arch/m68k/dts/M5475DFE.dts
new file mode 100644 (file)
index 0000000..c41c1b3
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5475DFE";
+       compatible = "fsl,M5475DFE";
+};
+
diff --git a/arch/m68k/dts/M5475EFE.dts b/arch/m68k/dts/M5475EFE.dts
new file mode 100644 (file)
index 0000000..5a920b2
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5475EFE";
+       compatible = "fsl,M5475EFE";
+};
+
diff --git a/arch/m68k/dts/M5475FFE.dts b/arch/m68k/dts/M5475FFE.dts
new file mode 100644 (file)
index 0000000..d312a6a
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5475FFE";
+       compatible = "fsl,M5475FFE";
+};
+
diff --git a/arch/m68k/dts/M5475GFE.dts b/arch/m68k/dts/M5475GFE.dts
new file mode 100644 (file)
index 0000000..9e794da
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5475GFE";
+       compatible = "fsl,M5475GFE";
+};
+
diff --git a/arch/m68k/dts/M5485AFE.dts b/arch/m68k/dts/M5485AFE.dts
new file mode 100644 (file)
index 0000000..3466751
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5485AFE";
+       compatible = "fsl,M5485AFE";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
diff --git a/arch/m68k/dts/M5485BFE.dts b/arch/m68k/dts/M5485BFE.dts
new file mode 100644 (file)
index 0000000..6d48795
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5485BFE";
+       compatible = "fsl,M5485BFE";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
diff --git a/arch/m68k/dts/M5485CFE.dts b/arch/m68k/dts/M5485CFE.dts
new file mode 100644 (file)
index 0000000..d1a7d9d
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5485CFE";
+       compatible = "fsl,M5485CFE";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
diff --git a/arch/m68k/dts/M5485DFE.dts b/arch/m68k/dts/M5485DFE.dts
new file mode 100644 (file)
index 0000000..7c362e2
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5485DFE";
+       compatible = "fsl,M5485DFE";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
diff --git a/arch/m68k/dts/M5485EFE.dts b/arch/m68k/dts/M5485EFE.dts
new file mode 100644 (file)
index 0000000..4c688dc
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5485EFE";
+       compatible = "fsl,M5485EFE";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
diff --git a/arch/m68k/dts/M5485FFE.dts b/arch/m68k/dts/M5485FFE.dts
new file mode 100644 (file)
index 0000000..87ec2c5
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5485FFE";
+       compatible = "fsl,M5485FFE";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
diff --git a/arch/m68k/dts/M5485GFE.dts b/arch/m68k/dts/M5485GFE.dts
new file mode 100644 (file)
index 0000000..9f67e55
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5485GFE";
+       compatible = "fsl,M5485GFE";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
diff --git a/arch/m68k/dts/M5485HFE.dts b/arch/m68k/dts/M5485HFE.dts
new file mode 100644 (file)
index 0000000..2eb2213
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf54xx.dtsi"
+
+/ {
+       model = "Freescale M5485HFE";
+       compatible = "fsl,M5485HFE";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
diff --git a/arch/m68k/dts/Makefile b/arch/m68k/dts/Makefile
new file mode 100644 (file)
index 0000000..e059f23
--- /dev/null
@@ -0,0 +1,59 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+dtb-$(CONFIG_TARGET_M52277EVB) += M52277EVB.dtb \
+       M52277EVB_stmicro.dtb
+dtb-$(CONFIG_TARGET_M5235EVB) += M5235EVB.dtb \
+       M5235EVB_Flash32.dtb
+dtb-$(CONFIG_TARGET_COBRA5272) += cobra5272.dtb
+dtb-$(CONFIG_TARGET_EB_CPU5282) += eb_cpu5282.dtb \
+       eb_cpu5282_internal.dtb
+dtb-$(CONFIG_TARGET_M5208EVBE) += M5208EVBE.dtb
+dtb-$(CONFIG_TARGET_M5249EVB) += M5249EVB.dtb
+dtb-$(CONFIG_TARGET_M5253DEMO) += M5253DEMO.dtb
+dtb-$(CONFIG_TARGET_M5272C3) += M5272C3.dtb
+dtb-$(CONFIG_TARGET_M5275EVB) += M5275EVB.dtb
+dtb-$(CONFIG_TARGET_M5282EVB) += M5282EVB.dtb
+dtb-$(CONFIG_TARGET_ASTRO_MCF5373L) += astro_mcf5373l.dtb
+dtb-$(CONFIG_TARGET_M53017EVB) += M53017EVB.dtb
+dtb-$(CONFIG_TARGET_M5329EVB) += M5329AFEE.dtb M5329BFEE.dtb
+dtb-$(CONFIG_TARGET_M5373EVB) += M5373EVB.dtb
+dtb-$(CONFIG_TARGET_M54418TWR) += M54418TWR.dtb \
+       M54418TWR_nand_mii.dtb \
+       M54418TWR_nand_rmii.dtb \
+       M54418TWR_serial_mii.dtb \
+       M54418TWR_serial_rmii.dtb \
+       M54418TWR_nand_rmii_lowfreq.dtb
+dtb-$(CONFIG_TARGET_M54451EVB) += M54451EVB.dtb \
+       M54451EVB_stmicro.dtb
+dtb-$(CONFIG_TARGET_M54455EVB) += M54455EVB.dtb \
+       M54455EVB_intel.dtb \
+       M54455EVB_stm33.dtb \
+       M54455EVB_a66.dtb \
+       M54455EVB_i66.dtb
+dtb-$(CONFIG_TARGET_AMCORE) += amcore.dtb
+dtb-$(CONFIG_TARGET_STMARK2) += stmark2.dtb
+dtb-$(CONFIG_TARGET_M5475EVB) += M5475AFE.dtb \
+       M5475BFE.dtb \
+       M5475CFE.dtb \
+       M5475DFE.dtb \
+       M5475EFE.dtb \
+       M5475FFE.dtb \
+       M5475GFE.dtb
+dtb-$(CONFIG_TARGET_M5485EVB) += M5485AFE.dtb \
+       M5485BFE.dtb \
+       M5485CFE.dtb \
+       M5485DFE.dtb \
+       M5485EFE.dtb \
+       M5485FFE.dtb \
+       M5485GFE.dtb \
+       M5485HFE.dtb
+
+targets += $(dtb-y)
+
+DTC_FLAGS += -R 4 -p 0x1000
+
+PHONY += dtbs
+dtbs: $(addprefix $(obj)/, $(dtb-y))
+       @:
+
+clean-files := *.dtb
diff --git a/arch/m68k/dts/amcore.dts b/arch/m68k/dts/amcore.dts
new file mode 100644 (file)
index 0000000..c21fb8f
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5307.dtsi"
+
+/ {
+       model = "Sysam AMCORE";
+       compatible = "sysam,AMCORE";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/astro_mcf5373l.dts b/arch/m68k/dts/astro_mcf5373l.dts
new file mode 100644 (file)
index 0000000..1b1a46a
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf537x.dtsi"
+
+/ {
+       model = "Astro mcf5373l";
+       compatible = "astro,mcf5373l";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/cobra5272.dts b/arch/m68k/dts/cobra5272.dts
new file mode 100644 (file)
index 0000000..f3b7497
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5272.dtsi"
+
+/ {
+       model = "Cobra 5272";
+       compatible = "cobra,M5272";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/eb_cpu5282.dts b/arch/m68k/dts/eb_cpu5282.dts
new file mode 100644 (file)
index 0000000..4641e9c
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5282.dtsi"
+
+/ {
+       model = "BuS eb_cpuM5282";
+       compatible = "bus,eb_cpuM5282";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/eb_cpu5282_internal.dts b/arch/m68k/dts/eb_cpu5282_internal.dts
new file mode 100644 (file)
index 0000000..0acb793
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5282.dtsi"
+
+/ {
+       model = "BuS eb_cpu5282_internals";
+       compatible = "bus,eb_cpu5282_internals";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
diff --git a/arch/m68k/dts/mcf5208.dtsi b/arch/m68k/dts/mcf5208.dtsi
new file mode 100644 (file)
index 0000000..558d8bf
--- /dev/null
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5208";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               uart0: uart@fc060000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc060000 0x40>;
+                       status = "disabled";
+               };
+
+               uart1: uart@fc064000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc064000 0x40>;
+                       status = "disabled";
+               };
+
+               uart2: uart@fc068000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc068000 0x40>;
+                       status = "disabled";
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf5227x.dtsi b/arch/m68k/dts/mcf5227x.dtsi
new file mode 100644 (file)
index 0000000..8c95edd
--- /dev/null
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5227x";
+
+       aliases {
+               serial0 = &uart0;
+               spi0 = &dspi0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               uart0: uart@fc060000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc060000 0x40>;
+                       status = "disabled";
+               };
+
+               uart1: uart@fc064000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc064000 0x40>;
+                       status = "disabled";
+               };
+
+               uart2: uart@fc068000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc068000 0x40>;
+                       status = "disabled";
+               };
+
+               dspi0: dspi@fc05c000 {
+                       compatible = "fsl,mcf-dspi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xfc05c000 0x100>;
+                       spi-max-frequency = <50000000>;
+                       num-cs = <4>;
+                       spi-mode = <0>;
+                       status = "disabled";
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf523x.dtsi b/arch/m68k/dts/mcf523x.dtsi
new file mode 100644 (file)
index 0000000..9e79d47
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf523x";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               ipsbar: ipsbar@4000000 {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x00000000 0x40000000 0x40000000>;
+                       reg = <0x40000000 0x40000000>;
+
+                       uart0: uart@200 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x200 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart1: uart@240 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x240 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart2: uart@280 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x280 0x40>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf5249.dtsi b/arch/m68k/dts/mcf5249.dtsi
new file mode 100644 (file)
index 0000000..248b3dc
--- /dev/null
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5249";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               mbar: mbar@10000000 {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x00000000 0x10000000 0x10000>;
+                       reg = <0x10000000 0x10000>;
+
+                       uart0: uart@1c0 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x1c0 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart1: uart@200 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x200 0x40>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf5253.dtsi b/arch/m68k/dts/mcf5253.dtsi
new file mode 100644 (file)
index 0000000..3bde2d6
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5253";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               mbar: mbar@10000000 {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x00000000 0x10000000 0x10000>;
+                       reg = <0x10000000 0x10000>;
+
+                       uart0: uart@1c0 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x1c0 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart1: uart@200 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x200 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart3: uart@c00 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0xc00 0x40>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf5271.dtsi b/arch/m68k/dts/mcf5271.dtsi
new file mode 100644 (file)
index 0000000..2935552
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5271";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               ipsbar: ipsbar@4000000 {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x00000000 0x40000000 0x40000000>;
+                       reg = <0x40000000 0x40000000>;
+
+                       uart0: uart@200 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x200 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart1: uart@240 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x240 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart2: uart@280 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x280 0x40>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf5272.dtsi b/arch/m68k/dts/mcf5272.dtsi
new file mode 100644 (file)
index 0000000..a561177
--- /dev/null
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5272";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               mbar: mbar@10000000 {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x00000000 0x10000000 0x10000>;
+                       reg = <0x10000000 0x10000>;
+
+                       uart0: uart@100 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x100 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart1: uart@140 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x140 0x40>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf5275.dtsi b/arch/m68k/dts/mcf5275.dtsi
new file mode 100644 (file)
index 0000000..b375609
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5275";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               ipsbar: ipsbar@4000000 {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x00000000 0x40000000 0x40000000>;
+                       reg = <0x40000000 0x40000000>;
+
+                       uart0: uart@200 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x200 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart1: uart@240 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x240 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart2: uart@280 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x280 0x40>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf5282.dtsi b/arch/m68k/dts/mcf5282.dtsi
new file mode 100644 (file)
index 0000000..3ad1be7
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5282";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               ipsbar: ipsbar@4000000 {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x00000000 0x40000000 0x40000000>;
+                       reg = <0x40000000 0x40000000>;
+
+                       uart0: uart@200 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x200 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart1: uart@240 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x240 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart2: uart@280 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x280 0x40>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf5301x.dtsi b/arch/m68k/dts/mcf5301x.dtsi
new file mode 100644 (file)
index 0000000..0891e4d
--- /dev/null
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5301x";
+
+       aliases {
+               serial0 = &uart0;
+               spi0 = &dspi0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               uart0: uart@fc060000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc060000 0x40>;
+                       status = "disabled";
+               };
+
+               uart1: uart@fc064000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc064000 0x40>;
+                       status = "disabled";
+               };
+
+               uart2: uart@fc068000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc068000 0x40>;
+                       status = "disabled";
+               };
+
+               dspi0: dspi@fc05c000 {
+                       compatible = "fsl,mcf-dspi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xfc05c000 0x100>;
+                       spi-max-frequency = <50000000>;
+                       num-cs = <4>;
+                       spi-mode = <0>;
+                       status = "disabled";
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf5307.dtsi b/arch/m68k/dts/mcf5307.dtsi
new file mode 100644 (file)
index 0000000..e199cf9
--- /dev/null
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5307";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               /* MBAR */
+               mbar: mbar@10000000 {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x00000000 0x10000000 0x10000>;
+                       reg = <0x10000000 0x10000>;
+
+                       uart0: uart@1c0 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x1c0 0x40>;
+                               status = "disabled";
+                       };
+
+                       uart1: uart@200 {
+                               compatible = "fsl,mcf-uart";
+                               reg = <0x200 0x40>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf5329.dtsi b/arch/m68k/dts/mcf5329.dtsi
new file mode 100644 (file)
index 0000000..aeaa643
--- /dev/null
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5329";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               uart0: uart@fc060000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc060000 0x40>;
+                       status = "disabled";
+               };
+
+               uart1: uart@fc064000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc064000 0x40>;
+                       status = "disabled";
+               };
+
+               uart2: uart@fc068000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc068000 0x40>;
+                       status = "disabled";
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf537x.dtsi b/arch/m68k/dts/mcf537x.dtsi
new file mode 100644 (file)
index 0000000..aeaa643
--- /dev/null
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5329";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               uart0: uart@fc060000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc060000 0x40>;
+                       status = "disabled";
+               };
+
+               uart1: uart@fc064000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc064000 0x40>;
+                       status = "disabled";
+               };
+
+               uart2: uart@fc068000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc068000 0x40>;
+                       status = "disabled";
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf5441x.dtsi b/arch/m68k/dts/mcf5441x.dtsi
new file mode 100644 (file)
index 0000000..71b392a
--- /dev/null
@@ -0,0 +1,87 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5441x";
+
+       aliases {
+               serial0 = &uart0;
+               spi0 = &dspi0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               uart0: uart@fc060000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc060000 0x40>;
+                       status = "disabled";
+               };
+
+               uart1: uart@fc064000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc064000 0x40>;
+                       status = "disabled";
+               };
+
+               uart2: uart@fc068000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc068000 0x40>;
+                       status = "disabled";
+               };
+
+               uart3: uart@fc06c000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc06c000 0x40>;
+                       status = "disabled";
+               };
+
+               dspi0: dspi@fc05c000 {
+                       compatible = "fsl,mcf-dspi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xfc05c000 0x100>;
+                       spi-max-frequency = <50000000>;
+                       num-cs = <4>;
+                       spi-mode = <0>;
+                       status = "disabled";
+               };
+
+               dspi1: dspi@fc03c000 {
+                       compatible = "fsl,mcf-dspi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xfc03c000 0x100>;
+                       spi-max-frequency = <50000000>;
+                       num-cs = <4>;
+                       spi-mode = <0>;
+                       status = "disabled";
+               };
+
+               dspi2: dspi@ec038000 {
+                       compatible = "fsl,mcf-dspi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xec038000 0x100>;
+                       spi-max-frequency = <50000000>;
+                       num-cs = <4>;
+                       spi-mode = <0>;
+                       status = "disabled";
+               };
+
+               dspi3: dspi@ec03c000 {
+                       compatible = "fsl,mcf-dspi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xec03c00 0x100>;
+                       spi-max-frequency = <50000000>;
+                       num-cs = <4>;
+                       spi-mode = <0>;
+                       status = "disabled";
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf5445x.dtsi b/arch/m68k/dts/mcf5445x.dtsi
new file mode 100644 (file)
index 0000000..ccbee29
--- /dev/null
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf5445x";
+
+       aliases {
+               serial0 = &uart0;
+               spi0 = &dspi0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               uart0: uart@fc060000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc060000 0x40>;
+                       status = "disabled";
+               };
+
+               uart1: uart@fc064000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc064000 0x40>;
+                       status = "disabled";
+               };
+
+               uart2: uart@fc068000 {
+                       compatible = "fsl,mcf-uart";
+                       reg = <0xfc068000 0x40>;
+                       status = "disabled";
+               };
+
+               dspi0: dspi@fc05c000 {
+                       compatible = "fsl,mcf-dspi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xfc05c000 0x100>;
+                       spi-max-frequency = <50000000>;
+                       num-cs = <4>;
+                       spi-mode = <0>;
+                       status = "disabled";
+               };
+       };
+};
diff --git a/arch/m68k/dts/mcf54xx.dtsi b/arch/m68k/dts/mcf54xx.dtsi
new file mode 100644 (file)
index 0000000..537bb42
--- /dev/null
@@ -0,0 +1,40 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+       compatible = "fsl,mcf54x5";
+
+       aliases {
+               /* TO DO, clarify on serial, this SoC seems to have SPC and
+                * no UARTS.
+                */
+               spi0 = &dspi0;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               mbar: mbar@80000000 {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x00000000 0x80000000 0x10000>;
+                       reg = <0x80000000 0x10000>;
+
+                       dspi0: dspi@8a00 {
+                               compatible = "fsl,mcf-dspi";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0x8a00 0x100>;
+                               spi-max-frequency = <50000000>;
+                               num-cs = <4>;
+                               spi-mode = <0>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
diff --git a/arch/m68k/dts/stmark2.dts b/arch/m68k/dts/stmark2.dts
new file mode 100644 (file)
index 0000000..fd8ce4f
--- /dev/null
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5441x.dtsi"
+
+/ {
+       model = "Sysam stmark2";
+       compatible = "sysam,stmark2";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       u-boot,dm-pre-reloc;
+       status = "okay";
+};
+
+&dspi0 {
+       spi-mode = <3>;
+       status = "okay";
+
+       flash: is25lp128@1 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "spi-flash";
+               spi-max-frequency = <60000000>;
+               reg = <1>;
+       };
+};
index afd5c79f35e9ba1cb3c216af1342ef49e22066dd..ddd8f3380542d798d62b812be3e74e7fefd563ad 100644 (file)
@@ -138,4 +138,8 @@ typedef struct dspi {
 /* Bit definitions and macros for DRFDR group */
 #define DSPI_RFDR_RXDATA(x)            (((x)&0x0000FFFF))
 
+/* Architecture-related operations */
+void dspi_chip_select(int cs);
+void dspi_chip_unselect(int cs);
+
 #endif                         /* __DSPI_H__ */
index 9cf8e9800d8305361c54dc70dd2d8bd43e072084..5cb9bdf2ee7a771db534808448cf70b034b77376 100644 (file)
@@ -84,13 +84,13 @@ config ARCH_MTMIPS
        select DM_SERIAL
        imply DM_SPI
        imply DM_SPI_FLASH
-       select ARCH_MISC_INIT
        select MIPS_TUNE_24KC
        select OF_CONTROL
        select ROM_EXCEPTION_VECTORS
        select SUPPORTS_CPU_MIPS32_R1
        select SUPPORTS_CPU_MIPS32_R2
        select SUPPORTS_LITTLE_ENDIAN
+       select SYS_MALLOC_CLEAR_ON_INIT
        select SYSRESET
 
 config ARCH_JZ47XX
index fcd0484a6d871685a0e455ecdbbf3687f37c0022..b0a6397d68f0a5366246a4b960f11fb08239d416 100644 (file)
@@ -68,18 +68,3 @@ int print_cpuinfo(void)
 
        return 0;
 }
-
-int arch_misc_init(void)
-{
-       /*
-        * It has been noticed, that sometimes the d-cache is not in a
-        * "clean-state" when U-Boot is running on MT7688. This was
-        * detected when using the ethernet driver (which uses d-cache)
-        * and a TFTP command does not complete. Flushing the complete
-        * d-cache (again?) here seems to fix this issue.
-        */
-       flush_dcache_range(gd->bd->bi_memstart,
-                          gd->bd->bi_memstart + gd->ram_size - 1);
-
-       return 0;
-}
index 0057f195b38719ae037afe1c5f22b1d1be1397f0..aebf168a893514c370a6fd915ffd111f01c34731 100644 (file)
@@ -352,7 +352,6 @@ config TARGET_T2080QDS
        select PHYS_64BIT
        select FSL_DDR_FIRST_SLOT_QUAD_CAPABLE
        select FSL_DDR_INTERACTIVE
-       imply CMD_SATA
 
 config TARGET_T2080RDB
        bool "Support T2080RDB"
@@ -361,6 +360,7 @@ config TARGET_T2080RDB
        select SUPPORT_SPL
        select PHYS_64BIT
        imply CMD_SATA
+       imply FSL_SATA
        imply PANIC_HANG
 
 config TARGET_T2081QDS
@@ -1081,10 +1081,8 @@ config ARCH_T2080
        select SYS_FSL_SEC_COMPAT_4
        select SYS_PPC64
        select FSL_IFC
-       imply CMD_SATA
        imply CMD_NAND
        imply CMD_REGINFO
-       imply FSL_SATA
 
 config ARCH_T2081
        bool
index db65ea57258be143c0ff588e0c9c45e611498887..d2bebb08b6cd5ae27f3983f8ec5d3f6f0242b802 100644 (file)
                        device_type = "open-pic";
                        clock-frequency = <0x0>;
                };
+
+               esdhc: esdhc@114000 {
+                       compatible = "fsl,esdhc";
+                       reg = <0x114000 0x1000>;
+                       interrupts = <48 2 0 0>;
+                       clock-frequency = <0>;
+                       sdhci,auto-cmd12;
+                       bus-width = <4>;
+                       voltage-ranges = <1800 1800 3300 3300>;
+               };
+
+               usb0: usb@210000 {
+                       compatible = "fsl-usb2-mph";
+                       reg = <0x210000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <44 0x2 0 0>;
+                       phy_type = "utmi";
+               };
+
+               usb1: usb@211000 {
+                       compatible = "fsl-usb2-dr";
+                       reg = <0x211000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <45 0x2 0 0>;
+                       dr_mode = "host";
+                       phy_type = "utmi";
+               };
+
+               sata0: sata@220000 {
+                       compatible = "fsl,pq-sata-v2";
+                       reg = <0x220000 0x1000>;
+                       interrupts = <68 0x2 0 0>;
+                       sata-number = <0x0>;
+                       sata-fpdma = <0x0>;
+               };
+
+               sata1: sata@221000 {
+                       compatible = "fsl,pq-sata-v2";
+                       reg = <0x221000 0x1000>;
+                       interrupts = <69 0x2 0 0>;
+                       sata-number = <0x0>;
+                       sata-fpdma = <0x0>;
+               };
        };
 };
diff --git a/board/freescale/ls1028a/Kconfig b/board/freescale/ls1028a/Kconfig
new file mode 100644 (file)
index 0000000..ca22c92
--- /dev/null
@@ -0,0 +1,65 @@
+if TARGET_LS1028AQDS
+
+config SYS_BOARD
+       default "ls1028a"
+
+config SYS_VENDOR
+       default "freescale"
+
+config SYS_SOC
+       default "fsl-layerscape"
+
+config SYS_CONFIG_NAME
+       default "ls1028aqds"
+
+config EMMC_BOOT
+       bool "Support for booting from EMMC"
+       default n
+
+config SYS_TEXT_BASE
+       default 0x96000000 if SD_BOOT || EMMC_BOOT
+       default 0x82000000 if TFABOOT
+       default 0x20100000
+
+if FSL_LS_PPA
+config SYS_LS_PPA_FW_ADDR
+       hex "PPA Firmware Addr"
+       default 0x20400000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1028A
+       default 0x400000 if SYS_LS_PPA_FW_IN_MMC && ARCH_LS1028A
+if CHAIN_OF_TRUST
+config SYS_LS_PPA_ESBC_ADDR
+       hex "PPA header Addr"
+       default 0x20600000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1028A
+endif
+endif
+
+source "board/freescale/common/Kconfig"
+
+endif
+
+if TARGET_LS1028ARDB
+
+config SYS_BOARD
+       default "ls1028a"
+
+config SYS_VENDOR
+       default "freescale"
+
+config SYS_SOC
+       default "fsl-layerscape"
+
+config SYS_CONFIG_NAME
+       default "ls1028ardb"
+
+config EMMC_BOOT
+       bool "Support for booting from EMMC"
+       default n
+
+config SYS_TEXT_BASE
+       default 0x96000000 if SD_BOOT || EMMC_BOOT
+       default 0x82000000 if TFABOOT
+       default 0x20100000
+
+source "board/freescale/common/Kconfig"
+
+endif
diff --git a/board/freescale/ls1028a/MAINTAINERS b/board/freescale/ls1028a/MAINTAINERS
new file mode 100644 (file)
index 0000000..6f1a95e
--- /dev/null
@@ -0,0 +1,21 @@
+LS1028AQDS BOARD
+M:     Sudhanshu Gupta <sudhanshu.gupta@nxp.com>
+M:     Rai Harninder <harninder.rai@nxp.com>
+M:     Rajesh Bhagat <rajesh.bhagat@nxp.com>
+M:     Tang Yuantian <andy.tang@nxp.com>
+S:     Maintained
+F:     board/freescale/ls1028a/
+F:     include/configs/ls1028a_common.h
+F:     include/configs/ls1028aqds.h
+F:     configs/ls1028aqds_tfa_defconfig
+
+LS1028ARDB BOARD
+M:     Sudhanshu Gupta <sudhanshu.gupta@nxp.com>
+M:     Rai Harninder <harninder.rai@nxp.com>
+M:     Rajesh Bhagat <rajesh.bhagat@nxp.com>
+M:     Tang Yuantian <andy.tang@nxp.com>
+S:     Maintained
+F:     board/freescale/ls1028a/
+F:     include/configs/ls1028a_common.h
+F:     include/configs/ls1028ardb.h
+F:     configs/ls1028ardb_tfa_defconfig
diff --git a/board/freescale/ls1028a/Makefile b/board/freescale/ls1028a/Makefile
new file mode 100644 (file)
index 0000000..9bc144c
--- /dev/null
@@ -0,0 +1,8 @@
+#
+# Copyright 2019 NXP
+#
+# SPDX-License-Identifier:     GPL-2.0+
+#
+
+obj-y += ls1028a.o
+obj-y += ddr.o
diff --git a/board/freescale/ls1028a/README b/board/freescale/ls1028a/README
new file mode 100644 (file)
index 0000000..323881f
--- /dev/null
@@ -0,0 +1,164 @@
+Overview
+--------
+The LS1028A Reference Design (RDB) is a high-performance computing,
+evaluation, and development platform that supports ARM SoC LS1028A and its
+derivatives.
+
+LS1028A SoC Overview
+--------------------------------------
+Please refer arch/arm/cpu/armv8/fsl-layerscape/doc/README.soc
+
+RDB Default Switch Settings (1: ON; 0: OFF)
+-------------------------------------------
+For XSPI NOR boot (default)
+SW2: 1111_1000
+SW3: 1111_0000
+SW5: 0011_1001
+
+For SD Boot
+SW2: 1000_1000
+SW3: 1111_0000
+SW5: 0011_1001
+
+For eMMC Boot
+SW2: 1001_1000
+SW3: 1111_0000
+SW5: 0011_1001
+
+LS1028ARDB board Overview
+-------------------------
+Processor
+ Two Arm Cortex- A72 processor cores:
+  - Based on 64-bit ARMv8 architecture
+  - Up to 1.3 GHz operation
+  - Single-threaded cores with 48 KB L1 instruction cache and 32 KB L1
+    data cache
+  - Arranged as a single cluster of two cores sharing a single 1 MB L2
+    cache
+DDR memory
+  - Five onboard 1G x8 discrete memory modules (Four data byte lanes
+    ECC)
+  - 32-bit data and 4-bit ECC
+  - One chip select
+  - Data transfer rates of up to 1.6 GT/s
+  - Single-bit error correction and double-bit error detection ECC (4-bit
+    check word across 32-bit data)
+High-speed serial ports(SerDes)
+ - Lane 0: Supports one 1 GbE RJ45 SGMII, connected through the
+   Qualcomm AR8033 PHY
+ - Lane 1: Supports four 1.25 GbE RJ45 QSGMII, each connected
+   through the NXP F104S8A PHY
+ - Lane 2: Connects to one PCIe M.2 Key-E slot to support PCIe Gen3
+   (8 Gbit/s) cards
+ - Lane 3: Connects to one PCIe M.2 Key-E slot or one SATA M.2 Key-B
+   slot through a register mux to support either PCIe Gen 3 (8 Gbit/s) or
+   SATA Gen 3 cards (6 Gbit/s) at a time
+eSDHC
+ - eSDHC1, eSDHC2
+SPI
+ - Connects to two mikroBUS sockets to support mikro-click modules,
+   such as Bluetooth 4.0, 2.4 GHz IEEE 802.15.4 radio transceiver, near
+   field communications (NFC) controller
+Octal SPI (XSPI)
+ - One 256 MB onboard XSPI serial NOR flash memory
+ - One 512 MB onboard XSPI serial NAND flash memory
+ - Supports a QSPI emulator for offboard QSPI emulation
+I2C
+ - All system devices are accessed via I2C1, which is multiplexed on
+   I2C multiplexer PCA9848 to isolate address conflicts and reduce
+   capacitive load
+ - I2C1 is used for EEPROMs, RTC, INA220 current-power sensor,
+   thermal monitor, PCIe/SATA M.2 connectors and mikro-click modules
+   1 and 2
+CAN
+ - The two CAN DB9 ports can support CAN FD fast phase at data rates of
+   up to 5 Mbit/s
+Serial audio interface(SAI)
+ - Audio codec SGTL5000 provides headphone and audio LINEOUT for
+   stereo speakers
+ - IEEE1588 interface to support audio on SAI4
+
+QDS Default Switch Settings (1: ON; 0: OFF)
+-------------------------------------------
+For SD Boot
+SW1 : 1000_0000
+SW2 : 1110_0110
+SW3 : 0000_0010
+SW4 : 0000_0000
+SW5 : 0000_0000
+SW6 : 0000_0000
+SW7 : 1111_0011
+SW8 : 1110_0000
+SW9 : 1000_0001
+SW10: 1110_0000
+
+For XSPI Boot
+SW1 : 1111_0000
+SW2 : 0000_0110
+SW3 : 0000_0010
+SW4 : 0000_0000
+SW5 : 0110_0000
+SW6 : 0101_0000
+SW7 : 1111_0011
+SW8 : 1110_0000
+SW9 : 1000_0000
+SW10: 1110_0000
+
+LS1028AQDS board Overview
+-------------------------
+Processor
+ Two Arm Cortex- A72 processor cores:
+  - Based on 64-bit ARMv8 architecture
+  - Up to 1.3 GHz operation
+  - Single-threaded cores with 48 KB L1 instruction cache and 32 KB L1
+    data cache
+  - Arranged as a single cluster of two cores sharing a single 1 MB L2
+    cache
+DDR memory
+ - Supports data rates of up to 1.6 GT/s for both, DDR4 and DDR3L
+ - Supports a single- or dual-ranked SODIMM or UDIMM connector
+ - 32-bit data and 4-bit ECC
+ - Supports x8/x16 devices
+ - Supports ECC error detection and correction
+ - 1.35 V or 1.2 V DDR power supply, with automatic tracking of VTT, to
+   all devices in case of DDR3L or DDR4, respectively. Power can
+   switch to 1.35 V or 1.2 V, based on the switch settings for DDR3L or
+   DDR4 devices, respectively
+SerDes (Serializer/Deserializer)
+ - Four-lane (0-3) SerDes:
+ - Lane 0: supports PCIe Gen1/2/3 with x1, x2, and x4 operation, 10
+   Gbit SXGMII, 1 Gbit SGMII
+ - Lane 1: supports PCIe Gen1/2/3 with x1, x2, and x4 operation, 1 Gbit
+   SGMII, 10 Gbit QXGMII, 5 Gbit QSGMII, 1 Gbit SGMII
+ - Lane 2: supports PCIe Gen1/2/3 with x1, x2, and x4 operation, 1 Gbit
+   SGMII
+ - Lane 3: supports PCIe Gen1/2/3 with x1, x2, and x4 operation, 1 Gbit
+   SGMII, SATA 2.0/3.0
+ - Four slots on SerDes lanes support PCIe Gen1/2/3, 1 Gbit SGMII
+   add-in cards
+ - Lane 1 connects to a 2x10 connector with SFP+ through a retimer;
+   lane 2 (TX lines) connects to an SMA connector
+   Lane 3 connects to 1x7 header to support SATA devices
+eSDHC
+ - eSDHC1, eSDHC2
+SPI
+ - SPI1 and SPI2 support three onboard SPI flash memory devices:
+    512 Mbit high-speed flash (with speed of up to 108/54 MHz)
+    memory for storage
+    4 Mbit low-speed flash memory (with speed of up to 40 MHz)
+    64 Mbit high-speed flash memory (with speed of up to 104/80
+    MHz)
+ - SPI3 supports one onboard 64 Mbit SPI flash memory (with speed of
+   up to 104/80 MHz)
+ - All memories operate at 1.8 V
+ - A header is provided on SPI1 to test SPI slave mode
+I2C
+ - LS1028A supports eight I2C controllers
+Serial audio interface(SAI)
+ Two SAI ports with audio codec SGTL5000:
+  - Include stereo LINEIN with support for external analog input
+  - Provide headphone and line output
+Display
+ - DisplayPort connector to connect the DP data to a 4K display device
+   (computer monitor)
+ - eDP connector to connect the DP data to a 4K display panel
diff --git a/board/freescale/ls1028a/ddr.c b/board/freescale/ls1028a/ddr.c
new file mode 100644 (file)
index 0000000..74d3af5
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2019 NXP
+ */
+
+#include <common.h>
+#include <fsl_ddr_sdram.h>
+#include <fsl_ddr_dimm_params.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int fsl_initdram(void)
+{
+       gd->ram_size = tfa_get_dram_size();
+
+       if (!gd->ram_size)
+               gd->ram_size = fsl_ddr_sdram_size();
+
+       return 0;
+}
diff --git a/board/freescale/ls1028a/ls1028a.c b/board/freescale/ls1028a/ls1028a.c
new file mode 100644 (file)
index 0000000..e5de4eb
--- /dev/null
@@ -0,0 +1,231 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2019 NXP
+ */
+
+#include <common.h>
+#include <malloc.h>
+#include <errno.h>
+#include <fsl_ddr.h>
+#include <asm/io.h>
+#include <hwconfig.h>
+#include <fdt_support.h>
+#include <linux/libfdt.h>
+#include <environment.h>
+#include <asm/arch-fsl-layerscape/soc.h>
+#include <i2c.h>
+#include <asm/arch/soc.h>
+#ifdef CONFIG_FSL_LS_PPA
+#include <asm/arch/ppa.h>
+#endif
+#include <fsl_immap.h>
+#include <netdev.h>
+
+#include <fdtdec.h>
+#include <miiphy.h>
+#include "../common/qixis.h"
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int config_board_mux(void)
+{
+#if defined(CONFIG_TARGET_LS1028AQDS) && defined(CONFIG_FSL_QIXIS)
+       u8 reg;
+
+       reg = QIXIS_READ(brdcfg[13]);
+       /* Field| Function
+        * 7-6  | Controls I2C3 routing (net CFG_MUX_I2C3):
+        * I2C3 | 10= Routes {SCL, SDA} to CAN1 transceiver as {TX, RX}.
+        * 5-4  | Controls I2C4 routing (net CFG_MUX_I2C4):
+        * I2C4 |11= Routes {SCL, SDA} to CAN2 transceiver as {TX, RX}.
+        */
+       reg &= ~(0xf0);
+       reg |= 0xb0;
+       QIXIS_WRITE(brdcfg[13], reg);
+
+       reg = QIXIS_READ(brdcfg[15]);
+       /* Field| Function
+        * 7    | Controls the CAN1 transceiver (net CFG_CAN1_STBY):
+        * CAN1 | 0= CAN #1 transceiver enabled
+        * 6    | Controls the CAN2 transceiver (net CFG_CAN2_STBY):
+        * CAN2 | 0= CAN #2 transceiver enabled
+        */
+       reg &= ~(0xc0);
+       QIXIS_WRITE(brdcfg[15], reg);
+#endif
+       return 0;
+}
+
+int board_init(void)
+{
+#ifdef CONFIG_ENV_IS_NOWHERE
+       gd->env_addr = (ulong)&default_environment[0];
+#endif
+
+#ifdef CONFIG_FSL_LS_PPA
+       ppa_init();
+#endif
+
+#ifndef CONFIG_SYS_EARLY_PCI_INIT
+       pci_init();
+#endif
+
+#if defined(CONFIG_TARGET_LS1028ARDB)
+       u8 val = I2C_MUX_CH_DEFAULT;
+
+       i2c_write(I2C_MUX_PCA_ADDR_PRI, 0x0b, 1, &val, 1);
+#endif
+       return 0;
+}
+
+int board_eth_init(bd_t *bis)
+{
+       return pci_eth_init(bis);
+}
+
+#if defined(CONFIG_ARCH_MISC_INIT)
+int arch_misc_init(void)
+{
+       config_board_mux();
+
+       return 0;
+}
+#endif
+
+int board_early_init_f(void)
+{
+#ifdef CONFIG_SYS_I2C_EARLY_INIT
+       i2c_early_init_f();
+#endif
+
+       fsl_lsch3_early_init_f();
+       return 0;
+}
+
+void detail_board_ddr_info(void)
+{
+       puts("\nDDR    ");
+       print_size(gd->bd->bi_dram[0].size + gd->bd->bi_dram[1].size, "");
+       print_ddr_info(0);
+}
+
+#ifdef CONFIG_OF_BOARD_SETUP
+int ft_board_setup(void *blob, bd_t *bd)
+{
+       u64 base[CONFIG_NR_DRAM_BANKS];
+       u64 size[CONFIG_NR_DRAM_BANKS];
+
+       ft_cpu_setup(blob, bd);
+
+       /* fixup DT for the two GPP DDR banks */
+       base[0] = gd->bd->bi_dram[0].start;
+       size[0] = gd->bd->bi_dram[0].size;
+       base[1] = gd->bd->bi_dram[1].start;
+       size[1] = gd->bd->bi_dram[1].size;
+
+#ifdef CONFIG_RESV_RAM
+       /* reduce size if reserved memory is within this bank */
+       if (gd->arch.resv_ram >= base[0] &&
+           gd->arch.resv_ram < base[0] + size[0])
+               size[0] = gd->arch.resv_ram - base[0];
+       else if (gd->arch.resv_ram >= base[1] &&
+                gd->arch.resv_ram < base[1] + size[1])
+               size[1] = gd->arch.resv_ram - base[1];
+#endif
+
+       fdt_fixup_memory_banks(blob, base, size, 2);
+
+       return 0;
+}
+#endif
+
+#ifdef CONFIG_FSL_QIXIS
+int checkboard(void)
+{
+#ifdef CONFIG_TFABOOT
+       enum boot_src src = get_boot_src();
+#endif
+       u8 sw;
+
+       int clock;
+       char *board;
+       char buf[64] = {0};
+       static const char *freq[6] = {"100.00", "125.00", "156.25",
+                                       "161.13", "322.26", "100.00 SS"};
+
+       cpu_name(buf);
+       /* find the board details */
+       sw = QIXIS_READ(id);
+
+       switch (sw) {
+       case 0x46:
+               board = "QDS";
+               break;
+       case 0x47:
+               board = "RDB";
+               break;
+       case 0x49:
+               board = "HSSI";
+               break;
+       default:
+               board = "unknown";
+               break;
+       }
+
+       sw = QIXIS_READ(arch);
+       printf("Board: %s-%s, Version: %c, boot from ",
+              buf, board, (sw & 0xf) + 'A' - 1);
+
+       sw = QIXIS_READ(brdcfg[0]);
+       sw = (sw & QIXIS_LBMAP_MASK) >> QIXIS_LBMAP_SHIFT;
+
+#ifdef CONFIG_TFABOOT
+       if (src == BOOT_SOURCE_SD_MMC) {
+               puts("SD\n");
+       } else if (src == BOOT_SOURCE_SD_MMC2) {
+               puts("eMMC\n");
+       } else {
+#endif
+#ifdef CONFIG_SD_BOOT
+               puts("SD\n");
+#elif defined(CONFIG_EMMC_BOOT)
+               puts("eMMC\n");
+#else
+               switch (sw) {
+               case 0:
+               case 4:
+                       printf("NOR\n");
+                       break;
+               case 1:
+                       printf("NAND\n");
+                       break;
+               default:
+                       printf("invalid setting of SW%u\n", QIXIS_LBMAP_SWITCH);
+                       break;
+               }
+#endif
+#ifdef CONFIG_TFABOOT
+       }
+#endif
+
+       printf("FPGA: v%d (%s)\n", QIXIS_READ(scver), board);
+       puts("SERDES1 Reference : ");
+
+       sw = QIXIS_READ(brdcfg[2]);
+#ifdef CONFIG_TARGET_LS1028ARDB
+       clock = (sw >> 6) & 3;
+#else
+       clock = (sw >> 4) & 0xf;
+#endif
+
+       printf("Clock1 = %sMHz ", freq[clock]);
+#ifdef CONFIG_TARGET_LS1028ARDB
+       clock = (sw >> 4) & 3;
+#else
+       clock = sw & 0xf;
+#endif
+       printf("Clock2 = %sMHz\n", freq[clock]);
+
+       return 0;
+}
+#endif
index 3875d045438eb55671543860c9744e58e13f0820..6109b280c6815ffb767feff0efefa559c6604c85 100644 (file)
@@ -449,12 +449,20 @@ unsigned long get_board_ddr_clk(void)
 
 int board_init(void)
 {
+#if defined(CONFIG_FSL_MC_ENET) && defined(CONFIG_TARGET_LX2160ARDB)
+       u32 __iomem *irq_ccsr = (u32 __iomem *)ISC_BASE;
+#endif
 #ifdef CONFIG_ENV_IS_NOWHERE
        gd->env_addr = (ulong)&default_environment[0];
 #endif
 
        select_i2c_ch_pca9547(I2C_MUX_CH_DEFAULT);
 
+#if defined(CONFIG_FSL_MC_ENET) && defined(CONFIG_TARGET_LX2160ARDB)
+       /* invert AQR107 IRQ pins polarity */
+       out_le32(irq_ccsr + IRQCR_OFFSET / 4, AQR107_IRQ_MASK);
+#endif
+
 #ifdef CONFIG_FSL_CAAM
        sec_init();
 #endif
index 5c1acca20d79dd3213357d99f99b02a09affe550..c3d832f58489bd3ca5e5b37ad6696dc94c4eb727 100644 (file)
@@ -38,9 +38,10 @@ void board_debug_uart_init(void)
 #endif
 
 #ifdef CONFIG_PMIC_STPMIC1
-int board_ddr_power_init(void)
+int board_ddr_power_init(enum ddr_type ddr_type)
 {
        struct udevice *dev;
+       bool buck3_at_1800000v = false;
        int ret;
 
        ret = uclass_get_device_by_driver(UCLASS_PMIC,
@@ -49,53 +50,127 @@ int board_ddr_power_init(void)
                /* No PMIC on board */
                return 0;
 
-       /* VTT = Set LDO3 to sync mode */
-       ret = pmic_reg_read(dev, STPMIC1_LDOX_MAIN_CR(STPMIC1_LDO3));
-       if (ret < 0)
-               return ret;
-
-       ret &= ~STPMIC1_LDO3_MODE;
-       ret &= ~STPMIC1_LDO12356_VOUT_MASK;
-       ret |= STPMIC1_LDO_VOUT(STPMIC1_LDO3_DDR_SEL);
-
-       ret = pmic_reg_write(dev, STPMIC1_LDOX_MAIN_CR(STPMIC1_LDO3),
-                            ret);
-       if (ret < 0)
-               return ret;
-
-       /* VDD_DDR = Set BUCK2 to 1.35V */
-       ret = pmic_clrsetbits(dev,
-                             STPMIC1_BUCKX_MAIN_CR(STPMIC1_BUCK2),
-                             STPMIC1_BUCK_VOUT_MASK,
-                             STPMIC1_BUCK2_1350000V);
-       if (ret < 0)
-               return ret;
-
-       /* Enable VDD_DDR = BUCK2 */
-       ret = pmic_clrsetbits(dev,
-                             STPMIC1_BUCKX_MAIN_CR(STPMIC1_BUCK2),
-                             STPMIC1_BUCK_ENA, STPMIC1_BUCK_ENA);
-       if (ret < 0)
-               return ret;
-
-       mdelay(STPMIC1_DEFAULT_START_UP_DELAY_MS);
-
-       /* Enable VREF */
-       ret = pmic_clrsetbits(dev, STPMIC1_REFDDR_MAIN_CR,
-                             STPMIC1_VREF_ENA, STPMIC1_VREF_ENA);
-       if (ret < 0)
-               return ret;
-
-       mdelay(STPMIC1_DEFAULT_START_UP_DELAY_MS);
-
-       /* Enable LDO3 */
-       ret = pmic_clrsetbits(dev,
-                             STPMIC1_LDOX_MAIN_CR(STPMIC1_LDO3),
-                             STPMIC1_LDO_ENA, STPMIC1_LDO_ENA);
-       if (ret < 0)
-               return ret;
-
-       mdelay(STPMIC1_DEFAULT_START_UP_DELAY_MS);
+       switch (ddr_type) {
+       case STM32MP_DDR3:
+               /* VTT = Set LDO3 to sync mode */
+               ret = pmic_reg_read(dev, STPMIC1_LDOX_MAIN_CR(STPMIC1_LDO3));
+               if (ret < 0)
+                       return ret;
+
+               ret &= ~STPMIC1_LDO3_MODE;
+               ret &= ~STPMIC1_LDO12356_VOUT_MASK;
+               ret |= STPMIC1_LDO_VOUT(STPMIC1_LDO3_DDR_SEL);
+
+               ret = pmic_reg_write(dev, STPMIC1_LDOX_MAIN_CR(STPMIC1_LDO3),
+                                    ret);
+               if (ret < 0)
+                       return ret;
+
+               /* VDD_DDR = Set BUCK2 to 1.35V */
+               ret = pmic_clrsetbits(dev,
+                                     STPMIC1_BUCKX_MAIN_CR(STPMIC1_BUCK2),
+                                     STPMIC1_BUCK_VOUT_MASK,
+                                     STPMIC1_BUCK2_1350000V);
+               if (ret < 0)
+                       return ret;
+
+               /* Enable VDD_DDR = BUCK2 */
+               ret = pmic_clrsetbits(dev,
+                                     STPMIC1_BUCKX_MAIN_CR(STPMIC1_BUCK2),
+                                     STPMIC1_BUCK_ENA, STPMIC1_BUCK_ENA);
+               if (ret < 0)
+                       return ret;
+
+               mdelay(STPMIC1_DEFAULT_START_UP_DELAY_MS);
+
+               /* Enable VREF */
+               ret = pmic_clrsetbits(dev, STPMIC1_REFDDR_MAIN_CR,
+                                     STPMIC1_VREF_ENA, STPMIC1_VREF_ENA);
+               if (ret < 0)
+                       return ret;
+
+               mdelay(STPMIC1_DEFAULT_START_UP_DELAY_MS);
+
+               /* Enable VTT = LDO3 */
+               ret = pmic_clrsetbits(dev,
+                                     STPMIC1_LDOX_MAIN_CR(STPMIC1_LDO3),
+                                     STPMIC1_LDO_ENA, STPMIC1_LDO_ENA);
+               if (ret < 0)
+                       return ret;
+
+               mdelay(STPMIC1_DEFAULT_START_UP_DELAY_MS);
+
+               break;
+
+       case STM32MP_LPDDR2:
+       case STM32MP_LPDDR3:
+               /*
+                * configure VDD_DDR1 = LDO3
+                * Set LDO3 to 1.8V
+                * + bypass mode if BUCK3 = 1.8V
+                * + normal mode if BUCK3 != 1.8V
+                */
+               ret = pmic_reg_read(dev,
+                                   STPMIC1_BUCKX_MAIN_CR(STPMIC1_BUCK3));
+               if (ret < 0)
+                       return ret;
+
+               if ((ret & STPMIC1_BUCK3_1800000V) == STPMIC1_BUCK3_1800000V)
+                       buck3_at_1800000v = true;
+
+               ret = pmic_reg_read(dev, STPMIC1_LDOX_MAIN_CR(STPMIC1_LDO3));
+               if (ret < 0)
+                       return ret;
+
+               ret &= ~STPMIC1_LDO3_MODE;
+               ret &= ~STPMIC1_LDO12356_VOUT_MASK;
+               ret |= STPMIC1_LDO3_1800000;
+               if (buck3_at_1800000v)
+                       ret |= STPMIC1_LDO3_MODE;
+
+               ret = pmic_reg_write(dev, STPMIC1_LDOX_MAIN_CR(STPMIC1_LDO3),
+                                    ret);
+               if (ret < 0)
+                       return ret;
+
+               /* VDD_DDR2 : Set BUCK2 to 1.2V */
+               ret = pmic_clrsetbits(dev,
+                                     STPMIC1_BUCKX_MAIN_CR(STPMIC1_BUCK2),
+                                     STPMIC1_BUCK_VOUT_MASK,
+                                     STPMIC1_BUCK2_1200000V);
+               if (ret < 0)
+                       return ret;
+
+               /* Enable VDD_DDR1 = LDO3 */
+               ret = pmic_clrsetbits(dev, STPMIC1_LDOX_MAIN_CR(STPMIC1_LDO3),
+                                     STPMIC1_LDO_ENA, STPMIC1_LDO_ENA);
+               if (ret < 0)
+                       return ret;
+
+               mdelay(STPMIC1_DEFAULT_START_UP_DELAY_MS);
+
+               /* Enable VDD_DDR2 =BUCK2 */
+               ret = pmic_clrsetbits(dev,
+                                     STPMIC1_BUCKX_MAIN_CR(STPMIC1_BUCK2),
+                                     STPMIC1_BUCK_ENA, STPMIC1_BUCK_ENA);
+               if (ret < 0)
+                       return ret;
+
+               mdelay(STPMIC1_DEFAULT_START_UP_DELAY_MS);
+
+               /* Enable VREF */
+               ret = pmic_clrsetbits(dev, STPMIC1_REFDDR_MAIN_CR,
+                                     STPMIC1_VREF_ENA, STPMIC1_VREF_ENA);
+               if (ret < 0)
+                       return ret;
+
+               mdelay(STPMIC1_DEFAULT_START_UP_DELAY_MS);
+
+               break;
+
+       default:
+               break;
+       };
 
        return 0;
 }
index 1a1951f874ef1bf2122849f32ba2ced84e2dba1b..c759952b80bc1c39770df2a1d98902fd3c586ae0 100644 (file)
@@ -247,6 +247,7 @@ config USE_PREBOOT
 config PREBOOT
        string "preboot default value"
        depends on USE_PREBOOT
+       default ""
        help
          This is the default of "preboot" environment variable.
 
index 8c92feb39991b997aabe95de035d3ae64243a7a0..c7e41ef3073f9a3304a1d52f040203f72560c2d0 100644 (file)
@@ -124,6 +124,7 @@ endif
 
 obj-y += cli.o
 obj-$(CONFIG_FSL_DDR_INTERACTIVE) += cli_simple.o cli_readline.o
+obj-$(CONFIG_STM32MP1_DDR_INTERACTIVE) += cli_simple.o cli_readline.o
 obj-$(CONFIG_DFU_OVER_USB) += dfu.o
 obj-y += command.o
 obj-$(CONFIG_$(SPL_TPL_)LOG) += log.o
index 4e7cf6ebe980bcb089ee92a7ba2a52bbbe533d2d..f31e9b0cc5a899ade8f400d1af83fe08e5c593cd 100644 (file)
@@ -722,11 +722,6 @@ int fdt_increase_size(void *fdt, int add_len)
 #include <jffs2/load_kernel.h>
 #include <mtd_node.h>
 
-struct reg_cell {
-       unsigned int r0;
-       unsigned int r1;
-};
-
 static int fdt_del_subnodes(const void *blob, int parent_offset)
 {
        int off, ndepth;
@@ -785,15 +780,22 @@ int fdt_node_set_part_info(void *blob, int parent_offset,
 {
        struct list_head *pentry;
        struct part_info *part;
-       struct reg_cell cell;
        int off, ndepth = 0;
        int part_num, ret;
+       int sizecell;
        char buf[64];
 
        ret = fdt_del_partitions(blob, parent_offset);
        if (ret < 0)
                return ret;
 
+       /*
+        * Check if size/address is 1 or 2 cells.
+        * We assume #address-cells and #size-cells have same value.
+        */
+       sizecell = fdt_getprop_u32_default_node(blob, parent_offset,
+                                               0, "#size-cells", 1);
+
        /*
         * Check if it is nand {}; subnode, adjust
         * the offset in this case
@@ -842,10 +844,21 @@ add_ro:
                                goto err_prop;
                }
 
-               cell.r0 = cpu_to_fdt32(part->offset);
-               cell.r1 = cpu_to_fdt32(part->size);
 add_reg:
-               ret = fdt_setprop(blob, newoff, "reg", &cell, sizeof(cell));
+               if (sizecell == 2) {
+                       ret = fdt_setprop_u64(blob, newoff,
+                                             "reg", part->offset);
+                       if (!ret)
+                               ret = fdt_appendprop_u64(blob, newoff,
+                                                        "reg", part->size);
+               } else {
+                       ret = fdt_setprop_u32(blob, newoff,
+                                             "reg", part->offset);
+                       if (!ret)
+                               ret = fdt_appendprop_u32(blob, newoff,
+                                                        "reg", part->size);
+               }
+
                if (ret == -FDT_ERR_NOSPACE) {
                        ret = fdt_increase_size(blob, 512);
                        if (!ret)
index b3de724ce1a428f4dc18a9015048376a4d01fbd0..c92c62eb9f4245b45b8c095c080ba66e43a2b8b4 100644 (file)
@@ -48,7 +48,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index e576a87d1f81a497b3045af4366280f936290b60..8959910e113ebc130c22fa41909569120cdfe966 100644 (file)
@@ -36,7 +36,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 896df5351a2c201b8f971e478d4a8ac18cae9671..c94444f42cbc99ddd6486b129ac67ec0efd4e1d6 100644 (file)
@@ -35,7 +35,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index bd427f3e198ce15a95edf9353ee44df399163650..b5f2ab9de927859349e3409c7efd5dfa3de4fc69 100644 (file)
@@ -48,7 +48,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index e376a19f71ae09c787bc409df25eff738c0ca580..3eb310716c3d59d80778f4961fab1bbbf82b21d0 100644 (file)
@@ -36,7 +36,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 90e19bd76fc1c7ccb2405c3c324ed664716b78b3..b11b071e35443ca5ceb3a41c0675e70f8ab81b49 100644 (file)
@@ -36,7 +36,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index c35c752f74deffbd82841a5e21e163c9c7888cb0..412a7d49f16681ed34981723a3c474b10c14a2a2 100644 (file)
@@ -32,7 +32,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_REMOTE=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 03b925fcbf5a5441d1cc09646d140a9011d92ece..2df7196ef360be0bbde663e44d8ba49489d6cd17 100644 (file)
@@ -35,7 +35,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index cf61c62ad0abccc5ad8c007553996b673bf242f0..200257abe4dacfda676a4f88918115603887ec75 100644 (file)
@@ -31,7 +31,9 @@ CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
 CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 832b694a7191ea9a323ab91820d5081f1d445fd0..9336e73653ba4f9822c59fe0d33ce6ff931a19d1 100644 (file)
@@ -31,7 +31,9 @@ CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
 CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 934cda4aa60650dfd4623d63a87c87b9a6d0e7a3..9b5d35cd554e313bf036d08061ec5bba79a4a7f7 100644 (file)
@@ -11,6 +11,7 @@ CONFIG_CMD_IMLS=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5208EVBE"
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
index efa5e7102b095184600c287e2de6e20f58d5dd54..55f6fb9c90866d3c153cdcb339b0439b25d1d771 100644 (file)
@@ -15,6 +15,7 @@ CONFIG_CMD_SPI=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_DATE=y
 CONFIG_CMD_JFFS2=y
+CONFIG_DEFAULT_DEVICE_TREE="M52277EVB"
 CONFIG_ENV_IS_IN_FLASH=y
 # CONFIG_NET is not set
 CONFIG_MTD_NOR_FLASH=y
@@ -25,4 +26,5 @@ CONFIG_SYS_FLASH_CFI=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index cafc8611678cc23ce221e5c077d5e8f164de4229..ee0dced2fd29e136826ed02d70a7769422f094cb 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_SPI=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_DATE=y
 CONFIG_CMD_JFFS2=y
+CONFIG_DEFAULT_DEVICE_TREE="M52277EVB_stmicro"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_USE_ENV_SPI_CS=y
 CONFIG_ENV_SPI_CS=2
@@ -26,4 +27,5 @@ CONFIG_SYS_FLASH_CFI=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index fff57436c7206be51bf98c86d2ed5107d4dbdc43..2e40b21d76af2c0894d0fd147690ab95e8760ca8 100644 (file)
@@ -16,6 +16,7 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5235EVB_Flash32"
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
index 07e0f4f50b89ea9ac66d3cc7c17953a40b3f9f77..fd5dd984befc79fc7e03c473f3e64621d27dbc42 100644 (file)
@@ -16,6 +16,7 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5235EVB"
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
index 908f6a1ab1a5c6e056141af0f92569302d8704c8..c39818b4a6311106f689f8f6d3c2c5b71af07106 100644 (file)
@@ -9,6 +9,7 @@ CONFIG_CMD_IMLS=y
 CONFIG_LOOPW=y
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5249EVB"
 # CONFIG_NET is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
index 4685c4eb83f9c9f2358eb2ae5133d500dd8a27da..0775ad5a826f34ac87cfbcde1ef951dae7fa0bfc 100644 (file)
@@ -13,4 +13,5 @@ CONFIG_CMD_CACHE=y
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
 CONFIG_MAC_PARTITION=y
+CONFIG_DEFAULT_DEVICE_TREE="M5253DEMO"
 CONFIG_MTD_NOR_FLASH=y
index 85283d40e475746235597daa93a0d49c67eb977a..c39876d89cf7b94d7ede65d684944e7cb93f42e4 100644 (file)
@@ -13,6 +13,7 @@ CONFIG_CMD_IMLS=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5272C3"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_PROTECTION=y
index 5ff262425c36644196fcb537b1e0f435dcfc2994..ecb3e3207096bd77791b90a821b7a50528e53a46 100644 (file)
@@ -15,6 +15,7 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5275EVB"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_CFI=y
index 289922ba33e56539923636301a23831e02cfaf01..731fb1ec686f5896bac8740a46fe497a13fac72b 100644 (file)
@@ -13,6 +13,7 @@ CONFIG_CMD_IMLS=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5282EVB"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_PROTECTION=y
index 0b1073af611df60eda730e4d8a729bdf182e7216..92dfd0256dd2f67d5b93450e265f8135cb2e2819 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_DATE=y
+CONFIG_DEFAULT_DEVICE_TREE="M53017EVB"
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
index c6dff0e27bdecca8c940a9d7cf3cb02f26165691..20acb64b1afa145c626ee38bb8d5af4ec92e7669 100644 (file)
@@ -15,6 +15,7 @@ CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_DATE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5329AFEE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_PROTECTION=y
index 56dba26f6fa9c2bc1dabd4cf39198755c37b1eed..96c57ec9dbf61b00a6570bfdfef12d198897ba94 100644 (file)
@@ -15,6 +15,7 @@ CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_DATE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5329BFEE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_PROTECTION=y
index 39823200ee65b4712cc23d9a909d225f5f204dbd..ef66d7ca00459d4151b5f1dffafc469eb91c8aec 100644 (file)
@@ -15,6 +15,7 @@ CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_DATE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5373EVB"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_PROTECTION=y
index a239f4a02f42253703613ffaeb5a38f0ed36b277..08af6f2e452d2f168e59eea7e689070852c3628a 100644 (file)
@@ -19,6 +19,7 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M54418TWR"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_USE_ENV_SPI_CS=y
 CONFIG_ENV_SPI_CS=1
@@ -26,4 +27,5 @@ CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_ATMEL=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index 04ca3a8114feed19824ec7bc9b4046a1f2fd5428..6fa822d790b9ca615a1466b61820fe06a6a52088 100644 (file)
@@ -19,8 +19,10 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M54418TWR_nand_mii"
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_ATMEL=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index f6acf6019d4c61d669a4c8b721ae92ee46cc5ecb..1fa7b388284b3d6e49c858d07022706dba9c5e3d 100644 (file)
@@ -19,8 +19,10 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M54418TWR_nand_rmii"
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_ATMEL=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index 6b631d6d4b2f220544c109cc7fc01043eebba5fa..5208e598f436332ab3751489f24470d83c61417b 100644 (file)
@@ -19,8 +19,10 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M54418TWR_nand_rmii_lowfreq"
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_ATMEL=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index 8b72bd35d31a8ead0521324cd7db439275db3dc3..131fd3a856f9b3df39a08f05931b243c3623166a 100644 (file)
@@ -19,6 +19,7 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M54418TWR_serial_mii"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_USE_ENV_SPI_CS=y
 CONFIG_ENV_SPI_CS=1
@@ -26,4 +27,5 @@ CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_ATMEL=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index a239f4a02f42253703613ffaeb5a38f0ed36b277..fd561f3d25eb5563ad469f05e1331980edf7c181 100644 (file)
@@ -19,6 +19,7 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M54418TWR_serial_rmii"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_USE_ENV_SPI_CS=y
 CONFIG_ENV_SPI_CS=1
@@ -26,4 +27,5 @@ CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_ATMEL=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index 8448b6cfbf825e804d4fe5ae269382a4103b17f3..f0bd93f2d9db622bdf443e3a994ecc7ffbb397aa 100644 (file)
@@ -20,6 +20,7 @@ CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_DATE=y
+CONFIG_DEFAULT_DEVICE_TREE="M54451EVB"
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -30,4 +31,5 @@ CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index b614ca716dea13be2409bc321bab2e470bede3f7..144d29b902f63bc3549e3faa21b06cccde1372c9 100644 (file)
@@ -19,6 +19,7 @@ CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_DATE=y
+CONFIG_DEFAULT_DEVICE_TREE="M54451EVB_stmicro"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_USE_ENV_SPI_CS=y
 CONFIG_ENV_SPI_CS=1
@@ -31,4 +32,5 @@ CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index f9be1c3773378684b205be909f6355874f2be7e0..ca403083f795f3bd8327e53f3388a741b1a76fe2 100644 (file)
@@ -24,6 +24,7 @@ CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_JFFS2=y
 CONFIG_ISO_PARTITION=y
+CONFIG_DEFAULT_DEVICE_TREE="M54455EVB_a66"
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -34,4 +35,5 @@ CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index abb69a966ad7d9401c899fd9e32ce930a854f8fd..3ca2d73797582566d1e741cdd359e02dac1f124a 100644 (file)
@@ -25,6 +25,7 @@ CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_JFFS2=y
 CONFIG_ISO_PARTITION=y
+CONFIG_DEFAULT_DEVICE_TREE="M54455EVB"
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -35,4 +36,5 @@ CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index 6050df5d516a346b39b8b0fd596ed51759b8a5d3..20abcd80ab807686affbb699fa5aa1ec01aefb75 100644 (file)
@@ -24,6 +24,7 @@ CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_JFFS2=y
 CONFIG_ISO_PARTITION=y
+CONFIG_DEFAULT_DEVICE_TREE="M54455EVB_i66"
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -34,4 +35,5 @@ CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index 686c00e3185a76229845ccae0da0c71431dc80c7..a17e4fab2524c363e73b8067ba5e3135bd605c04 100644 (file)
@@ -24,6 +24,7 @@ CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_JFFS2=y
 CONFIG_ISO_PARTITION=y
+CONFIG_DEFAULT_DEVICE_TREE="M54455EVB_intel"
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -34,4 +35,5 @@ CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index 467bfaee9ad83b25728b9ac2479e66110b97d81e..c3f04645bf8e54844949d2bff21947754ab209db 100644 (file)
@@ -24,6 +24,7 @@ CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_JFFS2=y
 CONFIG_ISO_PARTITION=y
+CONFIG_DEFAULT_DEVICE_TREE="M54455EVB_stm33"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_USE_ENV_SPI_CS=y
 CONFIG_ENV_SPI_CS=1
@@ -36,4 +37,5 @@ CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_MII=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
index b0296acff0a8a5a1aad63aac8a946e74cf2d26ad..368f73e9dd66f44246ca64fceb24ddda121d405f 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5475AFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index 7fc61bd24977cba354762766e25d87013acf488f..d44b0b267fd3c4bbc00708414e2e3df734965601 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5475BFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index 22d1074521c708e20e9f0eedd20119b2de7637ca..108ef978a65ff6dad2f93425f6578f4aaff86892 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5475CFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index ee8c2abfba78c0ef36c37abd335e07b170df615e..9325db5ba67e243b4404fde79a89f204fa907b36 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5475DFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index 939e56b28ecda3fc7467404e749253725d5e003b..6873f1500c910e0452b03d75f9d3786a0b3de152 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5475EFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index 1fef8fffd6bf6eacd9c245c0b962ea9f35bb2e16..a98e804c4149ff136b1ec0116627b2122432177d 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5475FFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index d78cafffedb29114398fcbc790e2683ab909f193..ed75743801455b2fc601795fb69d033606937174 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5475GFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index 5cda25a99a1d1414c696e830eddf2eb925a77ae8..8f94ac99a174d13032fc0d88b9f6c3d22728f23a 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5485AFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index 7cd4a5355b976e7eee0bfc125006c7083b2a932c..96bd5200dad90ae7a888060131d55fc8d208aaba 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5485BFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index ff5e8ef04388cd0613b8ad7a62dc7e6c18d6ff55..148be33d5a5b741729d609a96555d3df16bdcaf2 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5485CFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index c4dd6c3ae9f5aa0d857a8f986833b5e50e65c7f0..5facb0733da8664c633282bb8493d7f495d2e45f 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5485DFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index 4e84828f4897ea5b10dd53d0b654ad44a60baec3..ece3e115ea34efd70e096c81bfbdaa2250535354 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5485EFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index f6264e8c5e058fbe77f0827b0fab3da0224e2db8..c2a2d926d65712943f67f846fd43610bb5af13fe 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5485FFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index 9a589e0ae2340d3f821962d7a911354e0d8b7064..9cf620242ae7af5b5b4139f0512900e52b6c11e4 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5485GFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index edc50c8f5327d0f7c45fae106b557bee0bcf428e..e6c9225ea9f295d9904aec41f84b8d9a0ffad041 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
+CONFIG_DEFAULT_DEVICE_TREE="M5485HFE"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
index 753d6979665fa8f5c49b5f13baaffb6b337d519b..8678616f108156a67acd248226d4f91ae2e25429 100644 (file)
@@ -1,6 +1,7 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0x4000000
 CONFIG_MPC8xx=y
+CONFIG_SYS_IMMR=0xFF000000
 CONFIG_TARGET_MCR3000=y
 CONFIG_8xx_GCLK_FREQ=132000000
 CONFIG_CMD_IMMAP=y
@@ -36,7 +37,6 @@ CONFIG_SYS_OR6_PRELIM=0xFFFF0908
 CONFIG_SYS_BR7_PRELIM_BOOL=y
 CONFIG_SYS_BR7_PRELIM=0x1C000001
 CONFIG_SYS_OR7_PRELIM=0xFFFF810A
-CONFIG_SYS_IMMR=0xFF000000
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_BOOTDELAY=5
 CONFIG_USE_BOOTCOMMAND=y
index 1a38ebd549242915036bbc80b297b02d05c43cfd..5faf20f16369064dbda2d24ec7b412e8dc3f9a6d 100644 (file)
@@ -58,6 +58,39 @@ CONFIG_LBLAW2=y
 CONFIG_LBLAW2_BASE=0xF0000000
 CONFIG_LBLAW2_NAME="VSC7385"
 CONFIG_LBLAW2_LENGTH_128_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="NAND"
+CONFIG_BR1_OR1_BASE=0xE0600000
+CONFIG_BR1_ERRORCHECKING_BOTH=y
+CONFIG_BR1_MACHINE_FCM=y
+CONFIG_OR1_SCY_1=y
+CONFIG_OR1_CSCT_8_CYCLE=y
+CONFIG_OR1_CST_ONE_CLOCK=y
+CONFIG_OR1_CHT_TWO_CLOCK=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="VSC7385_BASE"
+CONFIG_BR2_OR2_BASE=0xF0000000
+CONFIG_OR2_AM_128_KBYTES=y
+CONFIG_OR2_SCY_15=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_XACS_EXTENDED=y
+CONFIG_OR2_SETA_EXTERNAL=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EHTR_8_CYCLE=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
@@ -103,41 +136,3 @@ CONFIG_MII=y
 CONFIG_TSEC_ENET=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="NAND"
-CONFIG_BR1_OR1_BASE=0xE0600000
-CONFIG_BR1_ERRORCHECKING_BOTH=y
-CONFIG_BR1_MACHINE_FCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_SCY_1=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_CHT_TWO_CLOCK=y
-CONFIG_OR1_CSCT_8_CYCLE=y
-CONFIG_OR1_CST_ONE_CLOCK=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="VSC7385_BASE"
-CONFIG_BR2_OR2_BASE=0xF0000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_128_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_SCY_15=y
-CONFIG_OR2_SETA_EXTERNAL=y
-CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_8_CYCLE=y
index 04eb29ab9eb8c284f129534c329e4c81e1c07a69..9b58860e08afb56c55bd1cb6df97232bad442c12 100644 (file)
@@ -73,12 +73,56 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xFA000000
 CONFIG_LBLAW3_NAME="BCSR"
 CONFIG_LBLAW3_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR_OR_NAND_PRELIM_1=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_SCY_9=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_EHTR_1_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="NAND"
+CONFIG_BR1_OR1_BASE=0xE2800000
+CONFIG_BR1_ERRORCHECKING_BOTH=y
+CONFIG_BR1_MACHINE_FCM=y
+CONFIG_OR1_SCY_1=y
+CONFIG_OR1_CSCT_8_CYCLE=y
+CONFIG_OR1_CST_ONE_CLOCK=y
+CONFIG_OR1_CHT_TWO_CLOCK=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="VSC7385"
+CONFIG_BR2_OR2_BASE=0xF0000000
+CONFIG_OR2_AM_128_KBYTES=y
+CONFIG_OR2_SCY_15=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_XACS_EXTENDED=y
+CONFIG_OR2_SETA_EXTERNAL=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="BCSR"
+CONFIG_BR3_OR3_BASE=0xFA000000
+CONFIG_OR3_SCY_15=y
+CONFIG_OR3_CSNT_EARLIER=y
+CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR3_XACS_EXTENDED=y
+CONFIG_OR3_TRLX_RELAXED=y
+CONFIG_OR3_EHTR_8_CYCLE=y
+CONFIG_OR3_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_SYS_EXTRA_OPTIONS="SYS_33MHZ"
@@ -109,55 +153,3 @@ CONFIG_PHY_MARVELL=y
 CONFIG_TSEC_ENET=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR_OR_NAND_PRELIM_1=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_9=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_EHTR_1_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="NAND"
-CONFIG_BR1_OR1_BASE=0xE2800000
-CONFIG_BR1_ERRORCHECKING_BOTH=y
-CONFIG_BR1_MACHINE_FCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_SCY_1=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_CHT_TWO_CLOCK=y
-CONFIG_OR1_CSCT_8_CYCLE=y
-CONFIG_OR1_CST_ONE_CLOCK=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="BCSR"
-CONFIG_BR3_OR3_BASE=0xFA000000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_EAD_EXTRA=y
-CONFIG_OR3_SCY_15=y
-CONFIG_OR3_XACS_EXTENDED=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_OR3_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="VSC7385"
-CONFIG_BR2_OR2_BASE=0xF0000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_128_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_15=y
-CONFIG_OR2_SETA_EXTERNAL=y
-CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_8_CYCLE=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_4=y
index 8bbeb9777840015bdbfc183a42f5d3e7ede09dee..98fcda1de29ac8ac154c048e25accd1955350f5c 100644 (file)
@@ -72,12 +72,56 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xFA000000
 CONFIG_LBLAW3_NAME="BCSR"
 CONFIG_LBLAW3_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR_OR_NAND_PRELIM_1=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_SCY_9=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_EHTR_1_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="NAND"
+CONFIG_BR1_OR1_BASE=0xE2800000
+CONFIG_BR1_ERRORCHECKING_BOTH=y
+CONFIG_BR1_MACHINE_FCM=y
+CONFIG_OR1_SCY_1=y
+CONFIG_OR1_CSCT_8_CYCLE=y
+CONFIG_OR1_CST_ONE_CLOCK=y
+CONFIG_OR1_CHT_TWO_CLOCK=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="VSC7385"
+CONFIG_BR2_OR2_BASE=0xF0000000
+CONFIG_OR2_AM_128_KBYTES=y
+CONFIG_OR2_SCY_15=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_XACS_EXTENDED=y
+CONFIG_OR2_SETA_EXTERNAL=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="BCSR"
+CONFIG_BR3_OR3_BASE=0xFA000000
+CONFIG_OR3_SCY_15=y
+CONFIG_OR3_CSNT_EARLIER=y
+CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR3_XACS_EXTENDED=y
+CONFIG_OR3_TRLX_RELAXED=y
+CONFIG_OR3_EHTR_8_CYCLE=y
+CONFIG_OR3_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_SYS_EXTRA_OPTIONS="SYS_66MHZ"
@@ -108,55 +152,3 @@ CONFIG_PHY_MARVELL=y
 CONFIG_TSEC_ENET=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR_OR_NAND_PRELIM_1=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_9=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_EHTR_1_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="NAND"
-CONFIG_BR1_OR1_BASE=0xE2800000
-CONFIG_BR1_ERRORCHECKING_BOTH=y
-CONFIG_BR1_MACHINE_FCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_SCY_1=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_CHT_TWO_CLOCK=y
-CONFIG_OR1_CSCT_8_CYCLE=y
-CONFIG_OR1_CST_ONE_CLOCK=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="BCSR"
-CONFIG_BR3_OR3_BASE=0xFA000000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_EAD_EXTRA=y
-CONFIG_OR3_SCY_15=y
-CONFIG_OR3_XACS_EXTENDED=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_OR3_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="VSC7385"
-CONFIG_BR2_OR2_BASE=0xF0000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_128_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_15=y
-CONFIG_OR2_SETA_EXTERNAL=y
-CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_8_CYCLE=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_4=y
index 29b12d004027711c3a5d5437cf435e41e11f8e0d..48c1977ea48dc05916fc00be541357628dcbb246 100644 (file)
@@ -75,12 +75,56 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xFA000000
 CONFIG_LBLAW3_NAME="BCSR"
 CONFIG_LBLAW3_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR_OR_NAND_PRELIM_0=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="NAND"
+CONFIG_BR0_OR0_BASE=0xE2800000
+CONFIG_BR0_ERRORCHECKING_BOTH=y
+CONFIG_BR0_MACHINE_FCM=y
+CONFIG_OR0_SCY_1=y
+CONFIG_OR0_CSCT_8_CYCLE=y
+CONFIG_OR0_CST_ONE_CLOCK=y
+CONFIG_OR0_CHT_TWO_CLOCK=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="FLASH"
+CONFIG_BR1_OR1_BASE=0xFE000000
+CONFIG_BR1_PORTSIZE_16BIT=y
+CONFIG_OR1_AM_8_MBYTES=y
+CONFIG_OR1_SCY_9=y
+CONFIG_OR1_XACS_EXTENDED=y
+CONFIG_OR1_EHTR_1_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="VSC7385"
+CONFIG_BR2_OR2_BASE=0xF0000000
+CONFIG_OR2_AM_128_KBYTES=y
+CONFIG_OR2_SCY_15=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_XACS_EXTENDED=y
+CONFIG_OR2_SETA_EXTERNAL=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="BCSR"
+CONFIG_BR3_OR3_BASE=0xFA000000
+CONFIG_OR3_SCY_15=y
+CONFIG_OR3_CSNT_EARLIER=y
+CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR3_XACS_EXTENDED=y
+CONFIG_OR3_TRLX_RELAXED=y
+CONFIG_OR3_EHTR_8_CYCLE=y
+CONFIG_OR3_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_SYS_EXTRA_OPTIONS="SYS_33MHZ"
@@ -117,55 +161,3 @@ CONFIG_PHY_MARVELL=y
 CONFIG_TSEC_ENET=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR_OR_NAND_PRELIM_0=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="NAND"
-CONFIG_BR0_OR0_BASE=0xE2800000
-CONFIG_BR0_ERRORCHECKING_BOTH=y
-CONFIG_BR0_MACHINE_FCM=y
-CONFIG_BR0_PORTSIZE_8BIT=y
-CONFIG_OR0_AM_32_KBYTES=y
-CONFIG_OR0_SCY_1=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_CHT_TWO_CLOCK=y
-CONFIG_OR0_CSCT_8_CYCLE=y
-CONFIG_OR0_CST_ONE_CLOCK=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="FLASH"
-CONFIG_BR1_OR1_BASE=0xFE000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_16BIT=y
-CONFIG_OR1_AM_8_MBYTES=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_9=y
-CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_EHTR_1_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="BCSR"
-CONFIG_BR3_OR3_BASE=0xFA000000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_EAD_EXTRA=y
-CONFIG_OR3_SCY_15=y
-CONFIG_OR3_XACS_EXTENDED=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_OR3_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="VSC7385"
-CONFIG_BR2_OR2_BASE=0xF0000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_128_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_15=y
-CONFIG_OR2_SETA_EXTERNAL=y
-CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_8_CYCLE=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_4=y
index 2dc31edccb29da7d2888410d7d4d6e3b6fd2b12e..eee9227d4d861f4e868bd6fcb055abd9cdf12c86 100644 (file)
@@ -74,12 +74,56 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xFA000000
 CONFIG_LBLAW3_NAME="BCSR"
 CONFIG_LBLAW3_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR_OR_NAND_PRELIM_0=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="NAND"
+CONFIG_BR0_OR0_BASE=0xE2800000
+CONFIG_BR0_ERRORCHECKING_BOTH=y
+CONFIG_BR0_MACHINE_FCM=y
+CONFIG_OR0_SCY_1=y
+CONFIG_OR0_CSCT_8_CYCLE=y
+CONFIG_OR0_CST_ONE_CLOCK=y
+CONFIG_OR0_CHT_TWO_CLOCK=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="FLASH"
+CONFIG_BR1_OR1_BASE=0xFE000000
+CONFIG_BR1_PORTSIZE_16BIT=y
+CONFIG_OR1_AM_8_MBYTES=y
+CONFIG_OR1_SCY_9=y
+CONFIG_OR1_XACS_EXTENDED=y
+CONFIG_OR1_EHTR_1_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="VSC7385"
+CONFIG_BR2_OR2_BASE=0xF0000000
+CONFIG_OR2_AM_128_KBYTES=y
+CONFIG_OR2_SCY_15=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_XACS_EXTENDED=y
+CONFIG_OR2_SETA_EXTERNAL=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="BCSR"
+CONFIG_BR3_OR3_BASE=0xFA000000
+CONFIG_OR3_SCY_15=y
+CONFIG_OR3_CSNT_EARLIER=y
+CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR3_XACS_EXTENDED=y
+CONFIG_OR3_TRLX_RELAXED=y
+CONFIG_OR3_EHTR_8_CYCLE=y
+CONFIG_OR3_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_SYS_EXTRA_OPTIONS="SYS_66MHZ"
@@ -116,55 +160,3 @@ CONFIG_PHY_MARVELL=y
 CONFIG_TSEC_ENET=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR_OR_NAND_PRELIM_0=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="NAND"
-CONFIG_BR0_OR0_BASE=0xE2800000
-CONFIG_BR0_ERRORCHECKING_BOTH=y
-CONFIG_BR0_MACHINE_FCM=y
-CONFIG_BR0_PORTSIZE_8BIT=y
-CONFIG_OR0_AM_32_KBYTES=y
-CONFIG_OR0_SCY_1=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_CHT_TWO_CLOCK=y
-CONFIG_OR0_CSCT_8_CYCLE=y
-CONFIG_OR0_CST_ONE_CLOCK=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="FLASH"
-CONFIG_BR1_OR1_BASE=0xFE000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_16BIT=y
-CONFIG_OR1_AM_8_MBYTES=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_9=y
-CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_EHTR_1_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="BCSR"
-CONFIG_BR3_OR3_BASE=0xFA000000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_EAD_EXTRA=y
-CONFIG_OR3_SCY_15=y
-CONFIG_OR3_XACS_EXTENDED=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_OR3_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="VSC7385"
-CONFIG_BR2_OR2_BASE=0xF0000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_128_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_15=y
-CONFIG_OR2_SETA_EXTERNAL=y
-CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_8_CYCLE=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_4=y
index 08b5cc50861fd0f88507e93b9b7c70e383e13fee..2a550bc98b9f7041eaf3e980bef4bf235c9730b5 100644 (file)
@@ -76,6 +76,30 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0xE0600000
 CONFIG_LBLAW1_NAME="NAND"
 CONFIG_LBLAW1_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="NAND"
+CONFIG_BR1_OR1_BASE=0xE0600000
+CONFIG_BR1_ERRORCHECKING_BOTH=y
+CONFIG_BR1_MACHINE_FCM=y
+CONFIG_OR1_SCY_1=y
+CONFIG_OR1_CSCT_8_CYCLE=y
+CONFIG_OR1_CST_ONE_CLOCK=y
+CONFIG_OR1_CHT_TWO_CLOCK=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
@@ -83,6 +107,7 @@ CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_BOOTDELAY=6
@@ -116,32 +141,3 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="NAND"
-CONFIG_BR1_OR1_BASE=0xE0600000
-CONFIG_BR1_ERRORCHECKING_BOTH=y
-CONFIG_BR1_MACHINE_FCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_SCY_1=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_CHT_TWO_CLOCK=y
-CONFIG_OR1_CSCT_8_CYCLE=y
-CONFIG_OR1_CST_ONE_CLOCK=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_2=y
index 8ea942d7d9fb9c8d7f60d0dfb709ad80f1c21b2a..349d611086ea8add74c2cf98f9ca6bbd7839f327 100644 (file)
@@ -70,12 +70,26 @@ CONFIG_LBLAW0=y
 CONFIG_LBLAW0_BASE=0xFE000000
 CONFIG_LBLAW0_NAME="FLASH"
 CONFIG_LBLAW0_LENGTH_32_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_16_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_OPT_SPEC_READ=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_BOOTDELAY=6
@@ -92,21 +106,6 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_QE=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_16_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_2=y
index c39f449da9b1578600b553bb3ee9da1ed1d81c1c..3eda9a4deb987f6a6cdc574544f98fecc358798e 100644 (file)
@@ -68,80 +68,70 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xF8008000
 CONFIG_LBLAW3_NAME="PIB"
 CONFIG_LBLAW3_LENGTH_64_KBYTES=y
-CONFIG_HID0_FINAL_EMCP=y
-CONFIG_HID0_FINAL_ICE=y
-CONFIG_HID2_HBE=y
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_SYS_EXTRA_OPTIONS="PQ_MDS_PIB=1,PQ_MDS_PIB_ATM=1"
-CONFIG_BOOTDELAY=6
-CONFIG_BOARD_EARLY_INIT_R=y
-CONFIG_HUSH_PARSER=y
-CONFIG_CMD_IMLS=y
-CONFIG_CMD_ASKENV=y
-CONFIG_CMD_I2C=y
-# CONFIG_CMD_SETEXPR is not set
-CONFIG_CMD_PING=y
-# CONFIG_MMC is not set
-CONFIG_MTD_NOR_FLASH=y
-CONFIG_FLASH_CFI_DRIVER=y
-CONFIG_SYS_FLASH_PROTECTION=y
-CONFIG_SYS_FLASH_CFI=y
-# CONFIG_PCI is not set
-CONFIG_SYS_NS16550=y
-CONFIG_OF_LIBFDT=y
 CONFIG_ELBC_BR0_OR0=y
 CONFIG_BR0_OR0_NAME="FLASH"
 CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
 CONFIG_BR0_PORTSIZE_16BIT=y
 CONFIG_OR0_AM_16_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
+CONFIG_OR0_XAM_SET=y
 CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
 CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
 CONFIG_OR0_TRLX_RELAXED=y
 CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
 CONFIG_ELBC_BR1_OR1=y
 CONFIG_BR1_OR1_NAME="BCSR"
 CONFIG_BR1_OR1_BASE=0xF8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
+CONFIG_OR1_XAM_SET=y
 CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
 CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_XAM_SET=y
 CONFIG_OR1_TRLX_RELAXED=y
 CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
 CONFIG_ELBC_BR2_OR2=y
 CONFIG_BR2_OR2_NAME="PIB1"
 CONFIG_BR2_OR2_BASE=0xF8008000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_32_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
+CONFIG_OR2_XAM_SET=y
 CONFIG_OR2_SCY_15=y
+CONFIG_OR2_CSNT_EARLIER=y
 CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_XAM_SET=y
 CONFIG_OR2_TRLX_RELAXED=y
 CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
 CONFIG_ELBC_BR3_OR3=y
 CONFIG_BR3_OR3_NAME="PIB2"
 CONFIG_BR3_OR3_BASE=0xF8010000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_EAD_EXTRA=y
+CONFIG_OR3_XAM_SET=y
 CONFIG_OR3_SCY_15=y
+CONFIG_OR3_CSNT_EARLIER=y
 CONFIG_OR3_XACS_EXTENDED=y
-CONFIG_OR3_XAM_SET=y
 CONFIG_OR3_TRLX_RELAXED=y
 CONFIG_OR3_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_OR3_EAD_EXTRA=y
+CONFIG_HID0_FINAL_EMCP=y
+CONFIG_HID0_FINAL_ICE=y
+CONFIG_HID2_HBE=y
 CONFIG_LCRR_CLKDIV_2=y
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_SYS_EXTRA_OPTIONS="PQ_MDS_PIB=1,PQ_MDS_PIB_ATM=1"
+CONFIG_BOOTDELAY=6
+CONFIG_BOARD_EARLY_INIT_R=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_IMLS=y
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_I2C=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_PING=y
+# CONFIG_MMC is not set
+CONFIG_MTD_NOR_FLASH=y
+CONFIG_FLASH_CFI_DRIVER=y
+CONFIG_SYS_FLASH_PROTECTION=y
+CONFIG_SYS_FLASH_CFI=y
+# CONFIG_PCI is not set
+CONFIG_QE=y
+CONFIG_SYS_NS16550=y
+CONFIG_OF_LIBFDT=y
index 0e65d21bdbf3674a680c8b8180ca1c28fe376a90..ede3b8a0e4c0aaeae7381bb5add6caed0abaaa43 100644 (file)
@@ -88,80 +88,70 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xF8008000
 CONFIG_LBLAW3_NAME="PIB"
 CONFIG_LBLAW3_LENGTH_64_KBYTES=y
-CONFIG_HID0_FINAL_EMCP=y
-CONFIG_HID0_FINAL_ICE=y
-CONFIG_HID2_HBE=y
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_SYS_EXTRA_OPTIONS="PCI_33M,PQ_MDS_PIB=1"
-CONFIG_BOOTDELAY=6
-CONFIG_BOARD_EARLY_INIT_R=y
-CONFIG_HUSH_PARSER=y
-CONFIG_CMD_IMLS=y
-CONFIG_CMD_ASKENV=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_PCI=y
-# CONFIG_CMD_SETEXPR is not set
-CONFIG_CMD_PING=y
-# CONFIG_MMC is not set
-CONFIG_MTD_NOR_FLASH=y
-CONFIG_FLASH_CFI_DRIVER=y
-CONFIG_SYS_FLASH_PROTECTION=y
-CONFIG_SYS_FLASH_CFI=y
-CONFIG_SYS_NS16550=y
-CONFIG_OF_LIBFDT=y
 CONFIG_ELBC_BR0_OR0=y
 CONFIG_BR0_OR0_NAME="FLASH"
 CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
 CONFIG_BR0_PORTSIZE_16BIT=y
 CONFIG_OR0_AM_16_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
+CONFIG_OR0_XAM_SET=y
 CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
 CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
 CONFIG_OR0_TRLX_RELAXED=y
 CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
 CONFIG_ELBC_BR1_OR1=y
 CONFIG_BR1_OR1_NAME="BCSR"
 CONFIG_BR1_OR1_BASE=0xF8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
+CONFIG_OR1_XAM_SET=y
 CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
 CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_XAM_SET=y
 CONFIG_OR1_TRLX_RELAXED=y
 CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
 CONFIG_ELBC_BR2_OR2=y
 CONFIG_BR2_OR2_NAME="PIB1"
 CONFIG_BR2_OR2_BASE=0xF8008000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_32_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
+CONFIG_OR2_XAM_SET=y
 CONFIG_OR2_SCY_15=y
+CONFIG_OR2_CSNT_EARLIER=y
 CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_XAM_SET=y
 CONFIG_OR2_TRLX_RELAXED=y
 CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
 CONFIG_ELBC_BR3_OR3=y
 CONFIG_BR3_OR3_NAME="PIB2"
 CONFIG_BR3_OR3_BASE=0xF8010000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_EAD_EXTRA=y
+CONFIG_OR3_XAM_SET=y
 CONFIG_OR3_SCY_15=y
+CONFIG_OR3_CSNT_EARLIER=y
 CONFIG_OR3_XACS_EXTENDED=y
-CONFIG_OR3_XAM_SET=y
 CONFIG_OR3_TRLX_RELAXED=y
 CONFIG_OR3_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_OR3_EAD_EXTRA=y
+CONFIG_HID0_FINAL_EMCP=y
+CONFIG_HID0_FINAL_ICE=y
+CONFIG_HID2_HBE=y
 CONFIG_LCRR_CLKDIV_2=y
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_SYS_EXTRA_OPTIONS="PCI_33M,PQ_MDS_PIB=1"
+CONFIG_BOOTDELAY=6
+CONFIG_BOARD_EARLY_INIT_R=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_IMLS=y
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_PCI=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_PING=y
+# CONFIG_MMC is not set
+CONFIG_MTD_NOR_FLASH=y
+CONFIG_FLASH_CFI_DRIVER=y
+CONFIG_SYS_FLASH_PROTECTION=y
+CONFIG_SYS_FLASH_CFI=y
+CONFIG_QE=y
+CONFIG_SYS_NS16550=y
+CONFIG_OF_LIBFDT=y
index 472384fa140cd5844963f5b2bd3fd1fb9cfdac73..370a9141c9c360a7b3bbbbfeb55f62a58398b211 100644 (file)
@@ -88,80 +88,70 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xF8008000
 CONFIG_LBLAW3_NAME="PIB"
 CONFIG_LBLAW3_LENGTH_64_KBYTES=y
-CONFIG_HID0_FINAL_EMCP=y
-CONFIG_HID0_FINAL_ICE=y
-CONFIG_HID2_HBE=y
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_SYS_EXTRA_OPTIONS="PCI_66M,PQ_MDS_PIB=1"
-CONFIG_BOOTDELAY=6
-CONFIG_BOARD_EARLY_INIT_R=y
-CONFIG_HUSH_PARSER=y
-CONFIG_CMD_IMLS=y
-CONFIG_CMD_ASKENV=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_PCI=y
-# CONFIG_CMD_SETEXPR is not set
-CONFIG_CMD_PING=y
-# CONFIG_MMC is not set
-CONFIG_MTD_NOR_FLASH=y
-CONFIG_FLASH_CFI_DRIVER=y
-CONFIG_SYS_FLASH_PROTECTION=y
-CONFIG_SYS_FLASH_CFI=y
-CONFIG_SYS_NS16550=y
-CONFIG_OF_LIBFDT=y
 CONFIG_ELBC_BR0_OR0=y
 CONFIG_BR0_OR0_NAME="FLASH"
 CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
 CONFIG_BR0_PORTSIZE_16BIT=y
 CONFIG_OR0_AM_16_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
+CONFIG_OR0_XAM_SET=y
 CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
 CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
 CONFIG_OR0_TRLX_RELAXED=y
 CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
 CONFIG_ELBC_BR1_OR1=y
 CONFIG_BR1_OR1_NAME="BCSR"
 CONFIG_BR1_OR1_BASE=0xF8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
+CONFIG_OR1_XAM_SET=y
 CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
 CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_XAM_SET=y
 CONFIG_OR1_TRLX_RELAXED=y
 CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
 CONFIG_ELBC_BR2_OR2=y
 CONFIG_BR2_OR2_NAME="PIB1"
 CONFIG_BR2_OR2_BASE=0xF8008000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_32_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
+CONFIG_OR2_XAM_SET=y
 CONFIG_OR2_SCY_15=y
+CONFIG_OR2_CSNT_EARLIER=y
 CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_XAM_SET=y
 CONFIG_OR2_TRLX_RELAXED=y
 CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
 CONFIG_ELBC_BR3_OR3=y
 CONFIG_BR3_OR3_NAME="PIB2"
 CONFIG_BR3_OR3_BASE=0xF8010000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_EAD_EXTRA=y
+CONFIG_OR3_XAM_SET=y
 CONFIG_OR3_SCY_15=y
+CONFIG_OR3_CSNT_EARLIER=y
 CONFIG_OR3_XACS_EXTENDED=y
-CONFIG_OR3_XAM_SET=y
 CONFIG_OR3_TRLX_RELAXED=y
 CONFIG_OR3_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_OR3_EAD_EXTRA=y
+CONFIG_HID0_FINAL_EMCP=y
+CONFIG_HID0_FINAL_ICE=y
+CONFIG_HID2_HBE=y
 CONFIG_LCRR_CLKDIV_2=y
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_SYS_EXTRA_OPTIONS="PCI_66M,PQ_MDS_PIB=1"
+CONFIG_BOOTDELAY=6
+CONFIG_BOARD_EARLY_INIT_R=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_IMLS=y
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_PCI=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_PING=y
+# CONFIG_MMC is not set
+CONFIG_MTD_NOR_FLASH=y
+CONFIG_FLASH_CFI_DRIVER=y
+CONFIG_SYS_FLASH_PROTECTION=y
+CONFIG_SYS_FLASH_CFI=y
+CONFIG_QE=y
+CONFIG_SYS_NS16550=y
+CONFIG_OF_LIBFDT=y
index ec8a94cd2ab2ad12ad8e2a19eb6063ddce597fee..5b1c8f89b604bc6e0610cdf19182a46de9ee0eef 100644 (file)
@@ -85,80 +85,70 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xF8008000
 CONFIG_LBLAW3_NAME="PIB"
 CONFIG_LBLAW3_LENGTH_64_KBYTES=y
-CONFIG_HID0_FINAL_EMCP=y
-CONFIG_HID0_FINAL_ICE=y
-CONFIG_HID2_HBE=y
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_SYS_EXTRA_OPTIONS="PCISLAVE"
-CONFIG_BOOTDELAY=6
-CONFIG_BOARD_EARLY_INIT_R=y
-CONFIG_HUSH_PARSER=y
-CONFIG_CMD_IMLS=y
-CONFIG_CMD_ASKENV=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_PCI=y
-# CONFIG_CMD_SETEXPR is not set
-CONFIG_CMD_PING=y
-# CONFIG_MMC is not set
-CONFIG_MTD_NOR_FLASH=y
-CONFIG_FLASH_CFI_DRIVER=y
-CONFIG_SYS_FLASH_PROTECTION=y
-CONFIG_SYS_FLASH_CFI=y
-CONFIG_SYS_NS16550=y
-CONFIG_OF_LIBFDT=y
 CONFIG_ELBC_BR0_OR0=y
 CONFIG_BR0_OR0_NAME="FLASH"
 CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
 CONFIG_BR0_PORTSIZE_16BIT=y
 CONFIG_OR0_AM_16_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
+CONFIG_OR0_XAM_SET=y
 CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
 CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
 CONFIG_OR0_TRLX_RELAXED=y
 CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
 CONFIG_ELBC_BR1_OR1=y
 CONFIG_BR1_OR1_NAME="BCSR"
 CONFIG_BR1_OR1_BASE=0xF8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
+CONFIG_OR1_XAM_SET=y
 CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
 CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_XAM_SET=y
 CONFIG_OR1_TRLX_RELAXED=y
 CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
 CONFIG_ELBC_BR2_OR2=y
 CONFIG_BR2_OR2_NAME="PIB1"
 CONFIG_BR2_OR2_BASE=0xF8008000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_32_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
+CONFIG_OR2_XAM_SET=y
 CONFIG_OR2_SCY_15=y
+CONFIG_OR2_CSNT_EARLIER=y
 CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_XAM_SET=y
 CONFIG_OR2_TRLX_RELAXED=y
 CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
 CONFIG_ELBC_BR3_OR3=y
 CONFIG_BR3_OR3_NAME="PIB2"
 CONFIG_BR3_OR3_BASE=0xF8010000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_EAD_EXTRA=y
+CONFIG_OR3_XAM_SET=y
 CONFIG_OR3_SCY_15=y
+CONFIG_OR3_CSNT_EARLIER=y
 CONFIG_OR3_XACS_EXTENDED=y
-CONFIG_OR3_XAM_SET=y
 CONFIG_OR3_TRLX_RELAXED=y
 CONFIG_OR3_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_OR3_EAD_EXTRA=y
+CONFIG_HID0_FINAL_EMCP=y
+CONFIG_HID0_FINAL_ICE=y
+CONFIG_HID2_HBE=y
 CONFIG_LCRR_CLKDIV_2=y
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_SYS_EXTRA_OPTIONS="PCISLAVE"
+CONFIG_BOOTDELAY=6
+CONFIG_BOARD_EARLY_INIT_R=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_IMLS=y
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_PCI=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_PING=y
+# CONFIG_MMC is not set
+CONFIG_MTD_NOR_FLASH=y
+CONFIG_FLASH_CFI_DRIVER=y
+CONFIG_SYS_FLASH_PROTECTION=y
+CONFIG_SYS_FLASH_CFI=y
+CONFIG_QE=y
+CONFIG_SYS_NS16550=y
+CONFIG_OF_LIBFDT=y
index 8a26001f7f6255bb0075a67f5352218fa980a5e5..34fbe53f727f18b91b6f04eb909e1dec4ab67b2a 100644 (file)
@@ -68,79 +68,69 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xF8008000
 CONFIG_LBLAW3_NAME="PIB"
 CONFIG_LBLAW3_LENGTH_64_KBYTES=y
-CONFIG_HID0_FINAL_EMCP=y
-CONFIG_HID0_FINAL_ICE=y
-CONFIG_HID2_HBE=y
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_BOOTDELAY=6
-CONFIG_BOARD_EARLY_INIT_R=y
-CONFIG_HUSH_PARSER=y
-CONFIG_CMD_IMLS=y
-CONFIG_CMD_ASKENV=y
-CONFIG_CMD_I2C=y
-# CONFIG_CMD_SETEXPR is not set
-CONFIG_CMD_PING=y
-# CONFIG_MMC is not set
-CONFIG_MTD_NOR_FLASH=y
-CONFIG_FLASH_CFI_DRIVER=y
-CONFIG_SYS_FLASH_PROTECTION=y
-CONFIG_SYS_FLASH_CFI=y
-# CONFIG_PCI is not set
-CONFIG_SYS_NS16550=y
-CONFIG_OF_LIBFDT=y
 CONFIG_ELBC_BR0_OR0=y
 CONFIG_BR0_OR0_NAME="FLASH"
 CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
 CONFIG_BR0_PORTSIZE_16BIT=y
 CONFIG_OR0_AM_16_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
+CONFIG_OR0_XAM_SET=y
 CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
 CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
 CONFIG_OR0_TRLX_RELAXED=y
 CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
 CONFIG_ELBC_BR1_OR1=y
 CONFIG_BR1_OR1_NAME="BCSR"
 CONFIG_BR1_OR1_BASE=0xF8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
+CONFIG_OR1_XAM_SET=y
 CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
 CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_XAM_SET=y
 CONFIG_OR1_TRLX_RELAXED=y
 CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
 CONFIG_ELBC_BR2_OR2=y
 CONFIG_BR2_OR2_NAME="PIB1"
 CONFIG_BR2_OR2_BASE=0xF8008000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_32_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
+CONFIG_OR2_XAM_SET=y
 CONFIG_OR2_SCY_15=y
+CONFIG_OR2_CSNT_EARLIER=y
 CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_XAM_SET=y
 CONFIG_OR2_TRLX_RELAXED=y
 CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
 CONFIG_ELBC_BR3_OR3=y
 CONFIG_BR3_OR3_NAME="PIB2"
 CONFIG_BR3_OR3_BASE=0xF8010000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_EAD_EXTRA=y
+CONFIG_OR3_XAM_SET=y
 CONFIG_OR3_SCY_15=y
+CONFIG_OR3_CSNT_EARLIER=y
 CONFIG_OR3_XACS_EXTENDED=y
-CONFIG_OR3_XAM_SET=y
 CONFIG_OR3_TRLX_RELAXED=y
 CONFIG_OR3_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_OR3_EAD_EXTRA=y
+CONFIG_HID0_FINAL_EMCP=y
+CONFIG_HID0_FINAL_ICE=y
+CONFIG_HID2_HBE=y
 CONFIG_LCRR_CLKDIV_2=y
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_BOOTDELAY=6
+CONFIG_BOARD_EARLY_INIT_R=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_IMLS=y
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_I2C=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_PING=y
+# CONFIG_MMC is not set
+CONFIG_MTD_NOR_FLASH=y
+CONFIG_FLASH_CFI_DRIVER=y
+CONFIG_SYS_FLASH_PROTECTION=y
+CONFIG_SYS_FLASH_CFI=y
+# CONFIG_PCI is not set
+CONFIG_QE=y
+CONFIG_SYS_NS16550=y
+CONFIG_OF_LIBFDT=y
index 35b394ba6afe4c1b0024667855ab76059e1e5f39..f99aaecfb064c3d11c30bf595d71aea13ad4789c 100644 (file)
@@ -53,6 +53,25 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0xE2400000
 CONFIG_LBLAW1_NAME="BCSR"
 CONFIG_LBLAW1_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_32_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="BCSR"
+CONFIG_BR1_OR1_BASE=0xE2400000
+CONFIG_OR1_XAM_SET=y
+CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -60,6 +79,8 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSEC1EP_3=y
 CONFIG_SPCR_TSEC2EP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_BOOTDELAY=6
@@ -72,7 +93,6 @@ CONFIG_CMD_PING=y
 CONFIG_CMD_DATE=y
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
-CONFIG_NETDEVICES=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
@@ -80,29 +100,3 @@ CONFIG_TSEC_ENET=y
 # CONFIG_PCI is not set
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_32_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="BCSR"
-CONFIG_BR1_OR1_BASE=0xE2400000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_SCY_15=y
-CONFIG_OR1_XAM_SET=y
-CONFIG_OR1_EHTR_NORMAL=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_4=y
index 936458a441afd19d34dda863530f4018a4061301..9c2182e8ba533d1c89b78134783f596076092c01 100644 (file)
@@ -57,11 +57,6 @@ CONFIG_LBLAW2=y
 CONFIG_LBLAW2_BASE=0xF0000000
 CONFIG_LBLAW2_NAME="SDRAM"
 CONFIG_LBLAW2_LENGTH_64_MBYTES=y
-CONFIG_HID0_FINAL_EMCP=y
-CONFIG_HID0_FINAL_ICE=y
-CONFIG_HID2_HBE=y
-CONFIG_ACR_PIPE_DEP_4=y
-CONFIG_ACR_RPTCNT_4=y
 CONFIG_ELBC_BR0_OR0=y
 CONFIG_BR0_OR0_NAME="FLASH"
 CONFIG_BR0_OR0_BASE=0xFE000000
@@ -89,6 +84,13 @@ CONFIG_BR2_MACHINE_SDRAM=y
 CONFIG_OR2_COLS_9=y
 CONFIG_OR2_ROWS_13=y
 CONFIG_OR2_EAD_EXTRA=y
+CONFIG_HID0_FINAL_EMCP=y
+CONFIG_HID0_FINAL_ICE=y
+CONFIG_HID2_HBE=y
+CONFIG_ACR_PIPE_DEP_4=y
+CONFIG_ACR_RPTCNT_4=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_PCI_ONE_PCI1=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
@@ -106,12 +108,9 @@ CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_PHY_MARVELL=y
-CONFIG_NETDEVICES=y
 CONFIG_TSEC_ENET=y
 # CONFIG_PCI is not set
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_MPC8XXX_SPI=y
 CONFIG_OF_LIBFDT=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_4=y
index 9649967bf0b5c4e77d40ecebbe4d69da99c4521f..3a1268a5ae3bb52d38b3275ca332bcc6cd104b93 100644 (file)
@@ -51,6 +51,25 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0xE2400000
 CONFIG_LBLAW1_NAME="BCSR"
 CONFIG_LBLAW1_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_32_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="BCSR"
+CONFIG_BR1_OR1_BASE=0xE2400000
+CONFIG_OR1_XAM_SET=y
+CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -58,6 +77,8 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSEC1EP_3=y
 CONFIG_SPCR_TSEC2EP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_PCI_ONE_PCI1=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
@@ -75,34 +96,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
-CONFIG_NETDEVICES=y
 CONFIG_TSEC_ENET=y
 # CONFIG_PCI is not set
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_32_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="BCSR"
-CONFIG_BR1_OR1_BASE=0xE2400000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_SCY_15=y
-CONFIG_OR1_XAM_SET=y
-CONFIG_OR1_EHTR_NORMAL=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_4=y
index bb0d166e4df23470577ec06d442f88f3c63f12c3..9cd3daab35e4e6841cce92b98644ac8ba010c48b 100644 (file)
@@ -53,6 +53,25 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0xE2400000
 CONFIG_LBLAW1_NAME="BCSR"
 CONFIG_LBLAW1_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_32_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="BCSR"
+CONFIG_BR1_OR1_BASE=0xE2400000
+CONFIG_OR1_XAM_SET=y
+CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -60,6 +79,8 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSEC1EP_3=y
 CONFIG_SPCR_TSEC2EP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_PCI_ONE_PCI1=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
@@ -83,29 +104,3 @@ CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_MPC8XXX_SPI=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_32_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="BCSR"
-CONFIG_BR1_OR1_BASE=0xE2400000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_SCY_15=y
-CONFIG_OR1_XAM_SET=y
-CONFIG_OR1_EHTR_NORMAL=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_4=y
index eddb72b1e04bc5f40b96ac24ae3d286d9b289abd..b4cf8c33d0507c78e23de70158370795441c85c2 100644 (file)
@@ -97,12 +97,55 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xF0000000
 CONFIG_LBLAW3_NAME="CF"
 CONFIG_LBLAW3_LENGTH_64_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_16_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="VSC7385"
+CONFIG_BR1_OR1_BASE=0xF8000000
+CONFIG_OR1_AM_128_KBYTES=y
+CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_XACS_EXTENDED=y
+CONFIG_OR1_SETA_EXTERNAL=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="LED"
+CONFIG_BR2_OR2_BASE=0xF9000000
+CONFIG_OR2_AM_2_MBYTES=y
+CONFIG_OR2_SCY_9=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR2_XACS_EXTENDED=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="CF"
+CONFIG_BR3_OR3_BASE=0xF0000000
+CONFIG_BR3_PORTSIZE_16BIT=y
+CONFIG_BR3_MACHINE_UPMA=y
+CONFIG_OR3_BI_BURSTINHIBIT=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSEC1EP_3=y
 CONFIG_SPCR_TSEC2EP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_SYS_EXTRA_OPTIONS="SYS_TEXT_BASE=0xFE000000"
@@ -131,52 +174,3 @@ CONFIG_MII=y
 CONFIG_TSEC_ENET=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_16_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="VSC7385"
-CONFIG_BR1_OR1_BASE=0xF8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_128_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_15=y
-CONFIG_OR1_SETA_EXTERNAL=y
-CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="LED"
-CONFIG_BR2_OR2_BASE=0xF9000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_2_MBYTES=y
-CONFIG_OR2_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_9=y
-CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="CF"
-CONFIG_BR3_OR3_BASE=0xF0000000
-CONFIG_BR3_MACHINE_UPMA=y
-CONFIG_BR3_PORTSIZE_16BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_BI_BURSTINHIBIT=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_4=y
index b394da3a05244aa343faa571ace57d37ad7fd2b3..fbfeda57cfaec6abb6c5e83c782dac3db3842e44 100644 (file)
@@ -97,12 +97,55 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xF0000000
 CONFIG_LBLAW3_NAME="CF"
 CONFIG_LBLAW3_LENGTH_64_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_16_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="VSC7385"
+CONFIG_BR1_OR1_BASE=0xF8000000
+CONFIG_OR1_AM_128_KBYTES=y
+CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_XACS_EXTENDED=y
+CONFIG_OR1_SETA_EXTERNAL=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="LED"
+CONFIG_BR2_OR2_BASE=0xF9000000
+CONFIG_OR2_AM_2_MBYTES=y
+CONFIG_OR2_SCY_9=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR2_XACS_EXTENDED=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="CF"
+CONFIG_BR3_OR3_BASE=0xF0000000
+CONFIG_BR3_PORTSIZE_16BIT=y
+CONFIG_BR3_MACHINE_UPMA=y
+CONFIG_OR3_BI_BURSTINHIBIT=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSEC1EP_3=y
 CONFIG_SPCR_TSEC2EP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_BOOTDELAY=6
@@ -139,52 +182,3 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_16_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="VSC7385"
-CONFIG_BR1_OR1_BASE=0xF8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_128_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_15=y
-CONFIG_OR1_SETA_EXTERNAL=y
-CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="LED"
-CONFIG_BR2_OR2_BASE=0xF9000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_2_MBYTES=y
-CONFIG_OR2_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_9=y
-CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="CF"
-CONFIG_BR3_OR3_BASE=0xF0000000
-CONFIG_BR3_MACHINE_UPMA=y
-CONFIG_BR3_PORTSIZE_16BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_BI_BURSTINHIBIT=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_4=y
index 274fbddf99603de0cbbf1e03f0510fa4a16f1e9a..e9a8bb1836de51f49c77816b4c75e8e17d5bf0ee 100644 (file)
@@ -96,12 +96,55 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xF0000000
 CONFIG_LBLAW3_NAME="CF"
 CONFIG_LBLAW3_LENGTH_64_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_16_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="VSC7385"
+CONFIG_BR1_OR1_BASE=0xF8000000
+CONFIG_OR1_AM_128_KBYTES=y
+CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_XACS_EXTENDED=y
+CONFIG_OR1_SETA_EXTERNAL=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="LED"
+CONFIG_BR2_OR2_BASE=0xF9000000
+CONFIG_OR2_AM_2_MBYTES=y
+CONFIG_OR2_SCY_9=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR2_XACS_EXTENDED=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="CF"
+CONFIG_BR3_OR3_BASE=0xF0000000
+CONFIG_BR3_PORTSIZE_16BIT=y
+CONFIG_BR3_MACHINE_UPMA=y
+CONFIG_OR3_BI_BURSTINHIBIT=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSEC1EP_3=y
 CONFIG_SPCR_TSEC2EP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_BOOTDELAY=6
@@ -138,52 +181,3 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_16_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="VSC7385"
-CONFIG_BR1_OR1_BASE=0xF8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_128_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_15=y
-CONFIG_OR1_SETA_EXTERNAL=y
-CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="LED"
-CONFIG_BR2_OR2_BASE=0xF9000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_2_MBYTES=y
-CONFIG_OR2_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_9=y
-CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="CF"
-CONFIG_BR3_OR3_BASE=0xF0000000
-CONFIG_BR3_MACHINE_UPMA=y
-CONFIG_BR3_PORTSIZE_16BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_BI_BURSTINHIBIT=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_4=y
index 6e6fc54d5109ed02f653812702d4a3e84603f4b5..7b69f5b44f3a9d972a650c2c9c062baf8e42c400 100644 (file)
@@ -101,12 +101,49 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xE0600000
 CONFIG_LBLAW3_NAME="NAND"
 CONFIG_LBLAW3_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_32_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="BCSR"
+CONFIG_BR1_OR1_BASE=0xF8000000
+CONFIG_OR1_XAM_SET=y
+CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_XACS_EXTENDED=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="NAND"
+CONFIG_BR3_OR3_BASE=0xE0600000
+CONFIG_BR3_ERRORCHECKING_BOTH=y
+CONFIG_BR3_MACHINE_FCM=y
+CONFIG_OR3_BCTLD_NOT_ASSERTED=y
+CONFIG_OR3_SCY_1=y
+CONFIG_OR3_CST_ONE_CLOCK=y
+CONFIG_OR3_CHT_TWO_CLOCK=y
+CONFIG_OR3_RST_ONE_CLOCK=y
+CONFIG_OR3_TRLX_RELAXED=y
+CONFIG_OR3_EHTR_8_CYCLE=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_8=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_BOOTDELAY=6
@@ -137,46 +174,3 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_32_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="BCSR"
-CONFIG_BR1_OR1_BASE=0xF8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_15=y
-CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_XAM_SET=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="NAND"
-CONFIG_BR3_OR3_BASE=0xE0600000
-CONFIG_BR3_ERRORCHECKING_BOTH=y
-CONFIG_BR3_MACHINE_FCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_BCTLD_NOT_ASSERTED=y
-CONFIG_OR3_RST_ONE_CLOCK=y
-CONFIG_OR3_SCY_1=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_OR3_CHT_TWO_CLOCK=y
-CONFIG_OR3_CST_ONE_CLOCK=y
-CONFIG_OR3_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_8=y
index 421e176226e5fce0bd16ea0b635ac9f2506f8ce8..17ccb40ac5dd540bb8d398fc321b820b5c6c1297 100644 (file)
@@ -61,12 +61,49 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xE0600000
 CONFIG_LBLAW3_NAME="NAND"
 CONFIG_LBLAW3_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_32_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="BCSR"
+CONFIG_BR1_OR1_BASE=0xF8000000
+CONFIG_OR1_XAM_SET=y
+CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_XACS_EXTENDED=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="NAND"
+CONFIG_BR3_OR3_BASE=0xE0600000
+CONFIG_BR3_ERRORCHECKING_BOTH=y
+CONFIG_BR3_MACHINE_FCM=y
+CONFIG_OR3_BCTLD_NOT_ASSERTED=y
+CONFIG_OR3_SCY_1=y
+CONFIG_OR3_CST_ONE_CLOCK=y
+CONFIG_OR3_CHT_TWO_CLOCK=y
+CONFIG_OR3_RST_ONE_CLOCK=y
+CONFIG_OR3_TRLX_RELAXED=y
+CONFIG_OR3_EHTR_8_CYCLE=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_8=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_SYS_EXTRA_OPTIONS="PCISLAVE"
@@ -90,46 +127,3 @@ CONFIG_TSEC_ENET=y
 # CONFIG_PCI is not set
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_32_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="BCSR"
-CONFIG_BR1_OR1_BASE=0xF8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_15=y
-CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_XAM_SET=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="NAND"
-CONFIG_BR3_OR3_BASE=0xE0600000
-CONFIG_BR3_ERRORCHECKING_BOTH=y
-CONFIG_BR3_MACHINE_FCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_BCTLD_NOT_ASSERTED=y
-CONFIG_OR3_RST_ONE_CLOCK=y
-CONFIG_OR3_SCY_1=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_OR3_CHT_TWO_CLOCK=y
-CONFIG_OR3_CST_ONE_CLOCK=y
-CONFIG_OR3_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_8=y
index cd03f3ff9ec1de934e157ffe12936f500c22f714..47125e27bc04c4bc98691d2062958ac3205a1c22 100644 (file)
@@ -81,12 +81,49 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xE0600000
 CONFIG_LBLAW3_NAME="NAND"
 CONFIG_LBLAW3_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_32_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="BCSR"
+CONFIG_BR1_OR1_BASE=0xF8000000
+CONFIG_OR1_XAM_SET=y
+CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_XACS_EXTENDED=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="NAND"
+CONFIG_BR3_OR3_BASE=0xE0600000
+CONFIG_BR3_ERRORCHECKING_BOTH=y
+CONFIG_BR3_MACHINE_FCM=y
+CONFIG_OR3_BCTLD_NOT_ASSERTED=y
+CONFIG_OR3_SCY_1=y
+CONFIG_OR3_CST_ONE_CLOCK=y
+CONFIG_OR3_CHT_TWO_CLOCK=y
+CONFIG_OR3_RST_ONE_CLOCK=y
+CONFIG_OR3_TRLX_RELAXED=y
+CONFIG_OR3_EHTR_8_CYCLE=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_8=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_BOOTDELAY=6
@@ -113,46 +150,3 @@ CONFIG_TSEC_ENET=y
 # CONFIG_PCI is not set
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_32_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="BCSR"
-CONFIG_BR1_OR1_BASE=0xF8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_15=y
-CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_XAM_SET=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="NAND"
-CONFIG_BR3_OR3_BASE=0xE0600000
-CONFIG_BR3_ERRORCHECKING_BOTH=y
-CONFIG_BR3_MACHINE_FCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_BCTLD_NOT_ASSERTED=y
-CONFIG_OR3_RST_ONE_CLOCK=y
-CONFIG_OR3_SCY_1=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_OR3_CHT_TWO_CLOCK=y
-CONFIG_OR3_CST_ONE_CLOCK=y
-CONFIG_OR3_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_8=y
index c90ebc8d7eb46fe500504c1884b6b41891c8cb51..4dcaed23e3b1240b5a5015a80dc214e5b5f28e0d 100644 (file)
@@ -61,12 +61,45 @@ CONFIG_LBLAW2=y
 CONFIG_LBLAW2_BASE=0xF0000000
 CONFIG_LBLAW2_NAME="VSC7385"
 CONFIG_LBLAW2_LENGTH_128_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_SCY_9=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_EHTR_1_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="NAND"
+CONFIG_BR1_OR1_BASE=0xE0600000
+CONFIG_BR1_ERRORCHECKING_BOTH=y
+CONFIG_BR1_MACHINE_FCM=y
+CONFIG_OR1_SCY_1=y
+CONFIG_OR1_CSCT_8_CYCLE=y
+CONFIG_OR1_CST_ONE_CLOCK=y
+CONFIG_OR1_CHT_TWO_CLOCK=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="VSC7385"
+CONFIG_BR2_OR2_BASE=0xF0000000
+CONFIG_OR2_AM_128_KBYTES=y
+CONFIG_OR2_SCY_15=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_XACS_EXTENDED=y
+CONFIG_OR2_SETA_EXTERNAL=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_8=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_SYS_EXTRA_OPTIONS="PCISLAVE,PCIE"
@@ -86,7 +119,6 @@ CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
 CONFIG_FSL_SATA=y
 CONFIG_MTD_NOR_FLASH=y
-CONFIG_NETDEVICES=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
@@ -96,41 +128,3 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_9=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_EHTR_1_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="NAND"
-CONFIG_BR1_OR1_BASE=0xE0600000
-CONFIG_BR1_ERRORCHECKING_BOTH=y
-CONFIG_BR1_MACHINE_FCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_SCY_1=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_CHT_TWO_CLOCK=y
-CONFIG_OR1_CSCT_8_CYCLE=y
-CONFIG_OR1_CST_ONE_CLOCK=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="VSC7385"
-CONFIG_BR2_OR2_BASE=0xF0000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_128_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_15=y
-CONFIG_OR2_SETA_EXTERNAL=y
-CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_8=y
index 95f47962814c984312973a8d45fc00c7a306b059..738e75ac36c00c6c735675beec426d8ff33c616b 100644 (file)
@@ -101,12 +101,45 @@ CONFIG_LBLAW2=y
 CONFIG_LBLAW2_BASE=0xF0000000
 CONFIG_LBLAW2_NAME="VSC7385"
 CONFIG_LBLAW2_LENGTH_128_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_SCY_9=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_EHTR_1_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="NAND"
+CONFIG_BR1_OR1_BASE=0xE0600000
+CONFIG_BR1_ERRORCHECKING_BOTH=y
+CONFIG_BR1_MACHINE_FCM=y
+CONFIG_OR1_SCY_1=y
+CONFIG_OR1_CSCT_8_CYCLE=y
+CONFIG_OR1_CST_ONE_CLOCK=y
+CONFIG_OR1_CHT_TWO_CLOCK=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="VSC7385"
+CONFIG_BR2_OR2_BASE=0xF0000000
+CONFIG_OR2_AM_128_KBYTES=y
+CONFIG_OR2_SCY_15=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_XACS_EXTENDED=y
+CONFIG_OR2_SETA_EXTERNAL=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_8=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_SYS_EXTRA_OPTIONS="PCIE"
@@ -139,41 +172,3 @@ CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_9=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_EHTR_1_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="NAND"
-CONFIG_BR1_OR1_BASE=0xE0600000
-CONFIG_BR1_ERRORCHECKING_BOTH=y
-CONFIG_BR1_MACHINE_FCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_SCY_1=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_CHT_TWO_CLOCK=y
-CONFIG_OR1_CSCT_8_CYCLE=y
-CONFIG_OR1_CST_ONE_CLOCK=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="VSC7385"
-CONFIG_BR2_OR2_BASE=0xF0000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_128_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_15=y
-CONFIG_OR2_SETA_EXTERNAL=y
-CONFIG_OR2_XACS_EXTENDED=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_8=y
index f3544a25571dff7678c7e5a92f1d675d0218e75e..190b0b89dfab9dbb4a5ba8999ebde48e02efd336 100644 (file)
@@ -25,5 +25,6 @@ CONFIG_SYS_FLASH_CFI=y
 CONFIG_PHY_MARVELL=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_QE=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
index 5140ae9ecdee89064fdc7e0e95dd09a640f60b86..08e17bf5f2528438ebeecf7f096c7f4ac089d789 100644 (file)
@@ -28,5 +28,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_E1000=y
+CONFIG_QE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
index a778eaeeb810cc07e7563457c0244e3b6c0cef34..f1b4a7befd9149914dd568fae70089e66e1a0537 100644 (file)
@@ -27,5 +27,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_E1000=y
+CONFIG_QE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
index ebbd4e5f994cb2474892b567e77747bfe4934a22..5f751ede1dfad62918119614d60976f746a0c7c6 100644 (file)
@@ -60,6 +60,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 87eae418a46d813bd6076d62ba8c872e59cc1b47..2e5ac9387d003ef8734f0b5dc9e9cc4ebd6183c8 100644 (file)
@@ -57,6 +57,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 07e2265f54903c1e4f432ba35590ede1c146b647..b65c24596fa9ecbf73fce5a5e28881f37d9e7ba8 100644 (file)
@@ -58,6 +58,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index ae7752b15739100a9035daae77be4be68a7b2328..273435a6b4621bb6ca24ec63da7723ec3da0593e 100644 (file)
@@ -46,6 +46,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 5b322e2994ef96193cc9eb0fd3989a8708f3ae4b..6cfd222ab107c3803ccd614df58983e359b7f937 100644 (file)
@@ -59,6 +59,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 6f1aa147f99f6ae92deee6953a83eba7e253a67a..fd1c6383097cd6a146696f6fceb8d7656965a381 100644 (file)
@@ -56,6 +56,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 7f8951f42980d0fde6f19e81971263a0ffe1c0f6..bd9153164382696d338de937e6db0f7b2a53af17 100644 (file)
@@ -57,6 +57,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 093c0ae60f7f6b9d62ffb59e425d6d681b673995..9671af1d86d4e2cc8853dc456c6418effe26a9aa 100644 (file)
@@ -45,6 +45,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index b4e27c4d235fec83045baea663ba0b26d70e3f0e..ee2aee4a322b0efc2db0a61e3f2fe3228ff90d91 100644 (file)
@@ -34,7 +34,9 @@ CONFIG_SYS_FLASH_CFI=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
index 703b8d769d80c23db8b635d64d1a607928c4f3e5..e2407e3ae8d7476405e2cbecfc01f9a4af197745 100644 (file)
@@ -43,6 +43,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 676f439ba825aaa0b982dc2426abad127879109c..e5e80152d621860bc121e26a8a37d71a5f1bb221 100644 (file)
@@ -56,6 +56,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index fb77418ddc1f31be95728a31f7a0c16bf193f903..7b1c7660ee4fa188cd9804939ca97810b952abe8 100644 (file)
@@ -53,6 +53,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index bfda4f1c40bebf4ee07dd634a22b6ec69ad867de..795e011214dfc00a67696aade1f983b72fdca08e 100644 (file)
@@ -54,6 +54,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 19ac763cf343e8b171752fbe7a0589e31fa9c24a..a22f1a10da08e98435af2e7fe23e36aea26e3860 100644 (file)
@@ -42,6 +42,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 44966d88f44493b8f06e113b17342c7a58e1cf8a..e42fac34d43000db356d852178243ea92a62e7f2 100644 (file)
@@ -38,7 +38,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 3d558c578468094648e5a2a08a4da1f359e7f34a..c339f1bba343a0620a7517401b270ffce6f13950 100644 (file)
@@ -37,7 +37,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index f42c1410254e56b3427b339e0be5d9c1af7aeedc..91514e1641bc647d35b3c8a65f3817f418e7cda6 100644 (file)
@@ -37,7 +37,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 4fb379417fc967b2d7fef7eef7982765f8f54ddf..f164b1f34d270d5eb283c8468fe080686820d70a 100644 (file)
@@ -37,7 +37,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index ac74a25c2ffd734fa0395dcd6023a89fe7f48b3d..4161d10c27ef8b7a30e21df4c6c1903fb5d1e10d 100644 (file)
@@ -33,7 +33,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_REMOTE=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 2a70296780484c49fcbc7fd1d2035565f7f7eedc..f322c9376393cadc23dace3251492c052a871488 100644 (file)
@@ -36,7 +36,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index b1bc659aa6ca92c83d86396babee154cfb992e9c..d83206342e5655ec9d6463485a80e7ef3f3c51b2 100644 (file)
@@ -39,7 +39,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 81ce703046672d2b171692182550a69eb52718c9..6a31ce956ed74cc6a0599d9fb55f50fd2d97e142 100644 (file)
@@ -38,7 +38,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 7392948fa736ae64a94a9564ff0e77019c4cf388..c6b22919bb7be3284e19b5d63e74744cd9a14bfe 100644 (file)
@@ -37,7 +37,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index f7ed9630403fb5ab32d48faf8d49c739f6f691da..483e39324681142f04703c59e2d1c46417fb2155 100644 (file)
@@ -37,7 +37,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index c89ee84d924a4854a0efc3ff0b41e13a2a2f3e6e..0aebf869e97fcd5f5d1bd4613dcc9dfcfc7c425a 100644 (file)
@@ -37,7 +37,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 2bc3f8160087044e7b7242cd4eae41142516e784..efb759d470a8b0c8ab7d49c3367c05da586c93c9 100644 (file)
@@ -33,7 +33,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_REMOTE=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 6bae5a57f6e4aba5058b6bef2da01c66df5a8d23..a44c1b444612d8457e0b04287653239966ea2860 100644 (file)
@@ -36,7 +36,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index b67e12afabaef61d77e16e56dbacdc42a942410a..36884a88f62ecde987b33ed95b40eda946e29f41 100644 (file)
@@ -37,7 +37,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 0e47d70b9d301defea3978d7c6cb6637018193b5..e6b1207d0e226542c99ed7b46b010ad6c9e1fc91 100644 (file)
@@ -37,7 +37,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index b10836717dcd49e99d9614b461c79f05ee980bcf..5155657b9e125845915c79ae62bbdc60002bab54 100644 (file)
@@ -37,7 +37,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index a011c8c3129ff19c525609964960359bf23eb105..095b21f95b593905f105f36191dbdd5f0008dc95 100644 (file)
@@ -33,7 +33,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_REMOTE=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index ee4f51d4df0603911f6fa5f4b4c57ada732833c1..995248d0950ed618d8f0b1a79e1461c9d5218250 100644 (file)
@@ -36,7 +36,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 078d70bf6d4a2488732d95a05c1218e3624f7c73..85f04ac323d17c1cae576fd4966dd47f75755aed 100644 (file)
@@ -40,7 +40,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 7cbd790b9a42b103c6697ceab7de9cbdb7bc0b6a..0c9328bfee07433451906b3cc9b646e399645873 100644 (file)
@@ -39,7 +39,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index c5438e2df8588b3fd2f2b0219629c503d960ec80..c319a84af6fdb73dbbe90aa4fddfa2ce88b06ef3 100644 (file)
@@ -38,7 +38,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 16607aec5b73987554851a98b85d10ebc6d2ce02..85fa7bdfbfa974261affff7d88fcfd75edb9c723 100644 (file)
@@ -38,7 +38,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 0ac8813e4b1397a6d6e49df0518e392d69a61509..5ae3097307b03bf9605644e0b500a4ba2d0a3067 100644 (file)
@@ -38,7 +38,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 487ad27d9e4a9bd9d75a5c15210a42536e3d17fb..79de46e415286b73048223023ed77f36694a9ab7 100644 (file)
@@ -34,7 +34,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_REMOTE=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 6ef6de9f244990c7407e5f29f14ba04f0e76ac4d..df43d13f7ca83a078244048c1e137dc0c7b8fadd 100644 (file)
@@ -37,7 +37,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index fd277ceb79512973574b4b7a9f7e4d5cb83c5816..c085e68efbe980eb1ad9d529e013d327676c7c87 100644 (file)
@@ -40,7 +40,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index b2c61d78c61e4f87a5de6ac5eb1fd0a1c32985a0..5368f40ad2e1bab557856d410a933a88f72ef936 100644 (file)
@@ -39,7 +39,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index dbff8f72e7105de4dad087422e9c7a35794ac049..f1aa187332514429660f414f1de6a70f903be526 100644 (file)
@@ -38,7 +38,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 24694432dee540302899cd1f82d3f6d18c62a664..22b4d4ebda0bd4f33a0698c6bf95fa262b071ada 100644 (file)
@@ -38,7 +38,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 1552f84e023389c9de8502abbf497703421f2452..7f3181368a13913b8baa7748aa5839761b3934c9 100644 (file)
@@ -38,7 +38,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index e8ff36e575dfa20d035d3569389a638010fb2c79..40d04e969483022774937c2ac4acbeb961da61a8 100644 (file)
@@ -37,7 +37,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 80213d19e911b01032275c60a1d13dadfeb3ff78..a495e3f952fca55784427c7940fe107f453174fa 100644 (file)
@@ -56,7 +56,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 41176c21ce4e1815822f0fbad9b85aa9caa28be9..c175ff63d0fb9f5ab191add06bee655a1a189396 100644 (file)
@@ -55,7 +55,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index ebb5ce3f5e2c3791e400bb43168a962286674e71..886aba79df3050f2d83985489375c0b7f5f17d55 100644 (file)
@@ -44,7 +44,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index f3db41098f3d1a28c1ba445db2686f3205c84730..3de2f304335c563bb85ee79c5f63f06c21f87693 100644 (file)
@@ -56,7 +56,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index b3344905f1fab2ec00686b0e44f3baeff1607de9..cadc16a2b05ce87da9fe2f0ce2825dffb17e2f47 100644 (file)
@@ -43,7 +43,9 @@ CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index dd5c0061a55a677c31d752c7a198e612a0f8e9cd..423d64265ceb265ae8715db87cf8c13435898546 100644 (file)
@@ -47,7 +47,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 9d887f1d6889667aae9cbd7a8f392e01f3bc9acd..6a61ddff88e707d72355e727021a04579878284f 100644 (file)
@@ -44,7 +44,9 @@ CONFIG_SPI_FLASH_EON=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 3d4099fda0d65c0cbccd9e39db6906c1ce20337a..a3a27e82ea6df294e249ee054482ae3eaa9fd67b 100644 (file)
@@ -60,7 +60,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 02226df657893fb853bf28b77986eb1b11d7a50f..6fba5694363ad41c0cf4e5bba75af1d1ee96417b 100644 (file)
@@ -59,7 +59,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 5d8a9191926304b881231844ced49079b8fde578..9d6bc986117d987874db0006f2ac74c909ddfd48 100644 (file)
@@ -48,7 +48,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 4077a2f728cf734c444da0d375074356f90a5c1b..366fa9651445b097607e354c19f586b424172d3f 100644 (file)
@@ -60,7 +60,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index fbba22c20ea4e9496f2bbfb5f602bd146242ae04..af0eb46f8406a44dbc2420fa26b50ea2ac45f9af 100644 (file)
@@ -47,7 +47,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index ea00def2111b365776d4bd45be9245caecc6136a..8377729c35210cd79e4d206bb712651529b8d076 100644 (file)
@@ -58,7 +58,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 6b966b60d79884089a2d33a9677e255b99d8cabc..3d7215780bdb14662b894548b1f2ccbd697dccfd 100644 (file)
@@ -57,7 +57,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 76e959ffc406379005bad2e77782853590ebcb6a..cb751dfc71aa699867283f31a5e57ed36a4defd8 100644 (file)
@@ -46,7 +46,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 59e1e77db41e2743fd23f54b2cb7adf6ecbced01..9b5943f4212f3c636d65e8379238e214571fb5a8 100644 (file)
@@ -58,7 +58,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 683a61978fcd996d22d1d7081b30655cd78f16f9..9059329450b6ce64553e5fb2b1d4a659408de6c5 100644 (file)
@@ -45,7 +45,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 50757d939cf210b61589017ab1cd439c27b61c7a..4e12ba0c757d9927700bde83d91cb9648752964f 100644 (file)
@@ -55,7 +55,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 5d70e014e1c664459a310987266c67d137667427..81c47e6bb065fad3621a9016e5a35da6d7d8cd24 100644 (file)
@@ -54,7 +54,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index d1b3c1ad08f326d2c2a5e3c15025ef12752d1705..7391eff2a389fb105366806eabd4ddbfc812bb68 100644 (file)
@@ -43,7 +43,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 7b81373fe55028f867ac26faa2e65e3b34b75521..259ff245ad7a12084a5e5b01da43c3192f101db3 100644 (file)
@@ -55,7 +55,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 17c47de700e0dd5524c4a69b61359ee35f08e1aa..8d7427d310c7e2cb07c96700c7cf3a7a96fbbba7 100644 (file)
@@ -42,7 +42,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index fad61d4767c64f0c04ce9cad051295bdbaccfc09..9aa552379f74182ebd22d973aed7f6b948b51b1a 100644 (file)
@@ -47,7 +47,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index a86936af8ecede81d75a65e546845fb1b610e109..9cd30e57049e78a5b78ba21a59f2b7bb2aa709a9 100644 (file)
@@ -49,7 +49,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index e3ae3d7dc516621167abcda705fb9c38ed590d98..5901ca51f148cc19afed68b68ad37d07fac84895 100644 (file)
@@ -48,7 +48,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 991590e43ff442737504de8f5d94df53a3bab680..2f32b67d1d9a4100f0237466732fc50efbf85d24 100644 (file)
@@ -56,7 +56,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index bd0590b50826c53db9ec25ed9433a55cf2fce98f..e1a84283977fbbccf9ea35fca66602b679b6b6b8 100644 (file)
@@ -55,7 +55,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index ea400b20bd9ad8925d1c6f912496953cd337d001..5f482c3f6019f7baf99b10288c04fda3124ceef5 100644 (file)
@@ -44,7 +44,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 4ac5e8a48437aafdc0f86bba0689d7089cfc79ee..ce3d812a3c31342830d29691ff1be90836b4bc03 100644 (file)
@@ -56,7 +56,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 3e7b3e8f6cedf2699058fa27c38251085b525b57..9ef146bed050c633a5e2ec5e046b58d4eb38ba08 100644 (file)
@@ -43,7 +43,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 9d9e5602a41f3d90206b67f50e11d1d0f2f0e5f5..2cd3440f2f90e179e22ebed9ebc23eccf2f29716 100644 (file)
@@ -56,7 +56,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index fc3e188b1fdaf3c3196fa7e022fca4edf4545ce2..d0789c7d6014d3ec952295800853965880c28407 100644 (file)
@@ -55,7 +55,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 9d40088dcc74aa105b5c3bcde26721bf35b4e3fa..d52521c96c8898a3ca88f4d38cd12b3bec31a624 100644 (file)
@@ -44,7 +44,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index fdb894304c6234e5e77104be295ea3fe0fc2efd6..9f0b0041f325a07b1524a4f7e03153fca5bad815 100644 (file)
@@ -56,7 +56,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 466aea2ee6e44b9261a3a6fa644b23ce10c79fa8..749baf622e93c6e543657ae11305dad30e53ce70 100644 (file)
@@ -43,7 +43,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index f5614ebcff606b491690bad82e4882c335ad7b80..1e55947ef1fcc79feb1cb51a736e0099530da5c7 100644 (file)
@@ -61,7 +61,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 8e32bb70ae4ff36bd51fa818abd700cd62e55c5d..95c29edfa1c91847ecf5b398969e8599d3c02b47 100644 (file)
@@ -58,7 +58,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 5134f55d459086e840d7ca9de85f738760194e0c..e4b00f11db5b10a71ab988bd46f25c464af35289 100644 (file)
@@ -57,7 +57,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 206008598426806dcfb302790462ab903dc10d5b..90a21d8be11c77b9a9545827bb0adb78e0eb36ce 100644 (file)
@@ -58,7 +58,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index d9683240303493c248d8069e1824e9b50b80b890..7aeac602034456723376f91ee2fd26a8dea41dec 100644 (file)
@@ -45,7 +45,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 5072f2aec400b3ccdf8591c145b822f8ad59c399..a255e085b9ff60fcab7de70f18844b87d36b2174 100644 (file)
@@ -43,7 +43,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 2bf2647954b20a13f2aeacd942a3f48a151cb492..6378c95efc98818f6a98f5b0a5106308ffad7892 100644 (file)
@@ -42,7 +42,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 4c39f66096232f6ac136c329e2d11c9efb11e008..20f45c09bccb7fb2e58ed746fdfe1a61431d0bbc 100644 (file)
@@ -7,6 +7,7 @@ CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
 CONFIG_SPL=y
 CONFIG_MPC85xx=y
 CONFIG_TARGET_T2080QDS=y
+CONFIG_AHCI=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_OF_BOARD_SETUP=y
@@ -39,7 +40,10 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),9
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="t2080qds"
 CONFIG_ENV_IS_IN_NAND=y
+CONFIG_DM=y
+CONFIG_FSL_AHCI=y
 CONFIG_FSL_CAAM=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -56,9 +60,14 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
+CONFIG_SCSI=y
+CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_STORAGE=y
index 5fe12da409e82bc822b9bbc0416eeaf330beedb9..983acc83062d29fff98704d5f31de5e62a6667ac 100644 (file)
@@ -8,6 +8,7 @@ CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
 CONFIG_SPL=y
 CONFIG_MPC85xx=y
 CONFIG_TARGET_T2080QDS=y
+CONFIG_AHCI=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_OF_BOARD_SETUP=y
@@ -39,7 +40,10 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),9
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="t2080qds"
 CONFIG_ENV_IS_IN_MMC=y
+CONFIG_DM=y
+CONFIG_FSL_AHCI=y
 CONFIG_FSL_CAAM=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -55,9 +59,14 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
+CONFIG_SCSI=y
+CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_STORAGE=y
index dd71811f349241b86118eefde52a76d1b3992035..6996f856a7e75304f84dc0738c328498b496b7df 100644 (file)
@@ -3,6 +3,8 @@ CONFIG_SYS_TEXT_BASE=0xEFF40000
 CONFIG_SECURE_BOOT=y
 CONFIG_MPC85xx=y
 CONFIG_TARGET_T2080QDS=y
+CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
+CONFIG_AHCI=y
 # CONFIG_SYS_MALLOC_F is not set
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
@@ -26,7 +28,11 @@ CONFIG_CMD_FAT=y
 CONFIG_CMD_MTDPARTS=y
 CONFIG_MTDIDS_DEFAULT="nor0=fe8000000.nor,nand0=fff800000.flash,spi0=spife110000.0"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),96m(fs),-(user);fff800000.flash:1m(uboot),5m(kernel),128k(dtb),96m(fs),-(user);spife110000.0:1m(uboot),5m(kernel),128k(dtb),-(user)"
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="t2080qds"
 CONFIG_DM=y
+CONFIG_FSL_AHCI=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -42,13 +48,17 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
+CONFIG_SCSI=y
+CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_RSA=y
 CONFIG_SPL_RSA=y
 CONFIG_RSA_SOFTWARE_EXP=y
-CONFIG_OF_LIBFDT=y
index 899f61c8a819dfff208e73976e243dfb69a42939..b1327a71812f33de6ae6ccae1bcc38b762a496af 100644 (file)
@@ -9,6 +9,7 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y
 CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_MPC85xx=y
 CONFIG_TARGET_T2080QDS=y
+CONFIG_AHCI=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_OF_BOARD_SETUP=y
@@ -40,7 +41,10 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),9
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="t2080qds"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
+CONFIG_DM=y
+CONFIG_FSL_AHCI=y
 CONFIG_FSL_CAAM=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -56,9 +60,14 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
+CONFIG_SCSI=y
+CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_STORAGE=y
index 133dc7d15cd88d8bb90f687b72c7c0659c1c3993..1346d5eaac7cf5098b30629f9e4d3eb5591193a0 100644 (file)
@@ -2,6 +2,8 @@ CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xFFF40000
 CONFIG_MPC85xx=y
 CONFIG_TARGET_T2080QDS=y
+CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
+CONFIG_AHCI=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_OF_BOARD_SETUP=y
@@ -22,8 +24,13 @@ CONFIG_CMD_PING=y
 CONFIG_MP=y
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="t2080qds"
 CONFIG_ENV_IS_IN_REMOTE=y
+CONFIG_DM=y
+CONFIG_FSL_AHCI=y
 CONFIG_FSL_CAAM=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_MODE=0
@@ -34,10 +41,14 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_REMOTE=y
+CONFIG_SCSI=y
+CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_STORAGE=y
-CONFIG_OF_LIBFDT=y
index 7f5a26fa766ff587e8aacbfe83122098f2d934a4..bcbd276b022cca17af7f63b511a12a8a498913e1 100644 (file)
@@ -3,6 +3,7 @@ CONFIG_SYS_TEXT_BASE=0xEFF40000
 CONFIG_MPC85xx=y
 CONFIG_TARGET_T2080QDS=y
 CONFIG_MPC85XX_HAVE_RESET_VECTOR=y
+CONFIG_AHCI=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_OF_BOARD_SETUP=y
@@ -28,7 +29,10 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=fe8000000.nor:1m(uboot),5m(kernel),128k(dtb),9
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="t2080qds"
 CONFIG_ENV_IS_IN_FLASH=y
+CONFIG_DM=y
+CONFIG_FSL_AHCI=y
 CONFIG_FSL_CAAM=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -44,9 +48,14 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
+CONFIG_SCSI=y
+CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_STORAGE=y
index 1bb90f390d132a24f497711a15345211fbb29171..679c06fa519075ca7000c2444efd7ea682238e73 100644 (file)
@@ -54,7 +54,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 1a7070c816b6ee3fd0bc003ec903e72a61351bac..d8fc219fadc3716b76f897cd4c8b7c2773233dd9 100644 (file)
@@ -53,7 +53,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 016682177b6cf654310fb342887fafcf2d6462b6..120bfccadec6bf63fa937ef95b35b56278de3192 100644 (file)
@@ -42,7 +42,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index ceb0230f93d8e18bf86abfeb46514cc5a51eee3a..667a74674056fa500b74d27f2fe781ca664a0e7c 100644 (file)
@@ -54,7 +54,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index a5d83bc6214e991aa352743202156f731947e7de..ab071abc475204258c4b0da5a32f669245955adb 100644 (file)
@@ -34,7 +34,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_REMOTE=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index e782ba0997c6640536e7533a8842ff1b16f98153..f1f0f139f4b54b6644164c4bb01a059be817de92 100644 (file)
@@ -41,7 +41,9 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 91a719f11becf11bbc0d2990d6074b519972bc9b..d4073a933a641c9664fb6be2f58d45cb7def6e72 100644 (file)
@@ -54,7 +54,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index c1bc0972dd847909cdf6fc1a65b1d46c358c5330..bea30447db66f6850b9d374c5e2cebf193702af4 100644 (file)
@@ -53,7 +53,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index f6a3f61938c4ad50c840c852c09d4c74fa5c9179..31ad09cfc772b9bff10a31c0763aca5bc13bfc8b 100644 (file)
@@ -54,7 +54,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 83d5e50c2916308cc6acf066c527de368a87ffcf..5dfb4f2ab2125023196de4e5006986f578eb8415 100644 (file)
@@ -34,7 +34,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_REMOTE=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index e785b586c890e98fc9a35522a4d96a8b7db996f0..306d8b79d84520f03b3a2ca7458d7be9b434bd6b 100644 (file)
@@ -41,7 +41,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 302188482602588b5efd00fcdfdc1c2efcd7a88a..1a637c1d57c75bef2ea91a2400217ab8caf1b3cd 100644 (file)
@@ -48,7 +48,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index b584638737efa0c0a79c5b9870f74bae8d665bf5..94c35f2914731184d9d20a8fde721b19d438596d 100644 (file)
@@ -47,7 +47,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index bf7b701c3d6c20e418cd6b41ff7fec3699a5f49b..fafcdd52ccebf4883103b95897768df1d7edf08f 100644 (file)
@@ -36,7 +36,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 7834ebfa5de4e34c7f76eb1c038cf6195eeaa57d..50970fc795889cafb28a8225862c5e91061b6093 100644 (file)
@@ -35,7 +35,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index c5a8bb0a01ace727cedddac1c2542c046fc64bec..077961de62e1e2fea097449e1737f826de85340c 100644 (file)
@@ -35,7 +35,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index e66e5fd47f562ea58b805a2c1c762b625fd3c9ef..0771add0f49a54d489be11bbc7581cf9d80e5354 100644 (file)
@@ -48,7 +48,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 715ec903043d27010a7b2bdad4891be50227fa1a..5fb4c3a06495d4db9d956535390405cee3ef5657 100644 (file)
@@ -47,7 +47,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 2535ea35301b0fc781b0cfd06f02cdaeea7eecea..55a7f19dd55f733b9b2c3d9bf2ab758681eaf510 100644 (file)
@@ -36,7 +36,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index d360f3be99a8b9306980752a7dfa8b5a19ddee3d..3eb07017d115c1cc25068074b42086ed0d74921d 100644 (file)
@@ -32,7 +32,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_REMOTE=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 89cd1730429e7f9629d059e0e9f2c95830cbc754..c9f541c0ef6332acddeadfd24f3292c91b41b858 100644 (file)
@@ -35,7 +35,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index eeab2ec720f12c89edc093c1cd96add09c339785..91c00c8e76cdcf0a7ffe81e94816571acc268059 100644 (file)
@@ -47,7 +47,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index ef26e7cd69b3aa8eb496f2179ebf37a2605c20c6..446c141c8ef307bfb0f541083ea560365777589e 100644 (file)
@@ -35,7 +35,9 @@ CONFIG_SPI_FLASH_SST=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_MII=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 9d9f105f75da5fb81db47b90dc4d347eb58f7aea..65ab07ee4da71490d9c5ecea668adc5917586bf8 100644 (file)
@@ -103,8 +103,19 @@ CONFIG_LBLAW2=y
 # CONFIG_LBLAW2_ENABLE is not set
 CONFIG_LBLAW3=y
 # CONFIG_LBLAW3_ENABLE is not set
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0x80000000
+CONFIG_BR0_PORTSIZE_32BIT=y
+CONFIG_OR0_AM_1_GBYTES=y
+CONFIG_OR0_SCY_5=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_QUARTER_CYCLE_EARLIER=y
+CONFIG_OR0_TRLX_RELAXED=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_8=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_BOOTDELAY=6
@@ -137,15 +148,3 @@ CONFIG_MII=y
 CONFIG_TSEC_ENET=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0x80000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_32BIT=y
-CONFIG_OR0_AM_1_GBYTES=y
-CONFIG_OR0_ACS_QUARTER_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_SCY_5=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_8=y
index 5ed6b5aa4a772676ef660db9c59490385175387f..53f66c714d8c992d47d66d50cc1df5e2a6e7fe87 100644 (file)
@@ -43,6 +43,7 @@ CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 07f1ecc2fc658a49a59be32b0f261537941dd423..8ec72f45076191074463334a21224f84829bfb1b 100644 (file)
@@ -1,9 +1,9 @@
 CONFIG_RISCV=y
 CONFIG_SYS_TEXT_BASE=0x80000000
-CONFIG_XIP=y
+CONFIG_NR_DRAM_BANKS=2
 CONFIG_TARGET_AX25_AE350=y
+CONFIG_XIP=y
 CONFIG_DISTRO_DEFAULTS=y
-CONFIG_NR_DRAM_BANKS=2
 CONFIG_FIT=y
 CONFIG_BOOTDELAY=3
 CONFIG_BOARD_EARLY_INIT_F=y
@@ -15,7 +15,6 @@ CONFIG_CMD_SF_TEST=y
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_BOOTP_PREFER_SERVERIP=y
 CONFIG_CMD_CACHE=y
-CONFIG_OF_SEPARATE=y
 CONFIG_DEFAULT_DEVICE_TREE="ae350_32"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_NET_RANDOM_ETHADDR=y
index 28afd81fc8a977dfd2f912471304a24abccc6719..8e423a79a3bd1b024d2538101fc959c3e1cbb7b7 100644 (file)
@@ -1,10 +1,10 @@
 CONFIG_RISCV=y
 CONFIG_SYS_TEXT_BASE=0x80000000
-CONFIG_XIP=y
+CONFIG_NR_DRAM_BANKS=2
 CONFIG_TARGET_AX25_AE350=y
 CONFIG_ARCH_RV64I=y
+CONFIG_XIP=y
 CONFIG_DISTRO_DEFAULTS=y
-CONFIG_NR_DRAM_BANKS=2
 CONFIG_FIT=y
 CONFIG_BOOTDELAY=3
 CONFIG_BOARD_EARLY_INIT_F=y
@@ -16,7 +16,6 @@ CONFIG_CMD_SF_TEST=y
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_BOOTP_PREFER_SERVERIP=y
 CONFIG_CMD_CACHE=y
-CONFIG_OF_SEPARATE=y
 CONFIG_DEFAULT_DEVICE_TREE="ae350_64"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_NET_RANDOM_ETHADDR=y
index 5753b105264a09055b10ed05988ddd90140e409f..3a57946311f6253803a68f88aa93a67c1b2ed199 100644 (file)
@@ -9,9 +9,9 @@ CONFIG_SPL_MMC_SUPPORT=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
 CONFIG_SPL=y
+CONFIG_BOOTSTAGE_STASH_ADDR=0x0
 CONFIG_SPL_LIBDISK_SUPPORT=y
 CONFIG_DISTRO_DEFAULTS=y
-CONFIG_BOOTSTAGE_STASH_ADDR=0x0
 CONFIG_CONSOLE_MUX=y
 CONFIG_SYS_CONSOLE_INFO_QUIET=y
 CONFIG_VERSION_VARIABLE=y
index 43e71cd6c2ff4ccab5e5680cb35bfaf92b5267c9..6a00ea29e4ee17f27eb21bccd8627bd0c71f0341 100644 (file)
@@ -16,11 +16,10 @@ CONFIG_LOOPW=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_TIMER=y
 CONFIG_CMD_DIAG=y
+CONFIG_DEFAULT_DEVICE_TREE="amcore"
 CONFIG_ENV_IS_IN_FLASH=y
 # CONFIG_NET is not set
-CONFIG_DM=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
-CONFIG_DM_SERIAL=y
index 37ad6accc396ff8d41b251e0cc5d5123058a729e..c1b727e0dfff736eefc34491e6472fb8d739958f 100644 (file)
@@ -42,4 +42,3 @@ CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_HOST_ETHER=y
-CONFIG_USB_ETHER_ASIX=y
index 230c4cb921e1ff46bd2fc3a2344cde789f15b8ed..126b50c9b68e95e4185b7f988a4bd96b4d53f44c 100644 (file)
@@ -16,6 +16,7 @@ CONFIG_CMD_I2C=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_DATE=y
 CONFIG_CMD_JFFS2=y
+CONFIG_DEFAULT_DEVICE_TREE="astro_mcf5373l"
 # CONFIG_NET is not set
 CONFIG_FPGA_ALTERA=y
 CONFIG_FPGA_CYCLON2=y
index 437e2d950d53aa3e2d3bf9f93d1e60bf1ef27470..f16d0fee22fcef089f57a0e0ad9f5fb31c1df325 100644 (file)
@@ -1,11 +1,11 @@
 CONFIG_ARM=y
 CONFIG_ARCH_SUNXI=y
+CONFIG_NR_DRAM_BANKS=1
 CONFIG_SPL=y
 CONFIG_MACH_SUN50I_H6=y
 CONFIG_MMC0_CD_PIN="PF6"
 CONFIG_MMC_SUNXI_SLOT_EXTRA=2
 # CONFIG_PSCI_RESET is not set
-CONFIG_NR_DRAM_BANKS=1
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_SPL_TEXT_BASE=0x20060
 # CONFIG_CMD_FLASH is not set
index 3787a9573a3b3e7f0b3836dc84b1c62488913bf1..25ea77ef24781bf0684e9fb44cd63d986ce643e0 100644 (file)
@@ -2,12 +2,13 @@ CONFIG_ARM=y
 CONFIG_SYS_VENDOR="bitmain"
 CONFIG_SYS_BOARD="antminer_s9"
 CONFIG_SYS_CONFIG_NAME="bitmain_antminer_s9"
-CONFIG_ARCH_ZYNQ=y
 CONFIG_SPL_SYS_DCACHE_OFF=y
+CONFIG_ARCH_ZYNQ=y
 CONFIG_SYS_TEXT_BASE=0x4000000
 CONFIG_ENV_OFFSET=0x300000
 CONFIG_SPL_STACK_R_ADDR=0x200000
 CONFIG_SPL=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0xEFFFFF0
 CONFIG_DEBUG_UART_BASE=0xe0001000
 CONFIG_DEBUG_UART_CLOCK=50000000
 CONFIG_DEBUG_UART=y
@@ -48,7 +49,6 @@ CONFIG_ENV_IS_IN_NAND=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_BOOTCOUNT_LIMIT=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0xEFFFFF0
 CONFIG_FPGA_XILINX=y
 CONFIG_FPGA_ZYNQPL=y
 CONFIG_DM_GPIO=y
index 98423f239104350d10eee9f5a74524c2d9724627..7c455d2ebd87954878f27eb57072d7e641577b1c 100644 (file)
@@ -4,6 +4,8 @@ CONFIG_ARCH_VF610=y
 CONFIG_SYS_TEXT_BASE=0x3f401000
 CONFIG_SYS_MALLOC_F_LEN=0x800
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0x4006e02c
 CONFIG_TARGET_BK4R1=y
 CONFIG_FIT=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/phytec/pcm052/imximage.cfg"
@@ -34,18 +36,12 @@ CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0x4006e02c
 CONFIG_DM_GPIO=y
 CONFIG_VYBRID_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
 CONFIG_I2C_DEFAULT_BUS_NUMBER=0x2
 CONFIG_SYS_I2C_MXC=y
-CONFIG_SYS_I2C_MXC_I2C1=y
-CONFIG_SYS_I2C_MXC_I2C2=y
-CONFIG_SYS_I2C_MXC_I2C3=y
-CONFIG_SYS_I2C_MXC_I2C4=y
 CONFIG_LED=y
 CONFIG_LED_GPIO=y
 CONFIG_MISC=y
index 192c3442ceefb25e065afd7ac1e27bda4888f7e1..33253b1332e7ff0c4e8497a0a2c64a89b70e7b49 100644 (file)
@@ -71,6 +71,25 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0xF0000000
 CONFIG_LBLAW1_NAME="WINDOW1"
 CONFIG_LBLAW1_LENGTH_256_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFFC00000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_4_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="WINDOW1"
+CONFIG_BR1_OR1_BASE=0xF0000000
+CONFIG_BR1_PORTSIZE_32BIT=y
+CONFIG_OR1_AM_256_KBYTES=y
+CONFIG_OR1_SETA_EXTERNAL=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -95,24 +114,3 @@ CONFIG_E1000=y
 CONFIG_BAUDRATE=9600
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFFC00000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_4_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="WINDOW1"
-CONFIG_BR1_OR1_BASE=0xF0000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_32BIT=y
-CONFIG_OR1_AM_256_KBYTES=y
-CONFIG_OR1_SETA_EXTERNAL=y
index f2b0814acfdec47535efcd9005d6f31b7dfe3a57..2da4fc65372e7fdd59a8b2f418d38cfd1f7ef2aa 100644 (file)
@@ -4,6 +4,7 @@ CONFIG_SYS_TEXT_BASE=0x60000000
 CONFIG_TARGET_CALIMAIN=y
 CONFIG_DA850_LOWLEVEL=y
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_SYS_BOOTCOUNT_ADDR=0x01C23000
 CONFIG_BOOTDELAY=0
 CONFIG_VERSION_VARIABLE=y
 # CONFIG_DISPLAY_CPUINFO is not set
@@ -24,7 +25,6 @@ CONFIG_CMD_DIAG=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0x01C23000
 CONFIG_DA8XX_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
index 0278353ef171dcfeb5efbeb06608a452434ded35..4ce6a09483067c22f2062cbf4010d5711bd71be8 100644 (file)
@@ -1,16 +1,9 @@
 CONFIG_X86=y
-CONFIG_SPL_GPIO_SUPPORT=y
-CONFIG_SPL_LIBCOMMON_SUPPORT=y
-CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x2000
-CONFIG_SPL_SERIAL_SUPPORT=y
-CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
 CONFIG_NR_DRAM_BANKS=8
 CONFIG_DEBUG_UART_BOARD_INIT=y
 CONFIG_DEBUG_UART_BASE=0x3f8
 CONFIG_DEBUG_UART_CLOCK=1843200
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_X86_RUN_64BIT=y
 CONFIG_VENDOR_GOOGLE=y
 CONFIG_TARGET_CHROMEBOOK_LINK64=y
@@ -57,13 +50,9 @@ CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
-CONFIG_SPL_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="chromebook_link"
-CONFIG_SPL_DM=y
 CONFIG_REGMAP=y
-CONFIG_SPL_REGMAP=y
 CONFIG_SYSCON=y
-CONFIG_SPL_SYSCON=y
 CONFIG_CPU=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_INTEL=y
@@ -72,7 +61,6 @@ CONFIG_CROS_EC_LPC=y
 CONFIG_SPL_DM_RTC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
-CONFIG_SPL_TIMER=y
 CONFIG_TPM_TIS_LPC=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_KEYBOARD=y
index 1806d95015985734c276bcb04f93ff305c8e2503..b7b886be4f7ab4f92b0859396f323d39fdc66468 100644 (file)
@@ -46,8 +46,8 @@ CONFIG_DM_GPIO=y
 CONFIG_DM_PCA953X=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_MVTWSI=y
-CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_DM_MMC=y
+CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_MMC_SDHCI_MV=y
index fc295af114abb01cee537ad6be7bf5c4cb73593a..8865618999a3c1b9824899250a48fd1caf1aa9ac 100644 (file)
@@ -11,6 +11,7 @@ CONFIG_CMD_IMLS=y
 # CONFIG_CMD_LOADS is not set
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_CMD_PING=y
+CONFIG_DEFAULT_DEVICE_TREE="cobra5272"
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_MII=y
 CONFIG_BAUDRATE=19200
index af74f357253365db6bd02072eb16c43278761049..72e9128a69c0f60c41d5fcb42209ac017d17184a 100644 (file)
@@ -41,12 +41,12 @@ CONFIG_CMD_GPIO=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
-CONFIG_CMD_UUID=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
+CONFIG_CMD_UUID=y
 CONFIG_CMD_PMIC=y
 CONFIG_CMD_REGULATOR=y
 CONFIG_OF_CONTROL=y
index 66ba04ede85e4951dad1cdb161459af014bb7d29..26e1c91f29ce3fec2931e6ace493a96c93375d9e 100644 (file)
@@ -5,14 +5,12 @@ CONFIG_SYS_MALLOC_F_LEN=0x2000
 CONFIG_TARGET_CRS305_1G_4S=y
 CONFIG_BUILD_TARGET="u-boot.kwb"
 CONFIG_SYS_CONSOLE_INFO_QUIET=y
-CONFIG_DISPLAY_BOARDINFO=y
 CONFIG_CMD_MEMTEST=y
 CONFIG_SYS_ALT_MEMTEST=y
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_I2C=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_SPI=y
-# CONFIG_CMD_USB is not set
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_TFTPPUT=y
@@ -33,7 +31,6 @@ CONFIG_SYS_I2C_MVTWSI=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
 CONFIG_MTD_DEVICE=y
-# CONFIG_NAND is not set
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_SFDP_SUPPORT=y
 CONFIG_SPI_FLASH_MACRONIX=y
@@ -45,8 +42,3 @@ CONFIG_PCI=y
 CONFIG_PCI_MVEBU=y
 CONFIG_SYS_NS16550=y
 CONFIG_KIRKWOOD_SPI=y
-# CONFIG_USB is not set
-# CONFIG_DM_USB is not set
-# CONFIG_USB_EHCI_HCD is not set
-# CONFIG_USB_STORAGE is not set
-# CONFIG_USB_HOST_ETHER is not set
index deec9f6badd27e93c9f8d3169fdeb673392b139a..d9ec5c7c5ecb5b0c84f31fa15b7145ce9c15c081 100644 (file)
@@ -9,6 +9,7 @@ CONFIG_TARGET_DHCOMIMX6=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SPL=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0x00900000
 CONFIG_SPL_SPI_FLASH_SUPPORT=y
 CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_DISTRO_DEFAULTS=y
@@ -39,7 +40,6 @@ CONFIG_CMD_EXT4_WRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_DWC_AHSATA=y
 CONFIG_BOOTCOUNT_LIMIT=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0x00900000
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_MODE=0
index e2f69eb64e8623e842a0361348d8f963b44b9174..3b793f4500f8c613729a1aec3638628fa3ada18e 100644 (file)
@@ -10,6 +10,8 @@ CONFIG_SPL_MMC_SUPPORT=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SPL=y
+CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0x020CC068
 CONFIG_SPL_SPI_FLASH_SUPPORT=y
 CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_FIT=y
@@ -61,8 +63,6 @@ CONFIG_DEFAULT_DEVICE_TREE="imx6q-display5"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0x020CC068
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_ESDHC=y
 CONFIG_MTD_DEVICE=y
index 3632706f334fc5d466e13f0fcbe5e5dfe9a88484..daaf83a94e8193cdfa66490d792871ec1c53c8d5 100644 (file)
@@ -15,6 +15,7 @@ CONFIG_CMD_I2C=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_DATE=y
+CONFIG_DEFAULT_DEVICE_TREE="eb_cpu5282"
 CONFIG_LED_STATUS=y
 CONFIG_LED_STATUS0=y
 CONFIG_LED_STATUS_BIT=8
index 73c6744e7fe9cb3f3751d408c1f20e0e3018d744..7bd0d30fb606a1fe7e52b7710ad2effa797c8c01 100644 (file)
@@ -14,6 +14,7 @@ CONFIG_CMD_I2C=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_DATE=y
+CONFIG_DEFAULT_DEVICE_TREE="eb_cpu5282_internal"
 CONFIG_LED_STATUS=y
 CONFIG_LED_STATUS0=y
 CONFIG_LED_STATUS_BIT=8
index b99906a4d144e368aeee820f10ebe698d988100f..840c87ac5aeb9f983dcd4db34ed077d5753a01d4 100644 (file)
@@ -32,7 +32,6 @@ CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_DM_PCI_COMPAT=y
-CONFIG_RTC_MC146818=y
 CONFIG_USB_DWC3_GADGET=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Intel"
index fc4b09423cfac641fd4603a8c0702b86f7bf387d..9601b12afa1373e212381e0f5aade390fa21185e 100644 (file)
@@ -5,6 +5,7 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x2000
 CONFIG_ROCKCHIP_RK3368=y
+CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
 CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x40000
 CONFIG_TPL_LIBCOMMON_SUPPORT=y
 CONFIG_TPL_LIBGENERIC_SUPPORT=y
@@ -22,7 +23,6 @@ CONFIG_ANDROID_BOOT_IMAGE=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_SPL_LOAD_FIT=y
-CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.py"
 CONFIG_BOOTSTAGE=y
 CONFIG_SPL_BOOTSTAGE=y
 CONFIG_BOOTSTAGE_REPORT=y
@@ -38,7 +38,6 @@ CONFIG_SPL_STACK_R=y
 CONFIG_SPL_ATF=y
 CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
 CONFIG_TPL=y
-CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
 CONFIG_TPL_BOOTROM_SUPPORT=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_CACHE=y
index 9ee9daa3af8cf25f2899b217259f70019204c108..31c1b1719c020994656c66572ab97d5ad901f878 100644 (file)
@@ -5,7 +5,7 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x800
 CONFIG_ROCKCHIP_RK322X=y
-CONFIG_TPL_ROCKCHIP_BACK_TO_BROM=y
+CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl.lds"
 CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x0
 CONFIG_TARGET_EVB_RK3229=y
 CONFIG_NR_DRAM_BANKS=2
@@ -26,7 +26,6 @@ CONFIG_SPL_TEXT_BASE=0x60000000
 CONFIG_SPL_STACK_R=y
 CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x2000
 CONFIG_SPL_OPTEE=y
-CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl.lds"
 CONFIG_CMD_GPT=y
 CONFIG_CMD_MMC=y
 # CONFIG_CMD_SETEXPR is not set
index e09950637ff9ee38e587656840415da1e0a7b872..4edade457b6dc74f327a03feb279ace0bfcc3286 100644 (file)
@@ -1,17 +1,19 @@
 CONFIG_MIPS=y
 CONFIG_SYS_TEXT_BASE=0x80010000
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0xb000006c
 CONFIG_ARCH_MTMIPS=y
 # CONFIG_MIPS_BOOT_ENV_LEGACY is not set
 CONFIG_MIPS_BOOT_FDT=y
 CONFIG_ENV_VARS_UBOOT_CONFIG=y
-# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_FIT=y
 CONFIG_FIT_SIGNATURE=y
 CONFIG_IMAGE_FORMAT_LEGACY=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_USE_BOOTCOMMAND=y
 CONFIG_BOOTCOMMAND="cp.b 83000000 84000000 10000 && dhcp uEnv.txt && env import -t ${fileaddr} ${filesize} && run do_u_boot_init; reset"
+CONFIG_USE_PREBOOT=y
 CONFIG_SYS_CONSOLE_INFO_QUIET=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_BOARD_EARLY_INIT_F=y
@@ -26,6 +28,7 @@ CONFIG_CMD_GPIO=y
 CONFIG_CMD_MTD=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_SPI=y
+CONFIG_CMD_WDT=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
@@ -42,8 +45,6 @@ CONFIG_NET_RANDOM_ETHADDR=y
 # CONFIG_DM_DEVICE_REMOVE is not set
 CONFIG_HAVE_BLOCK_DEVICE=y
 CONFIG_BOOTCOUNT_LIMIT=y
-CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0xb000006c
 CONFIG_CLK=y
 CONFIG_LED=y
 CONFIG_LED_BLINK=y
index ad0db2e7235d122214309aeef0fc7f0f726afded..707d27092083e2257bc4c835420be17a6dd38ebd 100644 (file)
@@ -1,6 +1,8 @@
 CONFIG_MIPS=y
 CONFIG_SYS_TEXT_BASE=0x9c000000
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0xb000006c
 CONFIG_ARCH_MTMIPS=y
 CONFIG_BOOT_ROM=y
 CONFIG_ONBOARD_DDR2_SIZE_1024MBIT=y
@@ -8,13 +10,13 @@ CONFIG_ONBOARD_DDR2_CHIP_WIDTH_16BIT=y
 # CONFIG_MIPS_BOOT_ENV_LEGACY is not set
 CONFIG_MIPS_BOOT_FDT=y
 CONFIG_ENV_VARS_UBOOT_CONFIG=y
-# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_FIT=y
 CONFIG_FIT_SIGNATURE=y
 CONFIG_IMAGE_FORMAT_LEGACY=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_USE_BOOTCOMMAND=y
 CONFIG_BOOTCOMMAND="cp.b 83000000 84000000 10000 && dhcp uEnv.txt && env import -t ${fileaddr} ${filesize} && run do_u_boot_init; reset"
+CONFIG_USE_PREBOOT=y
 CONFIG_SYS_CONSOLE_INFO_QUIET=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_BOARD_EARLY_INIT_F=y
@@ -29,6 +31,7 @@ CONFIG_CMD_GPIO=y
 CONFIG_CMD_MTD=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_SPI=y
+CONFIG_CMD_WDT=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
@@ -45,8 +48,6 @@ CONFIG_NET_RANDOM_ETHADDR=y
 # CONFIG_DM_DEVICE_REMOVE is not set
 CONFIG_HAVE_BLOCK_DEVICE=y
 CONFIG_BOOTCOUNT_LIMIT=y
-CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0xb000006c
 CONFIG_CLK=y
 CONFIG_LED=y
 CONFIG_LED_BLINK=y
index 346b1b2eaa8aaf595fec7a1827c559c3d4095d23..3a29bb12777f71541099730272eb2e26fd25e4fb 100644 (file)
@@ -131,7 +131,6 @@ CONFIG_CMD_AXI=y
 # CONFIG_CMD_SETEXPR is not set
 # CONFIG_CMD_NFS is not set
 CONFIG_CMD_MII=y
-CONFIG_CMD_MII_DRIVER=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_HASH=y
index 3111451162c1c9c8455ee17d36ab89f44e5ec654..8be881b939bf8eeb78db0975dc497e9c1eb0b3df 100644 (file)
@@ -6,6 +6,7 @@ CONFIG_SYS_VPD_EEPROM_I2C_BUS=4
 CONFIG_SYS_VPD_EEPROM_SIZE=1024
 CONFIG_TARGET_GE_BX50V3=y
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_SYS_BOOTCOUNT_ADDR=0x7000A000
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_FIT=y
 CONFIG_OF_BOARD_SETUP=y
@@ -39,7 +40,6 @@ CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_EXT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=10
 CONFIG_SYS_BOOTCOUNT_EXT_DEVPART="1:5"
-CONFIG_SYS_BOOTCOUNT_ADDR=0x7000A000
 CONFIG_DM_GPIO=y
 CONFIG_DM_MMC=y
 CONFIG_SUPPORT_EMMC_BOOT=y
index 50e6bce80b6974693e941140a9c21d05867fc9b0..68738107891c758d8ae87b218c67d3afe0c76da5 100644 (file)
@@ -4,6 +4,8 @@ CONFIG_SYS_THUMB_BUILD=y
 CONFIG_ARCH_HIGHBANK=y
 CONFIG_SYS_TEXT_BASE=0x00008000
 CONFIG_NR_DRAM_BANKS=0
+CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0xfff3cf0c
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
 CONFIG_OF_BOARD_SETUP=y
@@ -19,8 +21,6 @@ CONFIG_AUTOBOOT_KEYED_CTRLC=y
 CONFIG_ENV_IS_IN_NVRAM=y
 CONFIG_SCSI_AHCI=y
 CONFIG_BOOTCOUNT_LIMIT=y
-CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0xfff3cf0c
 # CONFIG_MMC is not set
 CONFIG_SCSI=y
 CONFIG_CONS_INDEX=0
index bc4c2a91fb213cc014cd3195e6683ed0111392cc..abb409d23efe50af031ed4d6c3880d84fe9dd679 100644 (file)
@@ -54,13 +54,35 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0xE0600000
 CONFIG_LBLAW1_NAME="FPGA0"
 CONFIG_LBLAW1_LENGTH_1_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="FPGA"
+CONFIG_BR1_OR1_BASE=0xE0600000
+CONFIG_BR1_PORTSIZE_16BIT=y
+CONFIG_OR1_AM_1_MBYTES=y
+CONFIG_OR1_XAM_SET=y
+CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR1_XACS_EXTENDED=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_SICR_ETSEC1_A_TSEC_GTX_CLK125=y
-CONFIG_SICR_GPIO_A_GPIO=y
-CONFIG_SICR_GPIO_B_GPIO=y
 CONFIG_SICR_IEEE1588_A_GPIO=y
 CONFIG_SICR_GTM_GPIO=y
 CONFIG_SICR_ETSEC2_GPIO=y
@@ -70,6 +92,8 @@ CONFIG_SICR_TMSOBI2_2_5_V=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_CMD_IOLOOP=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
@@ -105,31 +129,3 @@ CONFIG_TSEC_ENET=y
 CONFIG_CONS_INDEX=2
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="FPGA"
-CONFIG_BR1_OR1_BASE=0xE0600000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_16BIT=y
-CONFIG_OR1_AM_1_MBYTES=y
-CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_SCY_15=y
-CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_XAM_SET=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_2=y
index af93aef1be613898d22ab2d4d0afa135d867640d..6f221a3366d82712bba0cd8a9813e6ae1b2d8132 100644 (file)
@@ -54,13 +54,35 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0xE0600000
 CONFIG_LBLAW1_NAME="FPGA0"
 CONFIG_LBLAW1_LENGTH_1_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="FPGA"
+CONFIG_BR1_OR1_BASE=0xE0600000
+CONFIG_BR1_PORTSIZE_16BIT=y
+CONFIG_OR1_AM_1_MBYTES=y
+CONFIG_OR1_XAM_SET=y
+CONFIG_OR1_SCY_15=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR1_XACS_EXTENDED=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_SICR_ETSEC1_A_TSEC_GTX_CLK125=y
-CONFIG_SICR_GPIO_A_GPIO=y
-CONFIG_SICR_GPIO_B_GPIO=y
 CONFIG_SICR_IEEE1588_A_GPIO=y
 CONFIG_SICR_GTM_GPIO=y
 CONFIG_SICR_ETSEC2_GPIO=y
@@ -70,6 +92,8 @@ CONFIG_SICR_TMSOBI2_2_5_V=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_CMD_IOLOOP=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
@@ -103,31 +127,3 @@ CONFIG_TSEC_ENET=y
 CONFIG_CONS_INDEX=2
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="FPGA"
-CONFIG_BR1_OR1_BASE=0xE0600000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_16BIT=y
-CONFIG_OR1_AM_1_MBYTES=y
-CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_SCY_15=y
-CONFIG_OR1_XACS_EXTENDED=y
-CONFIG_OR1_XAM_SET=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_2=y
index d9b1642671a8861fd9a26ee67f8daae18b70fd90..43454a122b7be2b8c1af60e6eb64338cdcddb829 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xFFF00000
+CONFIG_SYS_BOOTCOUNT_ADDR=0x9
 CONFIG_SYS_CLK_FREQ=66000000
 CONFIG_MPC83xx=y
 CONFIG_HIGH_BATS=y
@@ -71,11 +72,49 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xE3000000
 CONFIG_LBLAW3_NAME="CPLD"
 CONFIG_LBLAW3_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFF800000
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_SCY_10=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="NAND"
+CONFIG_BR1_OR1_BASE=0xE1000000
+CONFIG_BR1_ERRORCHECKING_BOTH=y
+CONFIG_BR1_MACHINE_FCM=y
+CONFIG_OR1_SCY_4=y
+CONFIG_OR1_PGS_LARGE=y
+CONFIG_OR1_CSCT_8_CYCLE=y
+CONFIG_OR1_CST_ONE_CLOCK=y
+CONFIG_OR1_CHT_TWO_CLOCK=y
+CONFIG_OR1_RST_ONE_CLOCK=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="MRAM"
+CONFIG_BR2_OR2_BASE=0xE2000000
+CONFIG_OR2_AM_128_KBYTES=y
+CONFIG_OR2_SCY_7=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_ACS_QUARTER_CYCLE_EARLIER=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="CPLD"
+CONFIG_BR3_OR3_BASE=0xE3000000
+CONFIG_OR3_SCY_1=y
+CONFIG_OR3_CSNT_EARLIER=y
+CONFIG_OR3_TRLX_RELAXED=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_FIT=y
 CONFIG_FIT_SIGNATURE=y
 CONFIG_IMAGE_FORMAT_LEGACY=y
@@ -109,7 +148,6 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=ff800000.flash:7m(dum),768k(BOOT-BIN),128k(BOO
 CONFIG_CMD_UBI=y
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_I2C=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0x9
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -125,50 +163,3 @@ CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_MPC8XXX_SPI=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFF800000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_8BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_10=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="NAND"
-CONFIG_BR1_OR1_BASE=0xE1000000
-CONFIG_BR1_ERRORCHECKING_BOTH=y
-CONFIG_BR1_MACHINE_FCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_PGS_LARGE=y
-CONFIG_OR1_RST_ONE_CLOCK=y
-CONFIG_OR1_SCY_4=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_OR1_CHT_TWO_CLOCK=y
-CONFIG_OR1_CSCT_8_CYCLE=y
-CONFIG_OR1_CST_ONE_CLOCK=y
-CONFIG_OR1_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="MRAM"
-CONFIG_BR2_OR2_BASE=0xE2000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_128_KBYTES=y
-CONFIG_OR2_ACS_QUARTER_CYCLE_EARLIER=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_SCY_7=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="CPLD"
-CONFIG_BR3_OR3_BASE=0xE3000000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_32_KBYTES=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_SCY_1=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_2=y
index e92f1be484fe24c0bc13a73fb7ecb5eb8ecf980e..b65979967a00501dfdc7fe4035b899e084e111d5 100644 (file)
@@ -9,6 +9,8 @@ CONFIG_TARGET_MX6Q_ENGICAM=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SPL=y
+CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0x020D8024
 CONFIG_DEBUG_UART_BASE=0x021f0000
 CONFIG_DEBUG_UART_CLOCK=24000000
 CONFIG_SPL_LIBDISK_SUPPORT=y
@@ -51,8 +53,6 @@ CONFIG_OF_LIST="imx6q-icore imx6dl-icore"
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0x020D8024
 CONFIG_SYS_BOOTCOUNT_MAGIC=0x0B01C041
 CONFIG_SYS_I2C_MXC=y
 CONFIG_FSL_ESDHC=y
index 73831248518347f02c93dcb564bf15a8f7efad6c..bc84a66b5f15040b0cd56a58b8abeaef91962037 100644 (file)
@@ -1,7 +1,7 @@
 CONFIG_ARM=y
-CONFIG_ARCH_IMX8M=y
 CONFIG_SPL_SYS_ICACHE_OFF=y
 CONFIG_SPL_SYS_DCACHE_OFF=y
+CONFIG_ARCH_IMX8M=y
 CONFIG_SYS_TEXT_BASE=0x40200000
 CONFIG_SYS_MALLOC_F_LEN=0x2000
 CONFIG_TARGET_IMX8MQ_EVK=y
index 1a6ce3abf85d663eeeb7aeff7d5a4200b0f6ae9f..1c67b98c5d16928f6de5924d2d1a5faac404ef17 100644 (file)
@@ -1,7 +1,7 @@
 CONFIG_ARM=y
-CONFIG_ARCH_IMX8=y
 CONFIG_SPL_SYS_ICACHE_OFF=y
 CONFIG_SPL_SYS_DCACHE_OFF=y
+CONFIG_ARCH_IMX8=y
 CONFIG_SYS_TEXT_BASE=0x80020000
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
@@ -11,11 +11,11 @@ CONFIG_TARGET_IMX8QM_MEK=y
 CONFIG_SPL_MMC_SUPPORT=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
-CONFIG_SPL=y
 CONFIG_NR_DRAM_BANKS=3
-CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
+CONFIG_SPL=y
 CONFIG_FIT=y
 CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/imx8qm_mek/imximage.cfg"
 CONFIG_BOOTDELAY=3
 CONFIG_LOG=y
index c4a8cf3881a9393d7c698a8bd9241824b0d5ad6e..d735d34b8bc54f7f173afdbbd843f9295bb96deb 100644 (file)
@@ -1,7 +1,7 @@
 CONFIG_ARM=y
-CONFIG_ARCH_IMX8=y
 CONFIG_SPL_SYS_ICACHE_OFF=y
 CONFIG_SPL_SYS_DCACHE_OFF=y
+CONFIG_ARCH_IMX8=y
 CONFIG_SYS_TEXT_BASE=0x80020000
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
index 42439333864c729ca87d2f84d50e6ca2d93cf7b1..7ee4ce44aab565f1df1617cb4cafe45a3fcbaafa 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xfff40000
+CONFIG_SYS_BOOTCOUNT_ADDR=0xFB000020
 CONFIG_MPC85xx=y
 CONFIG_TARGET_KMP204X=y
 CONFIG_FIT=y
@@ -37,7 +38,6 @@ CONFIG_DOS_PARTITION=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0xFB000020
 # CONFIG_MMC is not set
 CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_MODE=0
@@ -48,6 +48,8 @@ CONFIG_PHYLIB=y
 CONFIG_PHY_MARVELL=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index 941efcdf9aa509af6974c0930a23ac604a885277..faeb0c7175af3211b9aecf59c5086d20c272dcac 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xF0000000
+CONFIG_SYS_BOOTCOUNT_ADDR=0xE011BFF8
 CONFIG_SYS_CLK_FREQ=66000000
 CONFIG_MPC83xx=y
 CONFIG_HIGH_BATS=y
@@ -104,6 +105,43 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xA0000000
 CONFIG_LBLAW3_NAME="PAXE"
 CONFIG_LBLAW3_LENGTH_512_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xF0000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_256_MBYTES=y
+CONFIG_OR0_SCY_5=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
+CONFIG_BR1_OR1_BASE=0xE8000000
+CONFIG_OR1_AM_64_MBYTES=y
+CONFIG_OR1_SCY_2=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="PAXE"
+CONFIG_BR3_OR3_BASE=0xA0000000
+CONFIG_OR3_AM_256_MBYTES=y
+CONFIG_OR3_SCY_2=y
+CONFIG_OR3_CSNT_EARLIER=y
+CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR3_TRLX_RELAXED=y
+CONFIG_OR3_EAD_EXTRA=y
+CONFIG_ELBC_BR4_OR4=y
+CONFIG_BR4_OR4_NAME="BFTIC3"
+CONFIG_BR4_OR4_BASE=0xB0000000
+CONFIG_OR4_AM_256_MBYTES=y
+CONFIG_OR4_SCY_2=y
+CONFIG_OR4_CSNT_EARLIER=y
+CONFIG_OR4_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR4_TRLX_RELAXED=y
+CONFIG_OR4_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -111,6 +149,9 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_ACR_APARK_MASTER=y
 CONFIG_ACR_PARKM_USB_I2C1_BOOT=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_EADC_2=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_MISC_INIT_R=y
@@ -138,7 +179,6 @@ CONFIG_CMD_UBI=y
 # CONFIG_CMD_UBIFS is not set
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0xE011BFF8
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -147,51 +187,7 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 # CONFIG_PCI is not set
+CONFIG_QE=y
 CONFIG_SYS_NS16550=y
 CONFIG_BCH=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xF0000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_256_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_5=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
-CONFIG_BR1_OR1_BASE=0xE8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_64_MBYTES=y
-CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_2=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="PAXE"
-CONFIG_BR3_OR3_BASE=0xA0000000
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_256_MBYTES=y
-CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_EAD_EXTRA=y
-CONFIG_OR3_SCY_2=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_ELBC_BR4_OR4=y
-CONFIG_BR4_OR4_NAME="BFTIC3"
-CONFIG_BR4_OR4_BASE=0xB0000000
-CONFIG_BR4_PORTSIZE_8BIT=y
-CONFIG_OR4_AM_256_MBYTES=y
-CONFIG_OR4_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR4_CSNT_EARLIER=y
-CONFIG_OR4_EAD_EXTRA=y
-CONFIG_OR4_SCY_2=y
-CONFIG_OR4_TRLX_RELAXED=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_4=y
-CONFIG_LCRR_EADC_2=y
index 4929a6039b409001cf4e4ffa567de876c4bd84bd..518e9f4229f353dd7d56ec3dfeca205cc8cab282 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xF0000000
+CONFIG_SYS_BOOTCOUNT_ADDR=0xE011BFF8
 CONFIG_SYS_CLK_FREQ=66000000
 CONFIG_MPC83xx=y
 CONFIG_HIGH_BATS=y
@@ -77,6 +78,34 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xA0000000
 CONFIG_LBLAW3_NAME="PAXE"
 CONFIG_LBLAW3_LENGTH_512_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xF0000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_256_MBYTES=y
+CONFIG_OR0_SCY_5=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
+CONFIG_BR1_OR1_BASE=0xE8000000
+CONFIG_OR1_AM_64_MBYTES=y
+CONFIG_OR1_SCY_2=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="PAXE"
+CONFIG_BR3_OR3_BASE=0xA0000000
+CONFIG_OR3_AM_256_MBYTES=y
+CONFIG_OR3_SCY_2=y
+CONFIG_OR3_CSNT_EARLIER=y
+CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR3_TRLX_RELAXED=y
+CONFIG_OR3_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -84,6 +113,9 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_ACR_APARK_MASTER=y
 CONFIG_ACR_PARKM_USB_I2C1_BOOT=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_EADC_2=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_MISC_INIT_R=y
@@ -110,7 +142,6 @@ CONFIG_CMD_UBI=y
 # CONFIG_CMD_UBIFS is not set
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0xE011BFF8
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_MTD_DEVICE=y
@@ -120,40 +151,6 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 # CONFIG_PCI is not set
+CONFIG_QE=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xF0000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_256_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_5=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
-CONFIG_BR1_OR1_BASE=0xE8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_64_MBYTES=y
-CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_2=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="PAXE"
-CONFIG_BR3_OR3_BASE=0xA0000000
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_256_MBYTES=y
-CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_EAD_EXTRA=y
-CONFIG_OR3_SCY_2=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_4=y
-CONFIG_LCRR_EADC_2=y
index 8f02b85eb5cf3bb76a34a91cb17062be712339f8..6675c315eae28e206047ee4530e6ea778601a2c0 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xfff40000
+CONFIG_SYS_BOOTCOUNT_ADDR=0xFB000020
 CONFIG_MPC85xx=y
 CONFIG_TARGET_KMP204X=y
 CONFIG_FIT=y
@@ -37,7 +38,6 @@ CONFIG_DOS_PARTITION=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0xFB000020
 # CONFIG_MMC is not set
 CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_MODE=0
@@ -48,6 +48,8 @@ CONFIG_PHYLIB=y
 CONFIG_PHY_MARVELL=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_FSL_ESPI=y
index afe424b8df8b1819a6a517656a72d231069fcc24..8231ce4d7c9a49f4d22512343a064d4dd3b29a72 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xF0000000
+CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 CONFIG_SYS_CLK_FREQ=66000000
 CONFIG_MPC83xx=y
 CONFIG_HIGH_BATS=y
@@ -92,6 +93,40 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xB0000000
 CONFIG_LBLAW3_NAME="APP2"
 CONFIG_LBLAW3_LENGTH_256_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xF0000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_256_MBYTES=y
+CONFIG_OR0_SCY_5=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
+CONFIG_BR1_OR1_BASE=0xE8000000
+CONFIG_OR1_AM_128_MBYTES=y
+CONFIG_OR1_SCY_2=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="APP1"
+CONFIG_BR2_OR2_BASE=0xA0000000
+CONFIG_OR2_AM_256_MBYTES=y
+CONFIG_OR2_SCY_2=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_ACS_QUARTER_CYCLE_EARLIER=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="APP2"
+CONFIG_BR3_OR3_BASE=0xB0000000
+CONFIG_BR3_PORTSIZE_16BIT=y
+CONFIG_OR3_AM_256_MBYTES=y
+CONFIG_OR3_SCY_4=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -99,6 +134,8 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_ACR_APARK_MASTER=y
 CONFIG_ACR_PARKM_USB_I2C1_BOOT=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_MISC_INIT_R=y
@@ -125,7 +162,6 @@ CONFIG_CMD_UBI=y
 # CONFIG_CMD_UBIFS is not set
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_MTD_DEVICE=y
@@ -135,50 +171,6 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 # CONFIG_PCI is not set
+CONFIG_QE=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xF0000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_256_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_5=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
-CONFIG_BR1_OR1_BASE=0xE8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_128_MBYTES=y
-CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_2=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="APP1"
-CONFIG_BR2_OR2_BASE=0xA0000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_256_MBYTES=y
-CONFIG_OR2_ACS_QUARTER_CYCLE_EARLIER=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_2=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_4_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="APP2"
-CONFIG_BR3_OR3_BASE=0xB0000000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_16BIT=y
-CONFIG_OR3_AM_256_MBYTES=y
-CONFIG_OR3_SCY_4=y
-CONFIG_OR3_EHTR_NORMAL=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_2=y
index 1a78680bd0b5cfdf55a1aea22217aa67ef4e9a12..72931a716f460bcd7eb1931a302208330153311b 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xF0000000
+CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 CONFIG_SYS_CLK_FREQ=66000000
 CONFIG_MPC83xx=y
 CONFIG_HIGH_BATS=y
@@ -78,6 +79,34 @@ CONFIG_LBLAW2=y
 CONFIG_LBLAW2_BASE=0xA0000000
 CONFIG_LBLAW2_NAME="APP1"
 CONFIG_LBLAW2_LENGTH_256_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xF0000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_256_MBYTES=y
+CONFIG_OR0_SCY_5=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
+CONFIG_BR1_OR1_BASE=0xE8000000
+CONFIG_OR1_AM_128_MBYTES=y
+CONFIG_OR1_SCY_2=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="APP1"
+CONFIG_BR2_OR2_BASE=0xA0000000
+CONFIG_OR2_AM_256_MBYTES=y
+CONFIG_OR2_SCY_2=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_ACS_QUARTER_CYCLE_EARLIER=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -85,6 +114,8 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_ACR_APARK_MASTER=y
 CONFIG_ACR_PARKM_USB_I2C1_BOOT=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_MISC_INIT_R=y
@@ -111,7 +142,6 @@ CONFIG_CMD_UBI=y
 # CONFIG_CMD_UBIFS is not set
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_MTD_DEVICE=y
@@ -121,42 +151,6 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 # CONFIG_PCI is not set
+CONFIG_QE=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xF0000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_256_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_5=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
-CONFIG_BR1_OR1_BASE=0xE8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_128_MBYTES=y
-CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_2=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="APP1"
-CONFIG_BR2_OR2_BASE=0xA0000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_256_MBYTES=y
-CONFIG_OR2_ACS_QUARTER_CYCLE_EARLIER=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_2=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_4_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_2=y
index d874149fe366c61c0b4017d8b05be349af769911..14f7c2f8ceb4d60ed4a5744dea8ef217a042757f 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xF0000000
+CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 CONFIG_SYS_CLK_FREQ=66000000
 CONFIG_MPC83xx=y
 CONFIG_HIGH_BATS=y
@@ -79,6 +80,31 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xB0000000
 CONFIG_LBLAW3_NAME="APP2"
 CONFIG_LBLAW3_LENGTH_256_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xF0000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_256_MBYTES=y
+CONFIG_OR0_SCY_5=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
+CONFIG_BR1_OR1_BASE=0xE8000000
+CONFIG_OR1_AM_128_MBYTES=y
+CONFIG_OR1_SCY_2=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="APP2"
+CONFIG_BR3_OR3_BASE=0xB0000000
+CONFIG_BR3_PORTSIZE_16BIT=y
+CONFIG_OR3_AM_256_MBYTES=y
+CONFIG_OR3_SCY_5=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -86,6 +112,8 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_ACR_APARK_MASTER=y
 CONFIG_ACR_PARKM_USB_I2C1_BOOT=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_SYS_EXTRA_OPTIONS="KMTEGR1"
@@ -115,7 +143,6 @@ CONFIG_CMD_UBI=y
 # CONFIG_CMD_UBIFS is not set
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
@@ -124,39 +151,8 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 # CONFIG_PCI is not set
+CONFIG_QE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_BCH=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xF0000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_256_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_5=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
-CONFIG_BR1_OR1_BASE=0xE8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_128_MBYTES=y
-CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_2=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="APP2"
-CONFIG_BR3_OR3_BASE=0xB0000000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_16BIT=y
-CONFIG_OR3_AM_256_MBYTES=y
-CONFIG_OR3_SCY_5=y
-CONFIG_OR3_EHTR_NORMAL=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_2=y
index 32d098028a795175986be28a9457503b932f9676..42fbbbbac3b2b58f421d4c30919fe82ca5e9f150 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xF0000000
+CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 CONFIG_SYS_CLK_FREQ=66000000
 CONFIG_MPC83xx=y
 CONFIG_HIGH_BATS=y
@@ -92,6 +93,40 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xB0000000
 CONFIG_LBLAW3_NAME="APP2"
 CONFIG_LBLAW3_LENGTH_256_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xF0000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_256_MBYTES=y
+CONFIG_OR0_SCY_5=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
+CONFIG_BR1_OR1_BASE=0xE8000000
+CONFIG_OR1_AM_128_MBYTES=y
+CONFIG_OR1_SCY_2=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="APP1"
+CONFIG_BR2_OR2_BASE=0xA0000000
+CONFIG_OR2_AM_256_MBYTES=y
+CONFIG_OR2_SCY_2=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_ACS_QUARTER_CYCLE_EARLIER=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="APP2"
+CONFIG_BR3_OR3_BASE=0xB0000000
+CONFIG_BR3_PORTSIZE_16BIT=y
+CONFIG_OR3_AM_256_MBYTES=y
+CONFIG_OR3_SCY_4=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -99,6 +134,8 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_ACR_APARK_MASTER=y
 CONFIG_ACR_PARKM_USB_I2C1_BOOT=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_MISC_INIT_R=y
@@ -125,7 +162,6 @@ CONFIG_CMD_UBI=y
 # CONFIG_CMD_UBIFS is not set
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_MTD_DEVICE=y
@@ -135,50 +171,6 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 # CONFIG_PCI is not set
+CONFIG_QE=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xF0000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_256_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_5=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
-CONFIG_BR1_OR1_BASE=0xE8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_128_MBYTES=y
-CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_2=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="APP1"
-CONFIG_BR2_OR2_BASE=0xA0000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_256_MBYTES=y
-CONFIG_OR2_ACS_QUARTER_CYCLE_EARLIER=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_2=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_4_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="APP2"
-CONFIG_BR3_OR3_BASE=0xB0000000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_16BIT=y
-CONFIG_OR3_AM_256_MBYTES=y
-CONFIG_OR3_SCY_4=y
-CONFIG_OR3_EHTR_NORMAL=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_2=y
index 26d9a7cf7af3ec04b80ab1bfb9252cce36f31270..6f2f7329a279f6544b11ee8c2fe0275f17e1cf65 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xF0000000
+CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 CONFIG_SYS_CLK_FREQ=66000000
 CONFIG_MPC83xx=y
 CONFIG_HIGH_BATS=y
@@ -93,6 +94,40 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xB0000000
 CONFIG_LBLAW3_NAME="APP2"
 CONFIG_LBLAW3_LENGTH_256_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xF0000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_256_MBYTES=y
+CONFIG_OR0_SCY_5=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
+CONFIG_BR1_OR1_BASE=0xE8000000
+CONFIG_OR1_AM_128_MBYTES=y
+CONFIG_OR1_SCY_2=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="APP1"
+CONFIG_BR2_OR2_BASE=0xA0000000
+CONFIG_BR2_PORTSIZE_16BIT=y
+CONFIG_BR2_MACHINE_UPMA=y
+CONFIG_OR2_AM_256_MBYTES=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="APP2"
+CONFIG_BR3_OR3_BASE=0xB0000000
+CONFIG_BR3_PORTSIZE_16BIT=y
+CONFIG_OR3_AM_256_MBYTES=y
+CONFIG_OR3_SCY_3=y
+CONFIG_OR3_CSNT_EARLIER=y
+CONFIG_OR3_ACS_QUARTER_CYCLE_EARLIER=y
+CONFIG_OR3_TRLX_RELAXED=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -100,6 +135,8 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_ACR_APARK_MASTER=y
 CONFIG_ACR_PARKM_USB_I2C1_BOOT=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_SYS_EXTRA_OPTIONS="KMVECT1"
@@ -128,7 +165,6 @@ CONFIG_CMD_UBI=y
 # CONFIG_CMD_UBIFS is not set
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_MTD_DEVICE=y
@@ -138,45 +174,7 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 # CONFIG_PCI is not set
+CONFIG_QE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xF0000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_256_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_5=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
-CONFIG_BR1_OR1_BASE=0xE8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_128_MBYTES=y
-CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_2=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="APP1"
-CONFIG_BR2_OR2_BASE=0xA0000000
-CONFIG_BR2_MACHINE_UPMA=y
-CONFIG_BR2_PORTSIZE_16BIT=y
-CONFIG_OR2_AM_256_MBYTES=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="APP2"
-CONFIG_BR3_OR3_BASE=0xB0000000
-CONFIG_BR3_PORTSIZE_16BIT=y
-CONFIG_OR3_AM_256_MBYTES=y
-CONFIG_OR3_ACS_QUARTER_CYCLE_EARLIER=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_SCY_3=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_2=y
index f6a18748a936de68a0942d3208786a7d10cff066..921af0d4761a879c499326cade363117d4523ee8 100644 (file)
@@ -7,11 +7,11 @@ CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_ROCKCHIP_RK3036=y
 CONFIG_TARGET_KYLIN_RK3036=y
 CONFIG_SPL_SYS_MALLOC_F_LEN=0x0
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_SPL_STACK_R_ADDR=0x80000
 CONFIG_DEBUG_UART_BASE=0x20068000
 CONFIG_DEBUG_UART_CLOCK=24000000
-CONFIG_SPL_STACK_R_ADDR=0x80000
 CONFIG_DEBUG_UART=y
-CONFIG_NR_DRAM_BANKS=1
 # CONFIG_ANDROID_BOOT_IMAGE is not set
 CONFIG_DEFAULT_FDT_FILE="rk3036-kylin.dtb"
 # CONFIG_DISPLAY_CPUINFO is not set
index c2502b27139dacf05acbe3cde97e6b77052d76c5..7d7cdf04eaabb77e66427ccb924365b42519ef47 100644 (file)
@@ -5,7 +5,6 @@ CONFIG_ARCH_MTMIPS=y
 CONFIG_BOARD_LINKIT_SMART_7688=y
 # CONFIG_MIPS_BOOT_ENV_LEGACY is not set
 CONFIG_MIPS_BOOT_FDT=y
-# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_FIT=y
 CONFIG_FIT_SIGNATURE=y
 CONFIG_IMAGE_FORMAT_LEGACY=y
index fba1bfd653cbdbb361032d7a670c1269baf4dd22..b3acbbc2c73586d2c03033264def075296065bb1 100644 (file)
@@ -8,7 +8,6 @@ CONFIG_ONBOARD_DDR2_SIZE_1024MBIT=y
 CONFIG_ONBOARD_DDR2_CHIP_WIDTH_16BIT=y
 # CONFIG_MIPS_BOOT_ENV_LEGACY is not set
 CONFIG_MIPS_BOOT_FDT=y
-# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_FIT=y
 CONFIG_FIT_SIGNATURE=y
 CONFIG_IMAGE_FORMAT_LEGACY=y
diff --git a/configs/ls1028aqds_tfa_defconfig b/configs/ls1028aqds_tfa_defconfig
new file mode 100644 (file)
index 0000000..717b810
--- /dev/null
@@ -0,0 +1,64 @@
+CONFIG_ARM=y
+CONFIG_TARGET_LS1028AQDS=y
+CONFIG_SYS_FSL_SDHC_CLK_DIV=1
+CONFIG_TFABOOT=y
+CONFIG_NR_DRAM_BANKS=2
+CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT=y
+CONFIG_SEC_FIRMWARE_ARMV8_PSCI=y
+CONFIG_AHCI=y
+CONFIG_DISTRO_DEFAULTS=y
+# CONFIG_SYS_MALLOC_F is not set
+CONFIG_FIT_VERBOSE=y
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_BOOTDELAY=10
+CONFIG_USE_BOOTARGS=y
+CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 ramdisk_size=0x2000000 default_hugepagesz=2m hugepagesz=2m hugepages=256 video=1920x1080-32@60 cma=256M"
+CONFIG_CMD_GREPENV=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
+CONFIG_CMD_SF=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_WDT=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_CACHE=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1028a-qds"
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_ENV_IS_IN_SPI_FLASH=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_NETCONSOLE=y
+CONFIG_DM=y
+CONFIG_SCSI_AHCI=y
+CONFIG_SATA_CEVA=y
+CONFIG_FSL_CAAM=y
+CONFIG_DM_MMC=y
+CONFIG_DM_SPI_FLASH=y
+CONFIG_SPI_FLASH=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_STMICRO=y
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
+CONFIG_PHYLIB=y
+CONFIG_PHY_ATHEROS=y
+CONFIG_DM_ETH=y
+CONFIG_PHY_GIGE=y
+CONFIG_E1000=y
+CONFIG_PCI=y
+CONFIG_DM_PCI=y
+CONFIG_DM_PCI_COMPAT=y
+CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SCSI=y
+CONFIG_DM_SCSI=y
+CONFIG_SYS_NS16550=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_FSL_DSPI=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
+CONFIG_WDT=y
+CONFIG_WDT_SP805=y
+CONFIG_EFI_LOADER_BOUNCE_BUFFER=y
diff --git a/configs/ls1028ardb_tfa_defconfig b/configs/ls1028ardb_tfa_defconfig
new file mode 100644 (file)
index 0000000..a8e4ddb
--- /dev/null
@@ -0,0 +1,64 @@
+CONFIG_ARM=y
+CONFIG_TARGET_LS1028ARDB=y
+CONFIG_SYS_FSL_SDHC_CLK_DIV=1
+CONFIG_TFABOOT=y
+CONFIG_NR_DRAM_BANKS=2
+CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT=y
+CONFIG_SEC_FIRMWARE_ARMV8_PSCI=y
+CONFIG_AHCI=y
+CONFIG_DISTRO_DEFAULTS=y
+# CONFIG_SYS_MALLOC_F is not set
+CONFIG_FIT_VERBOSE=y
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_BOOTDELAY=10
+CONFIG_USE_BOOTARGS=y
+CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 ramdisk_size=0x2000000 default_hugepagesz=2m hugepagesz=2m hugepages=256 video=1920x1080-32@60 cma=256M"
+CONFIG_CMD_GREPENV=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
+CONFIG_CMD_SF=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_WDT=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_CACHE=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1028a-rdb"
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_ENV_IS_IN_SPI_FLASH=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_NETCONSOLE=y
+CONFIG_DM=y
+CONFIG_SCSI_AHCI=y
+CONFIG_SATA_CEVA=y
+CONFIG_FSL_CAAM=y
+CONFIG_DM_MMC=y
+CONFIG_DM_SPI_FLASH=y
+CONFIG_SPI_FLASH=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_STMICRO=y
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
+CONFIG_PHYLIB=y
+CONFIG_PHY_ATHEROS=y
+CONFIG_DM_ETH=y
+CONFIG_PHY_GIGE=y
+CONFIG_E1000=y
+CONFIG_PCI=y
+CONFIG_DM_PCI=y
+CONFIG_DM_PCI_COMPAT=y
+CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SCSI=y
+CONFIG_DM_SCSI=y
+CONFIG_SYS_NS16550=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_FSL_DSPI=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
+CONFIG_WDT=y
+CONFIG_WDT_SP805=y
+CONFIG_EFI_LOADER_BOUNCE_BUFFER=y
index f700b5189e2660dfd9125cf7cc2245afdba19fc9..65b2dd18f94f3da40ffb3646028dfbb11fe577c2 100644 (file)
@@ -42,10 +42,12 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index 99b05a36d888b4cd2659b3faed9bf37df835756e..51fc761f459c8e7cd14cb10c203ba413ef37a7ae 100644 (file)
@@ -43,10 +43,12 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_DM_SCSI=y
 CONFIG_DM_SERIAL=y
 CONFIG_FSL_LPUART=y
index 6ba95bcb531d3a70a096431f08991939ef751a96..fcd117d6da5eeb53d7175e40fc072318327cfa74 100644 (file)
@@ -58,10 +58,12 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index 631ba8f51787fbee37d48a059f188ac43e34bf6b..65734f5cda7acb29d367a0d5ee4901ca467c0fbd 100644 (file)
@@ -43,10 +43,12 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index 1d688633e79324a6afb245e2f7668ffe34738cc4..ff37969748a84dd086356202ec739627f8e7c8e6 100644 (file)
@@ -37,10 +37,12 @@ CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index dd711282b410aae6336b3eacabbf2137b3875db1..0459cc83fffaa35367c955f396100d889a76becb 100644 (file)
@@ -58,10 +58,12 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index cc86b1f8d1edaa128d95a6e02639ef3a73735919..a52aa54c4680084edf7968b37d057d1a446b14ab 100644 (file)
@@ -51,10 +51,12 @@ CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index 0bc111e4a34278e6bf4779be166258998e22851a..16ba82db78a5e4d76c1d5b76ee6118d00e2e0c6c 100644 (file)
@@ -43,6 +43,7 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
index 2c079e75d6d46998c32fd9e73becf5fe97698c3c..19529f58bf34e20f4262b73f544736dc65ce5a64 100644 (file)
@@ -49,6 +49,7 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
index 4700a27a223d29d9d1d010b1c76ba123f53c6d6a..57791a748e4c8022c288d189d1b05ae8a197b447 100644 (file)
@@ -35,10 +35,12 @@ CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
index 12aca071d9cf95c2899250baf9c21fb6d979a89f..49d498ae80e2a41f9e1dc41a7af48400201a90d4 100644 (file)
@@ -36,10 +36,12 @@ CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
index 9d96d22323f330fa0380f8201792f513091ee79d..0a8a3659a070d3e28b6c73839f3f566292fd74e1 100644 (file)
@@ -54,10 +54,12 @@ CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
index a94c7b782cca1f39164e5d8ecdddf12ed249d713..6daa82ff40bd8c4ed6014b6a221532659ef3865f 100644 (file)
@@ -54,10 +54,12 @@ CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
index 90f3d251beafe40578426bafeab629ce32b4899d..4d9138f4de6b66cf476b23502a83bd126b9d6b01 100644 (file)
@@ -52,10 +52,12 @@ CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
index 418215ee9c2b33cffbffd00fa52c1d0b34d5d1af..9e71d0306387af83bc82e4597bac4aaa43ff555a 100644 (file)
@@ -52,10 +52,12 @@ CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
index 22166996d6d1a16177893a2cefe3ac3ecc8dd7d2..2f80e71d9ae5edc5f7b5d700a6ad893560cdc02b 100644 (file)
@@ -37,6 +37,7 @@ CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
index 9e9743176b4a3d9fa03565b7f7eec9fb9bafbad3..80cc2b9593d8052a22b41b19a5c32e149c5c4e85 100644 (file)
@@ -40,6 +40,7 @@ CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
index 2581e6dac420dadffa33a017a1b40be71f353e17..e863c973076371a6de6dedb2a7d0b8743a7c9d9d 100644 (file)
@@ -42,10 +42,12 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index 3d6e5c00210161de73ee69a91c232a34e1b43b1c..30f9d8229148d57da8c9a1ea2de25c89fbc9db5d 100644 (file)
@@ -43,10 +43,12 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index a7c5392f8ad2051d07834eb7f9daf81c0eef8b97..a2381b79527691e37ddf6820e0cd50bd17b6b630 100644 (file)
@@ -44,10 +44,12 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NOR=y
 CONFIG_DM_SCSI=y
 CONFIG_DM_SERIAL=y
 CONFIG_FSL_LPUART=y
index 18dcc9f204270bdc1be1d946e59910cf0f4fbab8..ddb83fc85585c960f4258b5796637d22b333f816 100644 (file)
@@ -51,10 +51,12 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_NAND=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index 1d92bec98b56bc88972097d320c8d4955a504eb8..7c0b0d3c23d40c7f7cede56c611a06df52762d86 100644 (file)
@@ -10,7 +10,7 @@ CONFIG_OF_BOARD_SETUP=y
 CONFIG_QSPI_BOOT=y
 CONFIG_BOOTDELAY=10
 CONFIG_USE_BOOTARGS=y
-CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.quadspi:2m(uboot),14m(free)"
+CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.spi-0:2m(uboot),14m(free)"
 # CONFIG_USE_BOOTCOMMAND is not set
 CONFIG_MISC_INIT_R=y
 CONFIG_CMD_BOOTZ=y
@@ -25,7 +25,7 @@ CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
 CONFIG_MP=y
-CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.quadspi:2m(uboot),14m(free)"
+CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.spi-0:2m(uboot),14m(free)"
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1046a-qds-duart"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
@@ -35,13 +35,16 @@ CONFIG_FSL_CAAM=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index 28ceabc31e8367da1a1d26283b124efb427c2f34..10fd8b3e674d3d58d2d37cf423f28df65e2b7e72 100644 (file)
@@ -60,10 +60,12 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index 2b11a38c3c87d005ae1bdf485ebab47f3d029266..0f256d752f51d7dc67c0cfba01f238ec92c70b73 100644 (file)
@@ -17,7 +17,7 @@ CONFIG_SYS_EXTRA_OPTIONS="RAMBOOT_PBL,SPL_FSL_PBL,SD_BOOT_QSPI"
 CONFIG_SD_BOOT=y
 CONFIG_BOOTDELAY=10
 CONFIG_USE_BOOTARGS=y
-CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.quadspi:2m(uboot),14m(free)"
+CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.spi-0:2m(uboot),14m(free)"
 # CONFIG_USE_BOOTCOMMAND is not set
 CONFIG_MISC_INIT_R=y
 CONFIG_SPL_TEXT_BASE=0x10000000
@@ -40,7 +40,7 @@ CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
 CONFIG_MP=y
-CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.quadspi:2m(uboot),14m(free)"
+CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.spi-0:2m(uboot),14m(free)"
 # CONFIG_SPL_EFI_PARTITION is not set
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1046a-qds-duart"
@@ -51,13 +51,16 @@ CONFIG_FSL_CAAM=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index 39589fd8907320fe42641846e0e07bbc8305b92e..0dbc7704804ab385d15d0b36a068a46e07795130 100644 (file)
@@ -44,6 +44,7 @@ CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
index 763ddee09a3b5960f8eb0b61fe722e67af052141..17f3ba189014bcee20536b4ccf36dffedac9fd63 100644 (file)
@@ -48,8 +48,10 @@ CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_BUS=1
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_PHYLIB=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
index 9b6e56dc0a1264ca991c024886219d6cd8466817..2c7cc09f80d87fc09796273a91bfa4c1d3c390f5 100644 (file)
@@ -17,7 +17,7 @@ CONFIG_SYS_EXTRA_OPTIONS="RAMBOOT_PBL,SPL_FSL_PBL,EMMC_BOOT"
 CONFIG_SD_BOOT=y
 CONFIG_BOOTDELAY=10
 CONFIG_USE_BOOTARGS=y
-CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 # CONFIG_USE_BOOTCOMMAND is not set
 CONFIG_MISC_INIT_R=y
 CONFIG_SPL_TEXT_BASE=0x10000000
@@ -37,7 +37,7 @@ CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
 CONFIG_MP=y
-CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 # CONFIG_SPL_EFI_PARTITION is not set
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1046a-rdb"
@@ -48,13 +48,16 @@ CONFIG_FSL_CAAM=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index 352275618df761a8a3328b46512b40528071029d..dd784459b3f386a0801d347d7e2c1dbcccd3b686 100644 (file)
@@ -12,7 +12,7 @@ CONFIG_OF_BOARD_SETUP=y
 CONFIG_QSPI_BOOT=y
 CONFIG_BOOTDELAY=10
 CONFIG_USE_BOOTARGS=y
-CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 CONFIG_MISC_INIT_R=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
@@ -23,7 +23,7 @@ CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
 CONFIG_MP=y
-CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1046a-rdb"
 CONFIG_DM=y
@@ -31,14 +31,17 @@ CONFIG_SATA_CEVA=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index a4ba4ca78b6b3cc409467682becc1231fcf536c8..ef5e73dd28dd05d9b1e3b67d210ba735fe6c5ad9 100644 (file)
@@ -11,7 +11,7 @@ CONFIG_OF_BOARD_SETUP=y
 CONFIG_QSPI_BOOT=y
 CONFIG_BOOTDELAY=10
 CONFIG_USE_BOOTARGS=y
-CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 CONFIG_MISC_INIT_R=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
@@ -22,7 +22,7 @@ CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
 CONFIG_MP=y
-CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1046a-rdb"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
@@ -32,14 +32,17 @@ CONFIG_FSL_CAAM=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index f78786ae72f2f673d97838c4424f08b253cac846..a4038b8d2975c4e0abd75ca59ea6bcc3909a25fb 100644 (file)
@@ -18,7 +18,7 @@ CONFIG_OF_BOARD_SETUP=y
 CONFIG_QSPI_BOOT=y
 CONFIG_BOOTDELAY=10
 CONFIG_USE_BOOTARGS=y
-CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 CONFIG_MISC_INIT_R=y
 CONFIG_SPL_TEXT_BASE=0x10000000
 CONFIG_SPL_BOARD_INIT=y
@@ -39,7 +39,7 @@ CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
 CONFIG_MP=y
-CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 # CONFIG_SPL_EFI_PARTITION is not set
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1046a-rdb"
@@ -51,13 +51,16 @@ CONFIG_FSL_CAAM=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index 5afe6447c1904b74f556789ce977e2dabd17251c..2d7ace61ae26b363a188e78525363a0f55bd6c4b 100644 (file)
@@ -17,7 +17,7 @@ CONFIG_SYS_EXTRA_OPTIONS="RAMBOOT_PBL,SPL_FSL_PBL"
 CONFIG_SD_BOOT=y
 CONFIG_BOOTDELAY=10
 CONFIG_USE_BOOTARGS=y
-CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 CONFIG_MISC_INIT_R=y
 CONFIG_SPL_TEXT_BASE=0x10000000
 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
@@ -37,7 +37,7 @@ CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
 CONFIG_MP=y
-CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 # CONFIG_SPL_EFI_PARTITION is not set
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1046a-rdb"
@@ -45,13 +45,16 @@ CONFIG_DM=y
 CONFIG_SPL_DM=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
index bf5e1a062c9abc34892b2a022eec1ae13f1d0118..b70a82b49184f70291562e90fa50e1ff37fa42ff 100644 (file)
@@ -17,7 +17,7 @@ CONFIG_SYS_EXTRA_OPTIONS="RAMBOOT_PBL,SPL_FSL_PBL"
 CONFIG_SD_BOOT=y
 CONFIG_BOOTDELAY=10
 CONFIG_USE_BOOTARGS=y
-CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 CONFIG_MISC_INIT_R=y
 CONFIG_SPL_TEXT_BASE=0x10000000
 CONFIG_SPL_BOARD_INIT=y
@@ -36,7 +36,7 @@ CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
 CONFIG_MP=y
-CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 # CONFIG_SPL_EFI_PARTITION is not set
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1046a-rdb"
@@ -47,13 +47,16 @@ CONFIG_FSL_CAAM=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCIE_LAYERSCAPE=y
+CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
index 29fddef8f4e2b771df004ac224caafcc756c4cb9..136572543548e9af270b69c662c9dbd2e9afa7d0 100644 (file)
@@ -13,7 +13,7 @@ CONFIG_FIT_VERBOSE=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_BOOTDELAY=10
 CONFIG_USE_BOOTARGS=y
-CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 CONFIG_MISC_INIT_R=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
@@ -24,7 +24,7 @@ CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
 CONFIG_MP=y
-CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1046a-rdb"
 CONFIG_DM=y
@@ -32,10 +32,12 @@ CONFIG_SATA_CEVA=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
index 8d571725a299596620ab44eb6eafb0ac8a524d8e..816c628beb4e073237832603734f09751e8ed830 100644 (file)
@@ -12,7 +12,7 @@ CONFIG_FIT_VERBOSE=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_BOOTDELAY=10
 CONFIG_USE_BOOTARGS=y
-CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 CONFIG_MISC_INIT_R=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
@@ -23,7 +23,7 @@ CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
 CONFIG_MP=y
-CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.quadspi:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
+CONFIG_MTDPARTS_DEFAULT="mtdparts=1550000.spi-0:1m(rcw),15m(u-boot),48m(kernel.itb);7e800000.flash:16m(nand_uboot),48m(nand_kernel),448m(nand_free)"
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1046a-rdb"
 CONFIG_ENV_IS_IN_MMC=y
@@ -34,10 +34,12 @@ CONFIG_FSL_CAAM=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
+CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
index bd22aa040097fcf7ea99a6ef2452a091aac9bba7..bb90ed7549fb3dc1933b5cdca930a0653f944635 100644 (file)
@@ -35,6 +35,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_E1000=y
index 8fb8babdd701706afbc40f0bd5a3d1fd6a988840..8aeca657e86999efe2d655dfd579f6f5a9100c28 100644 (file)
@@ -35,6 +35,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_E1000=y
index 186e309b6460653fd38ac3531a1e962e191b5e95..5b5cbfa5d612cb8f3c995f7dc583c7af47285e60 100644 (file)
@@ -46,6 +46,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_E1000=y
index fbbb212809c8f7088b0735ae7f202eb3b9eafd36..ff820a5cc68f1c4ff9fe238deb410f2082d79993 100644 (file)
@@ -44,6 +44,7 @@ CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_E1000=y
index 60e8a0ba2a057b9aa61f85837f4147ec486ecc6f..265303c356c7621a44092c79b41ff06ca3127274 100644 (file)
@@ -36,6 +36,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_E1000=y
index 7844c840ee64a37ff1fcb2e3739442b50fd40a88..6dd9df2dc1ad3b5159c17a1365c28ebb3d4fbc1d 100644 (file)
@@ -36,6 +36,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_E1000=y
index 3a0c55566e7ef314f3a26bec718b4d34ae121548..3d531295aeb4180137facdeafcd9b70c30baf0e2 100644 (file)
@@ -47,6 +47,7 @@ CONFIG_SCSI_AHCI=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_E1000=y
index 15d690240d2724cfcc7e093d29af3af2d09d7b22..51b74e7c351dcc6af3f84d0e42380093a006e5e6 100644 (file)
@@ -47,6 +47,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_E1000=y
index bf309b80975574798ee6df0144a1cedddb242a36..3c4437dffa7471f5c2baee9990b1cb786f768284 100644 (file)
@@ -38,6 +38,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_E1000=y
index 9911dc181c6ac0d943434aaa1a572917b8a87312..8cea8c7a24e1b5b74e3db7f6b2e22cf0cd9c3524 100644 (file)
@@ -39,6 +39,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_E1000=y
index 48dbf62a356a806c8f6918b4e02ede363d370523..3a3694107dc9c003e3f7a7a208218b1e76554a52 100644 (file)
@@ -49,6 +49,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
index 0a84512d84a0c2eff261f87044a45aa1f306066a..53abf71bbd3b0b54c9ed511897f5516e3539d182 100644 (file)
@@ -39,6 +39,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
index 651e45b573933f3f377b1a2bdaefc4929f997a46..9d1715f03f60c977e16fb24a55adff31c7206a51 100644 (file)
@@ -47,6 +47,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_PHYLIB=y
 CONFIG_PHY_GIGE=y
 CONFIG_E1000=y
index 2941766627d63d98b296ca093942c475e209bb16..c92121e6d3ddfe9f5dcb43326878608a94dfe1e9 100644 (file)
@@ -41,6 +41,7 @@ CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPI_FLASH=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_E1000=y
index 240da827260ec017f3077ec335e7350144525085..d4b5d87e6690a65333d6720def26a185f7edb584 100644 (file)
@@ -32,6 +32,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_PHYLIB=y
index d729668b63e47d229442c804bf124e99c3d98bbe..a38ec3da3e311cd25a88b0f50f5eab791d79ac65 100644 (file)
@@ -36,6 +36,7 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_PHYLIB=y
index 1cffc2e5b33b7a918c74f9ca5bec47ffa686a2f2..d3312c60fd62114c0c8e1190cb1850ec811637eb 100644 (file)
@@ -44,6 +44,7 @@ CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
index 655a23a399805f1a37ad2ae32e35254a2c9c4589..1aa8dd9a5919222eddf95fddf7d31e0fa0416f90 100644 (file)
@@ -47,6 +47,7 @@ CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
 CONFIG_SPI_FLASH_SPANSION=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_PHYLIB=y
index bc9985f01cf9d3b67c9b31fc4e625f7d3fa77412..a6a253f4f524717d2f8f7cf5d4e8c89324bc58a8 100644 (file)
@@ -19,6 +19,7 @@ CONFIG_CMD_EEPROM=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
@@ -43,6 +44,10 @@ CONFIG_PHY_CORTINA=y
 CONFIG_PHY_REALTEK=y
 CONFIG_PHY_VITESSE=y
 CONFIG_E1000=y
+CONFIG_PCI=y
+CONFIG_DM_PCI=y
+CONFIG_DM_PCI_COMPAT=y
+CONFIG_PCIE_LAYERSCAPE_GEN4=y
 CONFIG_DM_SCSI=y
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
index 15c66a4f9abb9aa86dde3e0bf8be97e75d3a7109..d68b40de3f66bfe51e16a4c9aea9f947f9966d04 100644 (file)
@@ -19,6 +19,7 @@ CONFIG_CMD_EEPROM=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
@@ -42,6 +43,11 @@ CONFIG_PHY_AQUANTIA=y
 CONFIG_PHY_CORTINA=y
 CONFIG_PHY_REALTEK=y
 CONFIG_PHY_VITESSE=y
+CONFIG_E1000=y
+CONFIG_PCI=y
+CONFIG_DM_PCI=y
+CONFIG_DM_PCI_COMPAT=y
+CONFIG_PCIE_LAYERSCAPE_GEN4=y
 CONFIG_DM_SCSI=y
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
index 82408450c27a10f8935735b5d9c761a5d55cec15..5cb29fd9cafa23305a2796575d8848e57b513b39 100644 (file)
@@ -20,6 +20,7 @@ CONFIG_CMD_EEPROM=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
@@ -41,6 +42,10 @@ CONFIG_PHY_AQUANTIA=y
 CONFIG_PHY_ATHEROS=y
 CONFIG_PHY_CORTINA=y
 CONFIG_E1000=y
+CONFIG_PCI=y
+CONFIG_DM_PCI=y
+CONFIG_DM_PCI_COMPAT=y
+CONFIG_PCIE_LAYERSCAPE_GEN4=y
 CONFIG_DM_SCSI=y
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
index 1dc4ada526a1d87baa0140bdae5381b4df40645a..94f58a832fb95865493036056a50ca94e88ad2fc 100644 (file)
@@ -20,6 +20,7 @@ CONFIG_CMD_EEPROM=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
@@ -42,6 +43,11 @@ CONFIG_PHYLIB=y
 CONFIG_PHY_AQUANTIA=y
 CONFIG_PHY_ATHEROS=y
 CONFIG_PHY_CORTINA=y
+CONFIG_E1000=y
+CONFIG_PCI=y
+CONFIG_DM_PCI=y
+CONFIG_DM_PCI_COMPAT=y
+CONFIG_PCIE_LAYERSCAPE_GEN4=y
 CONFIG_DM_SCSI=y
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
index e5f8c9e8dc7e07eb7564103695fb00cae5e8810c..0e5fa01fde2a1362b0a77090b1c231ce9fa534b7 100644 (file)
@@ -8,6 +8,8 @@ CONFIG_TARGET_M53MENLO=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_NR_DRAM_BANKS=2
 CONFIG_SPL=y
+CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0x53FA401C
 # CONFIG_CMD_BMODE is not set
 CONFIG_FIT=y
 CONFIG_OF_BOARD_SETUP=y
@@ -49,8 +51,6 @@ CONFIG_CMD_UBI=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0x53FA401C
 CONFIG_SYS_BOOTCOUNT_MAGIC=0x0B01C041
 CONFIG_FSL_ESDHC=y
 CONFIG_NAND=y
index 6afa6704381a223c7826d0feba73a29d31761b44..e8756267b0695c4284f6edfb5c24e14af4630ead 100644 (file)
@@ -41,7 +41,6 @@ CONFIG_OF_EMBED=y
 CONFIG_DEFAULT_DEVICE_TREE="microblaze-generic"
 CONFIG_NETCONSOLE=y
 CONFIG_SPL_DM=y
-CONFIG_DM_GPIO=y
 CONFIG_XILINX_GPIO=y
 CONFIG_LED=y
 CONFIG_LED_GPIO=y
index 0789ecd586a2e54b0f86fe69b8bd2ce17da673a1..cb0da4701fb800a589a5b6fff141b6de5551aa91 100644 (file)
@@ -56,6 +56,28 @@ CONFIG_LBLAW2=y
 CONFIG_LBLAW2_BASE=0xFBFF8000
 CONFIG_LBLAW2_NAME="CPLD"
 CONFIG_LBLAW2_LENGTH_32_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFC000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_64_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_4=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="SJA1000"
+CONFIG_BR1_OR1_BASE=0xFBFF0000
+CONFIG_OR1_SCY_5=y
+CONFIG_OR1_EHTR_1_CYCLE=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="CPLD"
+CONFIG_BR2_OR2_BASE=0xFBFF8000
+CONFIG_OR2_SCY_4=y
+CONFIG_OR2_EHTR_1_CYCLE=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
@@ -71,6 +93,8 @@ CONFIG_SICR_GPIOSEL_IEEE1588=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_BOOTDELAY=5
@@ -93,34 +117,3 @@ CONFIG_MII=y
 CONFIG_TSEC_ENET=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFC000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_64_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_SCY_4=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="SJA1000"
-CONFIG_BR1_OR1_BASE=0xFBFF0000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
-CONFIG_OR1_SCY_5=y
-CONFIG_OR1_EHTR_1_CYCLE=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="CPLD"
-CONFIG_BR2_OR2_BASE=0xFBFF8000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_32_KBYTES=y
-CONFIG_OR2_SCY_4=y
-CONFIG_OR2_EHTR_1_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_2=y
index 753a11aa122bd38514775e7ea42fbfd14479378a..687d6e8bf1d4e9c41f46282cd2a8859346e667fa 100644 (file)
@@ -25,6 +25,10 @@ CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_SPI=y
+CONFIG_CMD_DHCP=y
+# CONFIG_NET_TFTP_VARS is not set
+# CONFIG_CMD_NFS is not set
+CONFIG_CMD_PING=y
 CONFIG_CMD_MTDPARTS=y
 CONFIG_MTDIDS_DEFAULT="nor0=spi_flash"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=spi_flash:1m(UBoot),256k(Env),256k(Env.bk)"
@@ -50,6 +54,7 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_SPI_FLASH_WINBOND=y
 CONFIG_SPI_FLASH_MTD=y
 CONFIG_DM_ETH=y
+CONFIG_MSCC_SERVAL_SWITCH=y
 CONFIG_PINCTRL=y
 CONFIG_PINCONF=y
 CONFIG_DM_SERIAL=y
@@ -57,8 +62,3 @@ CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
 CONFIG_LZMA=y
-CONFIG_CMD_DHCP=y
-# CONFIG_NET_TFTP_VARS is not set
-# CONFIG_CMD_NFS is not set
-CONFIG_CMD_PING=y
-CONFIG_MSCC_SERVAL_SWITCH=y
index b809066fd086f808fea2c539bc5ff1622779b0ea..bf4896630880f36ec0dd2260d19e66b15c6d8d0e 100644 (file)
@@ -24,9 +24,8 @@ CONFIG_DEFAULT_DEVICE_TREE="imx53-cx9020"
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_FPGA_ALTERA=y
 CONFIG_FPGA_CYCLON2=y
-CONFIG_DM=y
-CONFIG_DM_MMC=y
 CONFIG_DM_GPIO=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_FEC_MXC=y
 CONFIG_MII=y
index 6c3818d845d66d25d35ca1309d45831f7367680a..19ebab78e9cbc356f43debef2ab44f14f2d65ade 100644 (file)
@@ -6,6 +6,7 @@ CONFIG_SYS_VPD_EEPROM_I2C_ADDR=0x50
 CONFIG_SYS_VPD_EEPROM_I2C_BUS=2
 CONFIG_SYS_VPD_EEPROM_SIZE=1024
 CONFIG_NR_DRAM_BANKS=2
+CONFIG_SYS_BOOTCOUNT_ADDR=0x7000A000
 CONFIG_FIT=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/ge/mx53ppd/imximage.cfg"
@@ -37,7 +38,6 @@ CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_EXT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=10
 CONFIG_SYS_BOOTCOUNT_EXT_DEVPART="0:5"
-CONFIG_SYS_BOOTCOUNT_ADDR=0x7000A000
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_MII=y
@@ -46,8 +46,7 @@ CONFIG_PINCTRL_IMX5=y
 CONFIG_RTC_S35392A=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_MX5=y
-CONFIG_USB_STORAGE=y
-CONFIG_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_VIDEO=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_IMX_WATCHDOG=y
index d9f2137b4cc4e1fdcae37c0e033a8d9a11ffb54f..37df3f34bcddae635f9fee05808d9cbd6858d748 100644 (file)
@@ -6,11 +6,11 @@ CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x4000
 CONFIG_ROCKCHIP_RK3399=y
 CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_SPL_STACK_R_ADDR=0x80000
 CONFIG_DEBUG_UART_BASE=0xFF1A0000
 CONFIG_DEBUG_UART_CLOCK=24000000
-CONFIG_SPL_STACK_R_ADDR=0x80000
 CONFIG_DEBUG_UART=y
-CONFIG_NR_DRAM_BANKS=1
 CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-nanopc-t4.dtb"
 # CONFIG_DISPLAY_CPUINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
index c2832788f05c6613268b7fc335d7039aa6550c82..68fd9ff79b2ff949d6e3c4e3b5879bba1067f2d3 100644 (file)
@@ -6,11 +6,11 @@ CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x4000
 CONFIG_ROCKCHIP_RK3399=y
 CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_SPL_STACK_R_ADDR=0x80000
 CONFIG_DEBUG_UART_BASE=0xFF1A0000
 CONFIG_DEBUG_UART_CLOCK=24000000
-CONFIG_SPL_STACK_R_ADDR=0x80000
 CONFIG_DEBUG_UART=y
-CONFIG_NR_DRAM_BANKS=1
 CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-nanopi-m4.dtb"
 # CONFIG_DISPLAY_CPUINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
index 54cba0e55be5a941e8dfbdabc13d43024b294f57..46bdb037ec2061e48bb4b7ebb8fdc8d72f300abc 100644 (file)
@@ -2,6 +2,7 @@ CONFIG_ARM=y
 CONFIG_TEGRA=y
 CONFIG_SYS_TEXT_BASE=0x81000100
 CONFIG_NR_DRAM_BANKS=2
+CONFIG_BOOTSTAGE_STASH_ADDR=0x83000000
 CONFIG_DEBUG_UART_BASE=0x70006000
 CONFIG_DEBUG_UART_CLOCK=408000000
 CONFIG_TEGRA124=y
@@ -13,7 +14,6 @@ CONFIG_OF_SYSTEM_SETUP=y
 CONFIG_BOOTSTAGE=y
 CONFIG_SPL_BOOTSTAGE=y
 CONFIG_BOOTSTAGE_STASH=y
-CONFIG_BOOTSTAGE_STASH_ADDR=0x83000000
 CONFIG_SYS_STDIO_DEREGISTER=y
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_SPL_TEXT_BASE=0x80108000
index 3f02c899830ee9994e10dbe62bb80971c7c2d97f..0f5edef4299b10960492f4634443d0651761be56 100644 (file)
@@ -6,11 +6,11 @@ CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x4000
 CONFIG_ROCKCHIP_RK3399=y
 CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_SPL_STACK_R_ADDR=0x80000
 CONFIG_DEBUG_UART_BASE=0xFF1A0000
 CONFIG_DEBUG_UART_CLOCK=24000000
-CONFIG_SPL_STACK_R_ADDR=0x80000
 CONFIG_DEBUG_UART=y
-CONFIG_NR_DRAM_BANKS=1
 CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-orangepi.dtb"
 # CONFIG_DISPLAY_CPUINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
index 4002dbabe88da0bc5a7cbe0053352a3f63f2bfa3..171341bdb22480ccff5b20e7b66841efba5bf7df 100644 (file)
@@ -31,10 +31,6 @@ CONFIG_DM_I2C=y
 CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
 CONFIG_I2C_DEFAULT_BUS_NUMBER=0x2
 CONFIG_SYS_I2C_MXC=y
-CONFIG_SYS_I2C_MXC_I2C1=y
-CONFIG_SYS_I2C_MXC_I2C2=y
-CONFIG_SYS_I2C_MXC_I2C3=y
-CONFIG_SYS_I2C_MXC_I2C4=y
 CONFIG_MISC=y
 CONFIG_I2C_EEPROM=y
 CONFIG_SYS_I2C_EEPROM_ADDR=0x50
index 17043d5b22b3b0ba2ad4c84f865155c0a578d71c..9545d6bbd6cbd0527f53c9fe7f22e35e227c0dce 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_DISTRO_DEFAULTS=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
 CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
 CONFIG_DEFAULT_FDT_FILE="imx7d-pico-hobbit.dtb"
-CONFIG_OF_CONTROL=y
-CONFIG_DEFAULT_DEVICE_TREE="imx7d-pico-hobbit"
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_SPL_TEXT_BASE=0x00911000
 CONFIG_SPL_I2C_SUPPORT=y
@@ -28,14 +26,10 @@ CONFIG_SPL_USB_SDP_SUPPORT=y
 CONFIG_CMD_BOOTMENU=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_XIMG is not set
-CONFIG_PINCTRL=y
-CONFIG_PINCTRL_IMX7=y
-CONFIG_DM_GPIO=y
 CONFIG_CMD_SPL=y
 CONFIG_CMD_SPL_WRITE_SIZE=0x20000
 CONFIG_CMD_DFU=y
 CONFIG_CMD_GPIO=y
-CONFIG_DM_MMC=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
@@ -46,6 +40,8 @@ CONFIG_CMD_USB_MASS_STORAGE=y
 # CONFIG_CMD_MII is not set
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_EXT4_WRITE=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx7d-pico-hobbit"
 CONFIG_DFU_MMC=y
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_ADDR=0x82000000
@@ -53,10 +49,14 @@ CONFIG_FASTBOOT_BUF_SIZE=0x10000000
 CONFIG_FASTBOOT_FLASH=y
 CONFIG_FASTBOOT_FLASH_MMC_DEV=0
 CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
+CONFIG_DM_GPIO=y
+CONFIG_DM_MMC=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX7=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_MXC_USB_OTG_HACTIVE=y
index 81eda9dc6f4470d0ef6e4f4f6875b4e4a2ab5bbf..92ab9c5a5012c77584b804716defe5e209224d45 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_DISTRO_DEFAULTS=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
 CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
 CONFIG_DEFAULT_FDT_FILE="ask"
-CONFIG_OF_CONTROL=y
-CONFIG_DEFAULT_DEVICE_TREE="imx7d-pico-pi"
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_SPL_TEXT_BASE=0x00911000
 CONFIG_SPL_I2C_SUPPORT=y
@@ -28,10 +26,6 @@ CONFIG_SPL_USB_SDP_SUPPORT=y
 CONFIG_CMD_BOOTMENU=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_XIMG is not set
-CONFIG_PINCTRL=y
-CONFIG_PINCTRL_IMX7=y
-CONFIG_DM_GPIO=y
-CONFIG_DM_MMC=y
 CONFIG_CMD_SPL=y
 CONFIG_CMD_SPL_WRITE_SIZE=0x20000
 CONFIG_CMD_DFU=y
@@ -46,6 +40,8 @@ CONFIG_CMD_USB_MASS_STORAGE=y
 # CONFIG_CMD_MII is not set
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_EXT4_WRITE=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx7d-pico-pi"
 CONFIG_DFU_MMC=y
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_ADDR=0x82000000
@@ -53,10 +49,14 @@ CONFIG_FASTBOOT_BUF_SIZE=0x10000000
 CONFIG_FASTBOOT_FLASH=y
 CONFIG_FASTBOOT_FLASH_MMC_DEV=0
 CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
+CONFIG_DM_GPIO=y
+CONFIG_DM_MMC=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX7=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_MXC_USB_OTG_HACTIVE=y
index 0aa14878e2eafb37174ec858517629a7168b3ee6..042affe01b1ba5c5aaf3fbe57581a32bc281ba7b 100644 (file)
@@ -16,8 +16,6 @@ CONFIG_DISTRO_DEFAULTS=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
 CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
 CONFIG_DEFAULT_FDT_FILE="imx7d-pico-pi.dtb"
-CONFIG_OF_CONTROL=y
-CONFIG_DEFAULT_DEVICE_TREE="imx7d-pico-pi"
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_SPL_TEXT_BASE=0x00911000
 CONFIG_SPL_I2C_SUPPORT=y
@@ -28,14 +26,10 @@ CONFIG_SPL_USB_SDP_SUPPORT=y
 CONFIG_CMD_BOOTMENU=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_XIMG is not set
-CONFIG_PINCTRL=y
-CONFIG_PINCTRL_IMX7=y
-CONFIG_DM_GPIO=y
 CONFIG_CMD_SPL=y
 CONFIG_CMD_SPL_WRITE_SIZE=0x20000
 CONFIG_CMD_DFU=y
 CONFIG_CMD_GPIO=y
-CONFIG_DM_MMC=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
@@ -46,6 +40,8 @@ CONFIG_CMD_USB_MASS_STORAGE=y
 # CONFIG_CMD_MII is not set
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_EXT4_WRITE=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx7d-pico-pi"
 CONFIG_DFU_MMC=y
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_ADDR=0x82000000
@@ -53,10 +49,14 @@ CONFIG_FASTBOOT_BUF_SIZE=0x10000000
 CONFIG_FASTBOOT_FLASH=y
 CONFIG_FASTBOOT_FLASH_MMC_DEV=0
 CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
+CONFIG_DM_GPIO=y
+CONFIG_DM_MMC=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX7=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_MXC_USB_OTG_HACTIVE=y
index d8792d6157f90e585f394295b49349b7b96b5dc3..b1cd5b4f443a68d2f7ff2fb268fd44f805c4170b 100644 (file)
@@ -1,15 +1,10 @@
 CONFIG_X86=y
 CONFIG_SYS_TEXT_BASE=0x1110000
-CONFIG_SPL_LIBCOMMON_SUPPORT=y
-CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x1000
 CONFIG_MAX_CPUS=2
-CONFIG_SPL_SERIAL_SUPPORT=y
-CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
 CONFIG_NR_DRAM_BANKS=8
 CONFIG_DEBUG_UART_BASE=0x3f8
 CONFIG_DEBUG_UART_CLOCK=1843200
-CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_X86_RUN_64BIT=y
 CONFIG_TARGET_QEMU_X86_64=y
 CONFIG_DEBUG_UART=y
@@ -55,18 +50,13 @@ CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
-CONFIG_SPL_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="qemu-x86_i440fx"
-CONFIG_SPL_DM=y
 CONFIG_REGMAP=y
-CONFIG_SPL_REGMAP=y
 CONFIG_SYSCON=y
-CONFIG_SPL_SYSCON=y
 CONFIG_CPU=y
 CONFIG_NVME=y
 CONFIG_SPL_DM_RTC=y
 CONFIG_SPI=y
-CONFIG_SPL_TIMER=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_KEYBOARD=y
 CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
index 61175e8063cd3736dcf1711fb1d01594525eb5cf..1bc3bd38013db0987c3d6dbda96f5b37cad24bce 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_SYS_TEXT_BASE=0
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_BOOTSTAGE_STASH_ADDR=0x0
 CONFIG_SANDBOX64=y
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
@@ -9,7 +10,6 @@ CONFIG_BOOTSTAGE=y
 CONFIG_BOOTSTAGE_REPORT=y
 CONFIG_BOOTSTAGE_FDT=y
 CONFIG_BOOTSTAGE_STASH=y
-CONFIG_BOOTSTAGE_STASH_ADDR=0x0
 CONFIG_BOOTSTAGE_STASH_SIZE=0x4096
 CONFIG_CONSOLE_RECORD=y
 CONFIG_CONSOLE_RECORD_OUT_SIZE=0x1000
index ff01315bd8ff9c55e8c399ccc0b70b88de10060d..4877f1099a145b470795894d75d1e62f5ef24d39 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_SYS_TEXT_BASE=0
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_BOOTSTAGE_STASH_ADDR=0x0
 CONFIG_DEBUG_UART=y
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
@@ -10,7 +11,6 @@ CONFIG_BOOTSTAGE=y
 CONFIG_BOOTSTAGE_REPORT=y
 CONFIG_BOOTSTAGE_FDT=y
 CONFIG_BOOTSTAGE_STASH=y
-CONFIG_BOOTSTAGE_STASH_ADDR=0x0
 CONFIG_BOOTSTAGE_STASH_SIZE=0x4096
 CONFIG_CONSOLE_RECORD=y
 CONFIG_CONSOLE_RECORD_OUT_SIZE=0x1000
index b4b5190ecba427f62d521e701dfa89ff8451265d..40593ee3a178b15a44ec8aeeb331210401c4c89d 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_SYS_TEXT_BASE=0
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_BOOTSTAGE_STASH_ADDR=0x0
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
 CONFIG_FIT_SIGNATURE=y
@@ -8,7 +9,6 @@ CONFIG_BOOTSTAGE=y
 CONFIG_BOOTSTAGE_REPORT=y
 CONFIG_BOOTSTAGE_FDT=y
 CONFIG_BOOTSTAGE_STASH=y
-CONFIG_BOOTSTAGE_STASH_ADDR=0x0
 CONFIG_BOOTSTAGE_STASH_SIZE=0x4096
 CONFIG_CONSOLE_RECORD=y
 CONFIG_CONSOLE_RECORD_OUT_SIZE=0x1000
index 9a2719893bdf9d93aa04a7f74df5580811bc2583..24ff4b41daf9ea296e37704cda2ad892bb233179 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_SYS_TEXT_BASE=0
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_BOOTSTAGE_STASH_ADDR=0x0
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
 CONFIG_FIT_SIGNATURE=y
@@ -8,7 +9,6 @@ CONFIG_BOOTSTAGE=y
 CONFIG_BOOTSTAGE_REPORT=y
 CONFIG_BOOTSTAGE_FDT=y
 CONFIG_BOOTSTAGE_STASH=y
-CONFIG_BOOTSTAGE_STASH_ADDR=0x0
 CONFIG_BOOTSTAGE_STASH_SIZE=0x4096
 # CONFIG_USE_BOOTCOMMAND is not set
 CONFIG_CONSOLE_RECORD=y
index e2826a6a9590ca9c8ca359403fdf397d17feb36b..bebd78d55be5b6661eece9dac0dee1ca6ec49053 100644 (file)
@@ -5,6 +5,7 @@ CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SPL=y
+CONFIG_BOOTSTAGE_STASH_ADDR=0x0
 CONFIG_SANDBOX_SPL=y
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
@@ -15,7 +16,6 @@ CONFIG_BOOTSTAGE=y
 CONFIG_BOOTSTAGE_REPORT=y
 CONFIG_BOOTSTAGE_FDT=y
 CONFIG_BOOTSTAGE_STASH=y
-CONFIG_BOOTSTAGE_STASH_ADDR=0x0
 CONFIG_BOOTSTAGE_STASH_SIZE=0x4096
 CONFIG_CONSOLE_RECORD=y
 CONFIG_CONSOLE_RECORD_OUT_SIZE=0x1000
index a363070dd8702216c85e4492bf810de2471f7565..915ba3664b44e11a4b4bf9e86a152eec2bf05e3e 100644 (file)
@@ -69,9 +69,24 @@ CONFIG_LBLAW0=y
 CONFIG_LBLAW0_BASE=0xFF800000
 CONFIG_LBLAW0_NAME="FLASH"
 CONFIG_LBLAW0_LENGTH_8_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFF800000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_PCI_64BIT=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
@@ -92,19 +107,3 @@ CONFIG_PHY_MARVELL=y
 CONFIG_TSEC_ENET=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFF800000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_4=y
index 215f31df282498fc67998f1c1799f11af894fe92..c224fea1c9e553867b7e7d29665f9ae7ac79a32e 100644 (file)
@@ -69,9 +69,24 @@ CONFIG_LBLAW0=y
 CONFIG_LBLAW0_BASE=0xFF800000
 CONFIG_LBLAW0_NAME="FLASH"
 CONFIG_LBLAW0_LENGTH_8_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFF800000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_PCI_64BIT=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
@@ -92,19 +107,3 @@ CONFIG_PHY_MARVELL=y
 CONFIG_TSEC_ENET=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFF800000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_4=y
index d492b861d5ced3f08430e748911aeb5cca2b853d..6231057d6bbaaabae93722cd7b6b7623f8d7bc8d 100644 (file)
@@ -49,9 +49,24 @@ CONFIG_LBLAW0=y
 CONFIG_LBLAW0_BASE=0xFF800000
 CONFIG_LBLAW0_NAME="FLASH"
 CONFIG_LBLAW0_LENGTH_8_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFF800000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_BOOTDELAY=6
@@ -70,19 +85,3 @@ CONFIG_TSEC_ENET=y
 # CONFIG_PCI is not set
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFF800000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_4=y
index ffe50b1fd79498822f3bd6a9dcab7f517998f19c..656188f6cdcd50c3e54bd4aaed143a6880eae682 100644 (file)
@@ -1,9 +1,9 @@
 CONFIG_ARM=y
+CONFIG_SPL_SYS_ICACHE_OFF=y
+CONFIG_SPL_SYS_DCACHE_OFF=y
 CONFIG_SPL_SYS_THUMB_BUILD=y
 # CONFIG_SPL_USE_ARCH_MEMCPY is not set
 # CONFIG_SPL_USE_ARCH_MEMSET is not set
-CONFIG_SPL_SYS_ICACHE_OFF=y
-CONFIG_SPL_SYS_DCACHE_OFF=y
 CONFIG_ARCH_AT91=y
 CONFIG_SYS_TEXT_BASE=0x23000000
 CONFIG_TARGET_SMARTWEB=y
index 09a018c97d19d9f153583de4707a4204ce682edf..69e492accc1bf863b98b5b044642b06217953b16 100644 (file)
@@ -1,8 +1,12 @@
 CONFIG_ARM=y
 CONFIG_ARCH_SOCFPGA=y
+CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
 CONFIG_TARGET_SOCFPGA_ARRIA10_SOCDK=y
 CONFIG_IDENT_STRING="socfpga_arria10"
+CONFIG_SPL_FS_FAT=y
 CONFIG_DISTRO_DEFAULTS=y
+CONFIG_FIT=y
+CONFIG_SPL_FIT=y
 CONFIG_USE_BOOTARGS=y
 CONFIG_BOOTARGS="console=ttyS0,115200"
 # CONFIG_USE_BOOTCOMMAND is not set
@@ -12,8 +16,8 @@ CONFIG_SYS_CONSOLE_ENV_OVERWRITE=y
 CONFIG_DEFAULT_FDT_FILE="socfpga_arria10_socdk_sdmmc.dtb"
 CONFIG_VERSION_VARIABLE=y
 CONFIG_DISPLAY_BOARDINFO_LATE=y
-CONFIG_BOUNCE_BUFFER=y
 CONFIG_SPL_TEXT_BASE=0xFFE00000
+CONFIG_SPL_ENV_SUPPORT=y
 CONFIG_SPL_FPGA_SUPPORT=y
 CONFIG_CMD_ASKENV=y
 CONFIG_CMD_GREPENV=y
@@ -23,31 +27,21 @@ CONFIG_CMD_MMC=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_MTDIDS_DEFAULT="nor0=ff705000.spi.0"
-CONFIG_OF_SPL_REMOVE_PROPS="interrupts interrupt-parent dmas dma-names"
 CONFIG_DEFAULT_DEVICE_TREE="socfpga_arria10_socdk_sdmmc"
+CONFIG_OF_SPL_REMOVE_PROPS="interrupts interrupt-parent dmas dma-names"
 CONFIG_ENV_IS_IN_MMC=y
-CONFIG_SPL_ENV_SUPPORT=y
-CONFIG_SPL_DM=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
-CONFIG_SPL_DM_MMC=y
-CONFIG_SPL_MMC_SUPPORT=y
-CONFIG_SPL_FS_FAT=y
-CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
-CONFIG_FS_LOADER=y
-CONFIG_FPGA_SOCFPGA=y
-CONFIG_SPL_FIT=y
-CONFIG_FIT=y
 CONFIG_DM_GPIO=y
 CONFIG_DWAPB_GPIO=y
+CONFIG_FS_LOADER=y
 CONFIG_DM_MMC=y
-CONFIG_MTD_DEVICE=y
 CONFIG_MMC_DW=y
+CONFIG_MTD_DEVICE=y
 CONFIG_PHY_MICREL=y
 CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_DM_ETH=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_MII=y
-CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_TIMER=y
 CONFIG_SPL_TIMER=y
index c3a597a8b712505852a60c3c237015ae6bdce5ff..f3693011b0a3a8313a7a75a56de9c680ff6eec2c 100644 (file)
@@ -1,6 +1,7 @@
 CONFIG_ARM=y
 CONFIG_ARCH_SOCFPGA=y
 CONFIG_TARGET_SOCFPGA_IS1=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0xfffffff8
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
 CONFIG_USE_BOOTARGS=y
@@ -33,7 +34,6 @@ CONFIG_DEFAULT_DEVICE_TREE="socfpga_cyclone5_is1"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_BOOTCOUNT_LIMIT=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0xfffffff8
 CONFIG_DM_GPIO=y
 CONFIG_DWAPB_GPIO=y
 CONFIG_DM_I2C=y
index da7995be1226301174a7d39ff9fe47d855ed2942..741525feadf929193eb2573c97d1f774e4b3f4c1 100644 (file)
@@ -1,6 +1,7 @@
 CONFIG_ARM=y
 CONFIG_ARCH_SOCFPGA=y
 CONFIG_TARGET_SOCFPGA_SR1500=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0xfffffff8
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_FIT=y
 # CONFIG_USE_BOOTCOMMAND is not set
@@ -36,7 +37,6 @@ CONFIG_DEFAULT_DEVICE_TREE="socfpga_cyclone5_sr1500"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SPL_DM_SEQ_ALIAS=y
 CONFIG_BOOTCOUNT_LIMIT=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0xfffffff8
 CONFIG_DM_GPIO=y
 CONFIG_DWAPB_GPIO=y
 CONFIG_DM_I2C=y
index 630b01c2333247678448664a0993846fe1003fe7..b039ebb9eafa5f0dd8df3cdfb2b40c33f1711991 100644 (file)
@@ -19,15 +19,18 @@ CONFIG_CMD_CACHE=y
 CONFIG_CMD_MTDPARTS=y
 CONFIG_MTDIDS_DEFAULT="nor0=spi-flash.0"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=spi-flash.0:1m(u-boot),7m(kernel),-(rootfs)"
+CONFIG_DEFAULT_DEVICE_TREE="stmark2"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_USE_ENV_SPI_CS=y
 CONFIG_ENV_SPI_CS=1
 # CONFIG_NET is not set
 CONFIG_MTD_DEVICE=y
+CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=50000000
 CONFIG_SPI_FLASH_ISSI=y
 CONFIG_SPI_FLASH_MTD=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_CF_SPI=y
 CONFIG_REGEX=y
index 9f05b5693f916f716bc1a9b3e49b5a820c69dc7f..1bdbe9ebdd2ebbd1bd577e473f30ed5412b96ae4 100644 (file)
@@ -53,13 +53,30 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0xE0600000
 CONFIG_LBLAW1_NAME="FPGA0"
 CONFIG_LBLAW1_LENGTH_1_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="FPGA"
+CONFIG_BR1_OR1_BASE=0xE0600000
+CONFIG_BR1_PORTSIZE_16BIT=y
+CONFIG_OR1_AM_1_MBYTES=y
+CONFIG_OR1_XAM_SET=y
+CONFIG_OR1_SCY_5=y
+CONFIG_OR1_CSNT_EARLIER=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
-CONFIG_SICR_ETSEC1_A_TSEC2=y
-CONFIG_SICR_GPIO_A_GPIO=y
-CONFIG_SICR_GPIO_B_GPIO=y
 CONFIG_SICR_IEEE1588_A_GPIO=y
 CONFIG_SICR_GTM_GPIO=y
 CONFIG_SICR_ETSEC2_GPIO=y
@@ -69,6 +86,8 @@ CONFIG_SICR_TMSOBI2_2_5_V=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_CMD_IOLOOP=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
@@ -107,28 +126,3 @@ CONFIG_TSEC_ENET=y
 CONFIG_CONS_INDEX=2
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="FPGA"
-CONFIG_BR1_OR1_BASE=0xE0600000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_16BIT=y
-CONFIG_OR1_AM_1_MBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_SCY_5=y
-CONFIG_OR1_XAM_SET=y
-CONFIG_OR1_EHTR_NORMAL=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_2=y
index a1f966251897cb9453a3a5ce164490ca082b8aa3..424c915c29e7b2058e7698593a9503cf81e42a26 100644 (file)
@@ -53,13 +53,30 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0xE0600000
 CONFIG_LBLAW1_NAME="FPGA0"
 CONFIG_LBLAW1_LENGTH_1_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="FPGA"
+CONFIG_BR1_OR1_BASE=0xE0600000
+CONFIG_BR1_PORTSIZE_16BIT=y
+CONFIG_OR1_AM_1_MBYTES=y
+CONFIG_OR1_XAM_SET=y
+CONFIG_OR1_SCY_5=y
+CONFIG_OR1_CSNT_EARLIER=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
-CONFIG_SICR_ETSEC1_A_TSEC2=y
-CONFIG_SICR_GPIO_A_GPIO=y
-CONFIG_SICR_GPIO_B_GPIO=y
 CONFIG_SICR_IEEE1588_A_GPIO=y
 CONFIG_SICR_GTM_GPIO=y
 CONFIG_SICR_ETSEC2_GPIO=y
@@ -69,6 +86,8 @@ CONFIG_SICR_TMSOBI2_2_5_V=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_CMD_IOLOOP=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
@@ -107,28 +126,3 @@ CONFIG_TSEC_ENET=y
 CONFIG_CONS_INDEX=2
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="FPGA"
-CONFIG_BR1_OR1_BASE=0xE0600000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_16BIT=y
-CONFIG_OR1_AM_1_MBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_SCY_5=y
-CONFIG_OR1_XAM_SET=y
-CONFIG_OR1_EHTR_NORMAL=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_2=y
index 2477ee5ca43036ad5f59f8d9ea69cf5496a495a6..1149b13bef6398f61425aa7c5f143762658412d0 100644 (file)
@@ -53,13 +53,30 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0xE0600000
 CONFIG_LBLAW1_NAME="FPGA0"
 CONFIG_LBLAW1_LENGTH_1_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="FPGA"
+CONFIG_BR1_OR1_BASE=0xE0600000
+CONFIG_BR1_PORTSIZE_16BIT=y
+CONFIG_OR1_AM_1_MBYTES=y
+CONFIG_OR1_XAM_SET=y
+CONFIG_OR1_SCY_5=y
+CONFIG_OR1_CSNT_EARLIER=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
-CONFIG_SICR_ETSEC1_A_TSEC2=y
-CONFIG_SICR_GPIO_A_GPIO=y
-CONFIG_SICR_GPIO_B_GPIO=y
 CONFIG_SICR_IEEE1588_A_GPIO=y
 CONFIG_SICR_GTM_GPIO=y
 CONFIG_SICR_ETSEC2_GPIO=y
@@ -69,6 +86,8 @@ CONFIG_SICR_TMSOBI2_2_5_V=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_CMD_IOLOOP=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
@@ -107,28 +126,3 @@ CONFIG_TSEC_ENET=y
 CONFIG_CONS_INDEX=2
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="FPGA"
-CONFIG_BR1_OR1_BASE=0xE0600000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_16BIT=y
-CONFIG_OR1_AM_1_MBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_SCY_5=y
-CONFIG_OR1_XAM_SET=y
-CONFIG_OR1_EHTR_NORMAL=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_2=y
index da16d5dbfa6242cc11b7424c899d9740fd0e2015..ec68d3d3e85fc7380380f56258a95e0190ee591c 100644 (file)
@@ -53,13 +53,30 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0xE0600000
 CONFIG_LBLAW1_NAME="FPGA0"
 CONFIG_LBLAW1_LENGTH_1_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xFE000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_8_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="FPGA"
+CONFIG_BR1_OR1_BASE=0xE0600000
+CONFIG_BR1_PORTSIZE_16BIT=y
+CONFIG_OR1_AM_1_MBYTES=y
+CONFIG_OR1_XAM_SET=y
+CONFIG_OR1_SCY_5=y
+CONFIG_OR1_CSNT_EARLIER=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_DPM=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
-CONFIG_SICR_ETSEC1_A_TSEC2=y
-CONFIG_SICR_GPIO_A_GPIO=y
-CONFIG_SICR_GPIO_B_GPIO=y
 CONFIG_SICR_IEEE1588_A_GPIO=y
 CONFIG_SICR_GTM_GPIO=y
 CONFIG_SICR_ETSEC2_GPIO=y
@@ -69,6 +86,8 @@ CONFIG_SICR_TMSOBI2_2_5_V=y
 CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_SPCR_TSECEP_3=y
+CONFIG_LCRR_DBYP_PLL_BYPASSED=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_CMD_IOLOOP=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
@@ -107,28 +126,3 @@ CONFIG_TSEC_ENET=y
 CONFIG_CONS_INDEX=2
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_8_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="FPGA"
-CONFIG_BR1_OR1_BASE=0xE0600000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_16BIT=y
-CONFIG_OR1_AM_1_MBYTES=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_SCY_5=y
-CONFIG_OR1_XAM_SET=y
-CONFIG_OR1_EHTR_NORMAL=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_CLKDIV_2=y
index c970cde05eb43f8e1861754666340adf73cf5638..bb21bde3eea333945cdbcdde3cf81a00ec1d644c 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xF0000000
+CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 CONFIG_SYS_CLK_FREQ=66000000
 CONFIG_MPC83xx=y
 CONFIG_HIGH_BATS=y
@@ -92,6 +93,40 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xB0000000
 CONFIG_LBLAW3_NAME="APP2"
 CONFIG_LBLAW3_LENGTH_256_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xF0000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_256_MBYTES=y
+CONFIG_OR0_SCY_5=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
+CONFIG_BR1_OR1_BASE=0xE8000000
+CONFIG_OR1_AM_128_MBYTES=y
+CONFIG_OR1_SCY_2=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="APP1"
+CONFIG_BR2_OR2_BASE=0xA0000000
+CONFIG_BR2_PORTSIZE_16BIT=y
+CONFIG_BR2_MACHINE_UPMA=y
+CONFIG_OR2_AM_256_MBYTES=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="APP2"
+CONFIG_BR3_OR3_BASE=0xB0000000
+CONFIG_BR3_PORTSIZE_16BIT=y
+CONFIG_OR3_AM_256_MBYTES=y
+CONFIG_OR3_SCY_3=y
+CONFIG_OR3_CSNT_EARLIER=y
+CONFIG_OR3_ACS_QUARTER_CYCLE_EARLIER=y
+CONFIG_OR3_TRLX_RELAXED=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -99,6 +134,8 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_ACR_APARK_MASTER=y
 CONFIG_ACR_PARKM_USB_I2C1_BOOT=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_SYS_EXTRA_OPTIONS="SUVD3"
@@ -126,7 +163,6 @@ CONFIG_CMD_UBI=y
 # CONFIG_CMD_UBIFS is not set
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_MTD_DEVICE=y
@@ -136,45 +172,6 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 # CONFIG_PCI is not set
+CONFIG_QE=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xF0000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_256_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_5=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
-CONFIG_BR1_OR1_BASE=0xE8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_128_MBYTES=y
-CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_2=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="APP1"
-CONFIG_BR2_OR2_BASE=0xA0000000
-CONFIG_BR2_MACHINE_UPMA=y
-CONFIG_BR2_PORTSIZE_16BIT=y
-CONFIG_OR2_AM_256_MBYTES=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="APP2"
-CONFIG_BR3_OR3_BASE=0xB0000000
-CONFIG_BR3_PORTSIZE_16BIT=y
-CONFIG_OR3_AM_256_MBYTES=y
-CONFIG_OR3_ACS_QUARTER_CYCLE_EARLIER=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_SCY_3=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_2=y
index 5616b3e23ac7a11ad2e383b78e76d32ac35c3493..f5c3fe188a99f4b7d0fbdd0583048d2255b37619 100644 (file)
@@ -1,8 +1,8 @@
 CONFIG_ARM=y
 CONFIG_SYS_VENDOR="opalkelly"
 CONFIG_SYS_CONFIG_NAME="syzygy_hub"
-CONFIG_ARCH_ZYNQ=y
 CONFIG_SPL_SYS_DCACHE_OFF=y
+CONFIG_ARCH_ZYNQ=y
 CONFIG_SYS_TEXT_BASE=0x4000000
 CONFIG_SPL_STACK_R_ADDR=0x200000
 CONFIG_SPL=y
index 8af7dd7c3ab128784a8d88a7b810007fda4de011..ee21811a818a4192eac1f6d678df0ad1a97ca716 100644 (file)
@@ -1,9 +1,9 @@
 CONFIG_ARM=y
+CONFIG_SPL_SYS_ICACHE_OFF=y
+CONFIG_SPL_SYS_DCACHE_OFF=y
 CONFIG_SYS_THUMB_BUILD=y
 # CONFIG_SPL_USE_ARCH_MEMCPY is not set
 # CONFIG_SPL_USE_ARCH_MEMSET is not set
-CONFIG_SPL_SYS_ICACHE_OFF=y
-CONFIG_SPL_SYS_DCACHE_OFF=y
 CONFIG_ARCH_AT91=y
 CONFIG_SPL_LDSCRIPT="arch/$(ARCH)/cpu/u-boot-spl.lds"
 CONFIG_SYS_TEXT_BASE=0x21000000
index bb8d37a370df268cde91db0e8f0c21d133278d46..188c791f3a884b1b586889bcb5655471e151fe04 100644 (file)
@@ -1,8 +1,8 @@
 CONFIG_ARM=y
 CONFIG_SYS_VENDOR="topic"
 CONFIG_SYS_CONFIG_NAME="topic_miami"
-CONFIG_ARCH_ZYNQ=y
 CONFIG_SPL_SYS_DCACHE_OFF=y
+CONFIG_ARCH_ZYNQ=y
 CONFIG_SYS_TEXT_BASE=0x4000000
 CONFIG_SPL_STACK_R_ADDR=0x200000
 CONFIG_SPL=y
index 87af8c81d3d48d9260fbf062a267dc501b59d20e..ae65f9c3953bb609d3a19f9171e03bdd8c04ffb0 100644 (file)
@@ -1,8 +1,8 @@
 CONFIG_ARM=y
 CONFIG_SYS_VENDOR="topic"
 CONFIG_SYS_CONFIG_NAME="topic_miami"
-CONFIG_ARCH_ZYNQ=y
 CONFIG_SPL_SYS_DCACHE_OFF=y
+CONFIG_ARCH_ZYNQ=y
 CONFIG_SYS_TEXT_BASE=0x4000000
 CONFIG_SPL_STACK_R_ADDR=0x200000
 CONFIG_SPL=y
index 874ca8a7469485215a30817ed5eec2f0b3c36d4c..a5cee6774097c94094fa7f082bc910e0e959ba60 100644 (file)
@@ -1,8 +1,8 @@
 CONFIG_ARM=y
 CONFIG_SYS_VENDOR="topic"
 CONFIG_SYS_CONFIG_NAME="topic_miami"
-CONFIG_ARCH_ZYNQ=y
 CONFIG_SPL_SYS_DCACHE_OFF=y
+CONFIG_ARCH_ZYNQ=y
 CONFIG_SYS_TEXT_BASE=0x4000000
 CONFIG_SPL_STACK_R_ADDR=0x200000
 CONFIG_SPL=y
index 1a95973ca01761b45c1d2c7c06bd9e5f80179113..57f2221c78b5e7dbe95c42a59ddaf85ebe8b1fe6 100644 (file)
@@ -5,6 +5,7 @@ CONFIG_TARGET_TQMA6=y
 CONFIG_TQMA6S=y
 CONFIG_WRU4=y
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_SYS_BOOTCOUNT_ADDR=0x00900000
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_OF_BOARD_SETUP=y
@@ -37,7 +38,6 @@ CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_BOOTCOUNT_LIMIT=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0x00900000
 CONFIG_LED_STATUS=y
 CONFIG_LED_STATUS0=y
 CONFIG_LED_STATUS_BIT=0
index 550f524a3cf0ea04ac4a011c618c098cd902bed8..22ba1929c7038159fdf4ea082beaefc33bdd598f 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xF0000000
+CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 CONFIG_SYS_CLK_FREQ=66000000
 CONFIG_MPC83xx=y
 CONFIG_HIGH_BATS=y
@@ -78,6 +79,34 @@ CONFIG_LBLAW2=y
 CONFIG_LBLAW2_BASE=0xA0000000
 CONFIG_LBLAW2_NAME="APP1"
 CONFIG_LBLAW2_LENGTH_256_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xF0000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_256_MBYTES=y
+CONFIG_OR0_SCY_5=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
+CONFIG_BR1_OR1_BASE=0xE8000000
+CONFIG_OR1_AM_128_MBYTES=y
+CONFIG_OR1_SCY_2=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="APP1"
+CONFIG_BR2_OR2_BASE=0xA0000000
+CONFIG_OR2_AM_256_MBYTES=y
+CONFIG_OR2_SCY_2=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_ACS_QUARTER_CYCLE_EARLIER=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EAD_EXTRA=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -85,6 +114,8 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_ACR_APARK_MASTER=y
 CONFIG_ACR_PARKM_USB_I2C1_BOOT=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_MISC_INIT_R=y
@@ -111,7 +142,6 @@ CONFIG_CMD_UBI=y
 # CONFIG_CMD_UBIFS is not set
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_MTD_DEVICE=y
@@ -121,42 +151,6 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 # CONFIG_PCI is not set
+CONFIG_QE=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xF0000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_256_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_5=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
-CONFIG_BR1_OR1_BASE=0xE8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_128_MBYTES=y
-CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_2=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="APP1"
-CONFIG_BR2_OR2_BASE=0xA0000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_256_MBYTES=y
-CONFIG_OR2_ACS_QUARTER_CYCLE_EARLIER=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_2=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_4_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_2=y
index d5ec8e5bf2e7da7de0a27ca7b63b13f57910ca51..94214a2356aabfca45c2a0720860a7e4763a3dbb 100644 (file)
@@ -1,5 +1,6 @@
 CONFIG_PPC=y
 CONFIG_SYS_TEXT_BASE=0xF0000000
+CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 CONFIG_SYS_CLK_FREQ=66000000
 CONFIG_MPC83xx=y
 CONFIG_HIGH_BATS=y
@@ -92,6 +93,42 @@ CONFIG_LBLAW3=y
 CONFIG_LBLAW3_BASE=0xB0000000
 CONFIG_LBLAW3_NAME="APP2"
 CONFIG_LBLAW3_LENGTH_256_MBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xF0000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_256_MBYTES=y
+CONFIG_OR0_SCY_5=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
+CONFIG_BR1_OR1_BASE=0xE8000000
+CONFIG_OR1_AM_128_MBYTES=y
+CONFIG_OR1_SCY_2=y
+CONFIG_OR1_CSNT_EARLIER=y
+CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR1_TRLX_RELAXED=y
+CONFIG_OR1_EAD_EXTRA=y
+CONFIG_ELBC_BR2_OR2=y
+CONFIG_BR2_OR2_NAME="APP1"
+CONFIG_BR2_OR2_BASE=0xA0000000
+CONFIG_OR2_AM_256_MBYTES=y
+CONFIG_OR2_SCY_2=y
+CONFIG_OR2_CSNT_EARLIER=y
+CONFIG_OR2_ACS_QUARTER_CYCLE_EARLIER=y
+CONFIG_OR2_TRLX_RELAXED=y
+CONFIG_OR2_EAD_EXTRA=y
+CONFIG_ELBC_BR3_OR3=y
+CONFIG_BR3_OR3_NAME="APP2"
+CONFIG_BR3_OR3_BASE=0xB0000000
+CONFIG_OR3_AM_256_MBYTES=y
+CONFIG_OR3_SCY_2=y
+CONFIG_OR3_CSNT_EARLIER=y
+CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR3_TRLX_RELAXED=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
@@ -99,6 +136,8 @@ CONFIG_ACR_PIPE_DEP_4=y
 CONFIG_ACR_RPTCNT_4=y
 CONFIG_ACR_APARK_MASTER=y
 CONFIG_ACR_PARKM_USB_I2C1_BOOT=y
+CONFIG_LCRR_EADC_1=y
+CONFIG_LCRR_CLKDIV_2=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_MISC_INIT_R=y
@@ -125,7 +164,6 @@ CONFIG_CMD_UBI=y
 # CONFIG_CMD_UBIFS is not set
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_BOOTLIMIT=3
-CONFIG_SYS_BOOTCOUNT_ADDR=0xE0113FF8
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_MTD_DEVICE=y
@@ -135,53 +173,6 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 # CONFIG_PCI is not set
+CONFIG_QE=y
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xF0000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_256_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_5=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="KMBEC_FPGA"
-CONFIG_BR1_OR1_BASE=0xE8000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_128_MBYTES=y
-CONFIG_OR1_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR1_CSNT_EARLIER=y
-CONFIG_OR1_EAD_EXTRA=y
-CONFIG_OR1_SCY_2=y
-CONFIG_OR1_TRLX_RELAXED=y
-CONFIG_ELBC_BR2_OR2=y
-CONFIG_BR2_OR2_NAME="APP1"
-CONFIG_BR2_OR2_BASE=0xA0000000
-CONFIG_BR2_MACHINE_GPCM=y
-CONFIG_BR2_PORTSIZE_8BIT=y
-CONFIG_OR2_AM_256_MBYTES=y
-CONFIG_OR2_ACS_QUARTER_CYCLE_EARLIER=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
-CONFIG_OR2_SCY_2=y
-CONFIG_OR2_TRLX_RELAXED=y
-CONFIG_OR2_EHTR_4_CYCLE=y
-CONFIG_ELBC_BR3_OR3=y
-CONFIG_BR3_OR3_NAME="APP2"
-CONFIG_BR3_OR3_BASE=0xB0000000
-CONFIG_BR3_MACHINE_GPCM=y
-CONFIG_BR3_PORTSIZE_8BIT=y
-CONFIG_OR3_AM_256_MBYTES=y
-CONFIG_OR3_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_SCY_2=y
-CONFIG_OR3_TRLX_RELAXED=y
-CONFIG_OR3_EHTR_4_CYCLE=y
-CONFIG_LCRR_DBYP_PLL_BYPASSED=y
-CONFIG_LCRR_EADC_1=y
-CONFIG_LCRR_CLKDIV_2=y
index a1cdd0561918d248279596db0797bc4ae905047b..f55c386b42228aeb13842ca6b2c472a51415cee7 100644 (file)
@@ -6,10 +6,9 @@ CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_TARGET_DART_6UL=y
 CONFIG_SPL_MMC_SUPPORT=y
 CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_NR_DRAM_BANKS=8
 CONFIG_SPL=y
-# CONFIG_CMD_DEKBLOB is not set
 CONFIG_DISTRO_DEFAULTS=y
-CONFIG_NR_DRAM_BANKS=8
 CONFIG_FIT=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
 CONFIG_BOOTDELAY=3
@@ -26,7 +25,6 @@ CONFIG_CMD_MMC=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_CACHE=y
-CONFIG_CMD_NET=y
 # CONFIG_ISO_PARTITION is not set
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6ull-dart-6ul"
index 0a9521b2512f93bf57fe36a90a6d31c902d017f3..53777093a0561485b3e3354c09594df6525fcb5b 100644 (file)
@@ -74,76 +74,72 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0x61000000
 CONFIG_LBLAW1_NAME="NAND"
 CONFIG_LBLAW1_LENGTH_32_KBYTES=y
-CONFIG_HID0_FINAL_EMCP=y
-CONFIG_HID0_FINAL_ICE=y
-CONFIG_HID2_HBE=y
-CONFIG_ACR_PIPE_DEP_4=y
-CONFIG_ACR_RPTCNT_4=y
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_OF_STDOUT_VIA_ALIAS=y
-CONFIG_BOOTDELAY=6
-CONFIG_BOARD_EARLY_INIT_F=y
-CONFIG_HUSH_PARSER=y
-CONFIG_CMD_IMLS=y
-CONFIG_CMD_NAND=y
-CONFIG_CMD_PCI=y
-# CONFIG_CMD_SETEXPR is not set
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
-# CONFIG_MMC is not set
-CONFIG_MTD_NOR_FLASH=y
-CONFIG_FLASH_CFI_DRIVER=y
-CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
-CONFIG_SYS_FLASH_CFI=y
-CONFIG_PHY_MARVELL=y
-CONFIG_TSEC_ENET=y
-CONFIG_SYS_NS16550=y
-CONFIG_OF_LIBFDT=y
 CONFIG_ELBC_BR0_OR0=y
 CONFIG_BR0_OR0_NAME="FLASH"
 CONFIG_BR0_OR0_BASE=0xFE000000
-CONFIG_BR0_MACHINE_GPCM=y
 CONFIG_BR0_PORTSIZE_16BIT=y
 CONFIG_OR0_AM_32_MBYTES=y
-CONFIG_OR0_ACS_QUARTER_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
 CONFIG_OR0_SCY_5=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_QUARTER_CYCLE_EARLIER=y
 CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EAD_EXTRA=y
 CONFIG_ELBC_BR1_OR1=y
 CONFIG_BR1_OR1_NAME="NAND"
 CONFIG_BR1_OR1_BASE=0x61000000
 CONFIG_BR1_ERRORCHECKING_BOTH=y
 CONFIG_BR1_MACHINE_FCM=y
-CONFIG_BR1_PORTSIZE_8BIT=y
-CONFIG_OR1_AM_32_KBYTES=y
 CONFIG_OR1_BCTLD_NOT_ASSERTED=y
-CONFIG_OR1_RST_ONE_CLOCK=y
 CONFIG_OR1_SCY_2=y
-CONFIG_OR1_TRLX_RELAXED=y
 CONFIG_OR1_CHT_TWO_CLOCK=y
+CONFIG_OR1_RST_ONE_CLOCK=y
+CONFIG_OR1_TRLX_RELAXED=y
 CONFIG_ELBC_BR2_OR2=y
 CONFIG_BR2_OR2_NAME="NVRAM"
 CONFIG_BR2_OR2_BASE=0x60000000
-CONFIG_BR2_PORTSIZE_8BIT=y
 CONFIG_OR2_AM_128_KBYTES=y
-CONFIG_OR2_CSNT_EARLIER=y
-CONFIG_OR2_EAD_EXTRA=y
 CONFIG_OR2_SCY_3=y
+CONFIG_OR2_CSNT_EARLIER=y
 CONFIG_OR2_XACS_EXTENDED=y
 CONFIG_OR2_TRLX_RELAXED=y
 CONFIG_OR2_EHTR_8_CYCLE=y
+CONFIG_OR2_EAD_EXTRA=y
 CONFIG_ELBC_BR3_OR3=y
 CONFIG_BR3_OR3_NAME="SRAM"
 CONFIG_BR3_OR3_BASE=0x62000000
 CONFIG_BR3_PORTSIZE_16BIT=y
 CONFIG_OR3_AM_32_MBYTES=y
-CONFIG_OR3_CSNT_EARLIER=y
-CONFIG_OR3_EAD_EXTRA=y
 CONFIG_OR3_SCY_15=y
+CONFIG_OR3_CSNT_EARLIER=y
 CONFIG_OR3_XACS_EXTENDED=y
 CONFIG_OR3_TRLX_RELAXED=y
 CONFIG_OR3_EHTR_8_CYCLE=y
+CONFIG_OR3_EAD_EXTRA=y
+CONFIG_HID0_FINAL_EMCP=y
+CONFIG_HID0_FINAL_ICE=y
+CONFIG_HID2_HBE=y
+CONFIG_ACR_PIPE_DEP_4=y
+CONFIG_ACR_RPTCNT_4=y
 CONFIG_LCRR_EADC_3=y
 CONFIG_LCRR_CLKDIV_2=y
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_OF_STDOUT_VIA_ALIAS=y
+CONFIG_BOOTDELAY=6
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_IMLS=y
+CONFIG_CMD_NAND=y
+CONFIG_CMD_PCI=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+# CONFIG_MMC is not set
+CONFIG_MTD_NOR_FLASH=y
+CONFIG_FLASH_CFI_DRIVER=y
+CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
+CONFIG_SYS_FLASH_CFI=y
+CONFIG_PHY_MARVELL=y
+CONFIG_TSEC_ENET=y
+CONFIG_SYS_NS16550=y
+CONFIG_OF_LIBFDT=y
index 24bbba1aa73f4763d4b2fc188733f083a97901fa..77c7904a2c953c0710d0f0f52b85cbf4aca80f3a 100644 (file)
@@ -71,9 +71,29 @@ CONFIG_LBLAW1=y
 CONFIG_LBLAW1_BASE=0xF0000000
 CONFIG_LBLAW1_NAME="WINDOW1"
 CONFIG_LBLAW1_LENGTH_256_KBYTES=y
+CONFIG_ELBC_BR0_OR0=y
+CONFIG_BR0_OR0_NAME="FLASH"
+CONFIG_BR0_OR0_BASE=0xF8000000
+CONFIG_BR0_PORTSIZE_16BIT=y
+CONFIG_OR0_AM_128_MBYTES=y
+CONFIG_OR0_XAM_SET=y
+CONFIG_OR0_SCY_15=y
+CONFIG_OR0_CSNT_EARLIER=y
+CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
+CONFIG_OR0_XACS_EXTENDED=y
+CONFIG_OR0_TRLX_RELAXED=y
+CONFIG_OR0_EHTR_8_CYCLE=y
+CONFIG_OR0_EAD_EXTRA=y
+CONFIG_ELBC_BR1_OR1=y
+CONFIG_BR1_OR1_NAME="WINDOW1"
+CONFIG_BR1_OR1_BASE=0xF0000000
+CONFIG_BR1_PORTSIZE_32BIT=y
+CONFIG_OR1_AM_256_KBYTES=y
+CONFIG_OR1_SETA_EXTERNAL=y
 CONFIG_HID0_FINAL_EMCP=y
 CONFIG_HID0_FINAL_ICE=y
 CONFIG_HID2_HBE=y
+CONFIG_LCRR_CLKDIV_4=y
 CONFIG_PCI_64BIT=y
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
@@ -97,25 +117,3 @@ CONFIG_TSEC_ENET=y
 CONFIG_BAUDRATE=9600
 CONFIG_SYS_NS16550=y
 CONFIG_OF_LIBFDT=y
-CONFIG_ELBC_BR0_OR0=y
-CONFIG_BR0_OR0_NAME="FLASH"
-CONFIG_BR0_OR0_BASE=0xF8000000
-CONFIG_BR0_MACHINE_GPCM=y
-CONFIG_BR0_PORTSIZE_16BIT=y
-CONFIG_OR0_AM_128_MBYTES=y
-CONFIG_OR0_ACS_HALF_CYCLE_EARLIER=y
-CONFIG_OR0_CSNT_EARLIER=y
-CONFIG_OR0_EAD_EXTRA=y
-CONFIG_OR0_SCY_15=y
-CONFIG_OR0_XACS_EXTENDED=y
-CONFIG_OR0_XAM_SET=y
-CONFIG_OR0_TRLX_RELAXED=y
-CONFIG_OR0_EHTR_8_CYCLE=y
-CONFIG_ELBC_BR1_OR1=y
-CONFIG_BR1_OR1_NAME="WINDOW1"
-CONFIG_BR1_OR1_BASE=0xF0000000
-CONFIG_BR1_MACHINE_GPCM=y
-CONFIG_BR1_PORTSIZE_32BIT=y
-CONFIG_OR1_AM_256_KBYTES=y
-CONFIG_OR1_SETA_EXTERNAL=y
-CONFIG_LCRR_CLKDIV_4=y
index 27c25d38eaee0bef10a6d4bc189d53c470eb6552..03574d08caf4683a464fd803b13285b68d032f3b 100644 (file)
@@ -9,6 +9,7 @@ CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SPL=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0xD2801FF8
 CONFIG_IDENT_STRING="-SPEAr"
 CONFIG_BOOTDELAY=3
 CONFIG_SYS_CONSOLE_INFO_QUIET=y
@@ -42,7 +43,6 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=nand:64M(ubi0),64M(ubi1)"
 CONFIG_CMD_UBI=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_BOOTCOUNT_LIMIT=y
-CONFIG_SYS_BOOTCOUNT_ADDR=0xD2801FF8
 CONFIG_FPGA_XILINX=y
 CONFIG_FPGA_SPARTAN3=y
 CONFIG_SYS_I2C_DW=y
index 76b85d4cb3902ec69288c1fb7349abf5319cb9ce..62ed8f73e1ee2d0be0da6cf7ccfd71e8bafbcd5a 100644 (file)
@@ -3,7 +3,6 @@ CONFIG_SYS_CONFIG_NAME="zynq_cse"
 CONFIG_SYS_ICACHE_OFF=y
 CONFIG_SYS_DCACHE_OFF=y
 CONFIG_ARCH_ZYNQ=y
-CONFIG_SPL_SYS_DCACHE_OFF=y
 CONFIG_SYS_TEXT_BASE=0x100000
 CONFIG_ENV_SIZE=0x190
 CONFIG_SPL_STACK_R_ADDR=0x200000
index fad7b5d66e05bfde59e24928cf82ad9f324c5c59..2e9a54e50ac8759ddcc3ddddd9da2756219f1021 100644 (file)
@@ -3,7 +3,6 @@ CONFIG_SYS_CONFIG_NAME="zynq_cse"
 CONFIG_SYS_ICACHE_OFF=y
 CONFIG_SYS_DCACHE_OFF=y
 CONFIG_ARCH_ZYNQ=y
-CONFIG_SPL_SYS_DCACHE_OFF=y
 CONFIG_SYS_TEXT_BASE=0xFFFC0000
 CONFIG_ENV_SIZE=0x190
 CONFIG_SPL_STACK_R_ADDR=0x200000
index 8adeffcec964f3da99bfb210ab5317cb21658c90..2aaa8140cf34d81c1d83259712522e176cf9737d 100644 (file)
@@ -7,10 +7,10 @@ CONFIG_SYS_TEXT_BASE=0xFFFC0000
 CONFIG_ENV_SIZE=0x190
 CONFIG_SPL_STACK_R_ADDR=0x200000
 CONFIG_SPL=y
+CONFIG_SYS_MALLOC_LEN=0x1000
 CONFIG_DEBUG_UART_BASE=0x0
 CONFIG_DEBUG_UART_CLOCK=0
 # CONFIG_ZYNQ_DDRC_INIT is not set
-CONFIG_SYS_MALLOC_LEN=0x1000
 # CONFIG_CMD_ZYNQ is not set
 CONFIG_DEBUG_UART=y
 # CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
index ffcf8cd31dc00f23af72f77cd5960898d71df679..02e14609bb776cdf89d38d8f9753c19e140b30a4 100644 (file)
 STMicroelectronics STM32MP1 clock tree initialization
 =====================================================
 
-The STM32MP clock tree initialization is based on device tree information
-for RCC IP and on fixed clocks.
+The STM32MP1 clock tree initialization is based on device tree information
+for RCC IP node (st,stm32mp1-rcc) and on fixed-clock nodes.
 
--------------------------------
-RCC CLOCK = st,stm32mp1-rcc-clk
--------------------------------
+RCC IP = st,stm32mp1-rcc
+========================
 
 The RCC IP is both a reset and a clock controller but this documentation only
 describes the fields added for clock tree initialization which are not present
-in Linux binding.
+in Linux binding for compatible "st,stm32mp1-rcc" defined in st,stm32mp1-rcc.txt
+file.
 
-Please refer to ../mfd/st,stm32-rcc.txt for all the other properties common
-with Linux.
+The added properties for clock tree initialization are:
 
 Required properties:
+- st,clksrc : The clock sources configuration array in a platform specific
+              order.
 
-- compatible: Should be "st,stm32mp1-rcc-clk"
+  For the STM32MP15x family there are 9 clock sources selector which are
+  configured in the following order:
+       MPU AXI MCU PLL12 PLL3 PLL4 RTC MCO1 MCO2
 
-- st,clksrc : The clock source in this order
+  Clock source configuration values are defined by macros CLK_<NAME>_<SOURCE>
+  from dt-bindings/clock/stm32mp1-clksrc.h.
 
-       for STM32MP15x: 9 clock sources are requested
-               MPU AXI MCU PLL12 PLL3 PLL4 RTC MCO1 MCO2
-
-       with value equals to RCC clock specifier as defined in
-       dt-bindings/clock/stm32mp1-clksrc.h: CLK_<NAME>_<SOURCE>
-
-- st,clkdiv : The div parameters in this order
-       for STM32MP15x: 11 dividers value are requested
+  Example:
+       st,clksrc = <
+               CLK_MPU_PLL1P
+               CLK_AXI_PLL2P
+               CLK_MCU_PLL3P
+               CLK_PLL12_HSE
+               CLK_PLL3_HSE
+               CLK_PLL4_HSE
+               CLK_RTC_LSE
+               CLK_MCO1_DISABLED
+               CLK_MCO2_DISABLED
+       >;
+
+- st,clkdiv : The clock main dividers value specified in an array
+              in a platform specific order.
+
+  When used, it shall describe the whole clock dividers tree.
+
+  For the STM32MP15x family there are 11 dividers values expected.
+  They shall be configured in the following order:
                MPU AXI MCU APB1 APB2 APB3 APB4 APB5 RTC MCO1 MCO2
 
-       with DIV coding defined in RCC associated register RCC_xxxDIVR
-
-       most the case, it is:
+  The each divider value uses the DIV coding defined in RCC associated
+  register RCC_xxxDIVR. In most the case, it is:
                0x0: not divided
                0x1: division by 2
                0x2: division by 4
                0x3: division by 8
                ...
 
-       but for RTC MCO1 MCO2, the coding is different:
+  Note that for RTC MCO1 MCO2, the coding is different:
                0x0: not divided
                0x1: division by 2
                0x2: division by 3
                0x3: division by 4
                ...
 
-Optional Properties:
-- st,pll
-    PLL children node for PLL1 to PLL4 : (see ref manual for details)
-    with associated index 0 to 3 (st,pll@0 to st,pll@4)
-    PLLx is off when the associated node is absent
+  Example:
+       st,clkdiv = <
+               1 /*MPU*/
+               0 /*AXI*/
+               0 /*MCU*/
+               1 /*APB1*/
+               1 /*APB2*/
+               1 /*APB3*/
+               1 /*APB4*/
+               2 /*APB5*/
+               23 /*RTC*/
+               0 /*MCO1*/
+               0 /*MCO2*/
+       >;
 
-    - Sub-nodes:
+Optional Properties:
+- st,pll : A specific PLL configuration, including frequency.
 
-       - cfg:  The parameters for PLL configuration in this order:
-               DIVM DIVN DIVP DIVQ DIVR Output
+  PLL children nodes for PLL1 to PLL4 (see ref manual for details)
+  are listed with associated index 0 to 3 (st,pll@0 to st,pll@3).
+  PLLx is off when the associated node is absent.
 
-               with DIV value as defined in RCC spec:
-                       0x0: bypass (division by 1)
-                       0x1: division by 2
-                       0x2: division by 3
-                       0x3: division by 4
-                       ...
+  Here are the available properties for each PLL node:
 
-               and Output = bitfield for each output value = 1:ON/0:OFF
-                       BIT(0) => output P : DIVPEN
-                       BIT(1) => output Q : DIVQEN
-                       BIT(2) => output R : DIVREN
-                 NB : macro PQR(p,q,r) can be used to build this value
-                      with p,p,r = 0 or 1
+    - cfg: The parameters for PLL configuration in the following order:
+           DIVM DIVN DIVP DIVQ DIVR Output.
 
-       - frac : Fractional part of the multiplication factor
-               (optional, PLL is in integer mode when absent)
+       DIVx values are defined as in RCC spec:
+               0x0: bypass (division by 1)
+               0x1: division by 2
+               0x2: division by 3
+               0x3: division by 4
+               ...
 
-       - csg : Clock Spreading Generator (optional)
-               with parameters in this order:
-               MOD_PER INC_STEP SSCG_MODE
+       Output contains a bitfield for each output value (1:ON/0:OFF)
+               BIT(0) => output P : DIVPEN
+               BIT(1) => output Q : DIVQEN
+               BIT(2) => output R : DIVREN
+         NB: macro PQR(p,q,r) can be used to build this value
+             with p,q,r = 0 or 1.
+
+    - frac : Fractional part of the multiplication factor
+             (optional, PLL is in integer mode when absent).
+
+    - csg : Clock Spreading Generator (optional) with parameters in the
+           following order: MOD_PER INC_STEP SSCG_MODE.
+
+       MOD_PER: Modulation Period Adjustment
+       INC_STEP: Modulation Depth Adjustment
+       SSCG_MODE: Spread spectrum clock generator mode, with associated
+                  defined from stm32mp1-clksrc.h:
+                       - SSCG_MODE_CENTER_SPREAD = 0
+                       - SSCG_MODE_DOWN_SPREAD = 1
+
+    Example:
+       st,pll@0 {
+               cfg = < 1 53 0 0 0 1 >;
+               frac = < 0x810 >;
+       };
+       st,pll@1 {
+               cfg = < 1 43 1 0 0 PQR(0,1,1) >;
+               csg = < 10 20 1 >;
+       };
+       st,pll@2 {
+               cfg = < 2 85 3 13 3 0 >;
+               csg = < 10 20 SSCG_MODE_CENTER_SPREAD >;
+               };
+       st,pll@3 {
+               cfg = < 2 78 4 7 9 3 >;
+       };
 
-               * MOD_PER: Modulation Period Adjustment
-               * INC_STEP: Modulation Depth Adjustment
-               * SSCG_MODE: Spread spectrum clock generator mode
-                 you can use associated defines from stm32mp1-clksrc.h
-                 * SSCG_MODE_CENTER_SPREAD = 0
-                 * SSCG_MODE_DOWN_SPREAD = 1
+- st,pkcs : used to configure the peripherals kernel clock selection.
 
+  The property is a list of peripheral kernel clock source identifiers defined
+  by macros CLK_<KERNEL-CLOCK>_<PARENT-CLOCK> as defined by header file
+  dt-bindings/clock/stm32mp1-clksrc.h.
 
-- st,pkcs : used to configure the peripherals kernel clock selection
-  containing a list of peripheral kernel clock source identifier as defined
-  in the file dt-bindings/clock/stm32mp1-clksrc.h
+  st,pkcs may not list all the kernel clocks and has no ordering requirements.
 
   Example:
+       st,pkcs = <
+               CLK_STGEN_HSE
+               CLK_CKPER_HSI
+               CLK_USBPHY_PLL2P
+               CLK_DSI_PLL2Q
+               CLK_I2C46_HSI
+               CLK_UART1_HSI
+               CLK_UART24_HSI
+       >;
 
-       rcc: rcc@50000000 {
-               compatible = "syscon", "simple-mfd";
-
-               reg = <0x50000000 0x1000>;
-
-               rcc_clk: rcc-clk@50000000 {
-                       #clock-cells = <1>;
-                       compatible = "st,stm32mp1-rcc-clk";
-
-                       st,clksrc = <   CLK_MPU_PLL1P
-                                       CLK_AXI_PLL2P
-                                       CLK_MCU_HSI
-                                       CLK_PLL12_HSE
-                                       CLK_PLL3_HSE
-                                       CLK_PLL4_HSE
-                                       CLK_RTC_HSE
-                                       CLK_MCO1_DISABLED
-                                       CLK_MCO2_DISABLED
-                       >;
-
-                       st,clkdiv = <
-                               1 /*MPU*/
-                               0 /*AXI*/
-                               0 /*MCU*/
-                               1 /*APB1*/
-                               1 /*APB2*/
-                               1 /*APB3*/
-                               1 /*APB4*/
-                               5 /*APB5*/
-                               23 /*RTC*/
-                               0 /*MCO1*/
-                               0 /*MCO2*/
-                       >;
-
-                       st,pll@0 {
-                               cfg = < 1 53 0 0 0 1 >;
-                               frac = < 0x810 >;
-                       };
-                       st,pll@1 {
-                               cfg = < 1 43 1 0 0 PQR(0,1,1) >;
-                               csg = < 10 20 1 >;
-                       };
-                       st,pll@2 {
-                               cfg = < 2 85 3 13 3 0 >;
-                               csg = < 10 20 SSCG_MODE_CENTER_SPREAD >;
-                       };
-                       st,pll@3 {
-                               cfg = < 2 78 4 7 9 3 >;
-                       };
-                       st,pkcs = <
-                                       CLK_STGEN_HSE
-                                       CLK_CKPER_HSI
-                                       CLK_USBPHY_PLL2P
-                                       CLK_DSI_PLL2Q
-                                 >;
-               };
-       };
-
---------------------------
 other clocks = fixed-clock
---------------------------
+==========================
+
 The clock tree is also based on 5 fixed-clock in clocks node
 used to define the state of associated ST32MP1 oscillators:
-- clk-lsi
-- clk-lse
-- clk-hsi
-- clk-hse
-- clk-csi
+  - clk-lsi
+  - clk-lse
+  - clk-hsi
+  - clk-hse
+  - clk-csi
 
 At boot the clock tree initialization will
-- enable the oscillator present in device tree
-- disable HSI oscillator if the node is absent (always activated by bootrom)
+  - enable oscillators present in device tree
+  - disable HSI oscillator if the node is absent (always activated by bootrom)
 
 Optional properties :
 
 a) for external oscillator: "clk-lse", "clk-hse"
 
-       4 optional fields are managed
-       - "st,bypass" Configure the oscillator bypass mode (HSEBYP, LSEBYP)
-       - "st,digbypass" Configure the bypass mode as full-swing digital signal
-         (DIGBYP)
-       - "st,css" Activate the clock security system (HSECSSON, LSECSSON)
-       - "st,drive" (only for LSE) value of the drive for the oscillator
-          (see LSEDRV_ define in the file dt-bindings/clock/stm32mp1-clksrc.h)
-
-       Example board file:
+  4 optional fields are managed
+  - "st,bypass" configures the oscillator bypass mode (HSEBYP, LSEBYP)
+  - "st,digbypass" configures the bypass mode as full-swing digital
+    signal (DIGBYP)
+  - "st,css" activates the clock security system (HSECSSON, LSECSSON)
+  - "st,drive" (only for LSE) contains the value of the drive for the
+     oscillator (see LSEDRV_ defined in the file
+     dt-bindings/clock/stm32mp1-clksrc.h)
 
+  Example board file:
        / {
                clocks {
                        clk_hse: clk-hse {
@@ -200,13 +201,12 @@ a) for external oscillator: "clk-lse", "clk-hse"
 
 b) for internal oscillator: "clk-hsi"
 
-       internally HSI clock is fixed to 64MHz for STM32MP157 soc
-       in device tree clk-hsi is the clock after HSIDIV (ck_hsi in RCC doc)
-       So this clock frequency is used to compute the expected HSI_DIV
-       for the clock tree initialisation
-
-       ex: for HSIDIV = /1
+  Internally HSI clock is fixed to 64MHz for STM32MP157 SoC.
+  In device tree, clk-hsi is the clock after HSIDIV (clk_hsi in RCC
+  doc). So this clock frequency is used to compute the expected HSI_DIV
+  for the clock tree initialization.
 
+  Example with HSIDIV = /1:
        / {
                clocks {
                        clk_hsi: clk-hsi {
@@ -216,8 +216,7 @@ b) for internal oscillator: "clk-hsi"
                        };
        };
 
-       ex: for HSIDIV = /2
-
+  Example with HSIDIV = /2
        / {
                clocks {
                        clk_hsi: clk-hsi {
@@ -226,3 +225,151 @@ b) for internal oscillator: "clk-hsi"
                                clock-frequency = <32000000>;
                        };
        };
+
+Example of clock tree initialization
+====================================
+
+/ {
+       clocks {
+               u-boot,dm-pre-reloc;
+               clk_hse: clk-hse {
+                       u-boot,dm-pre-reloc;
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <24000000>;
+                       st,digbypass;
+               };
+
+               clk_hsi: clk-hsi {
+                       u-boot,dm-pre-reloc;
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <64000000>;
+               };
+
+               clk_lse: clk-lse {
+                       u-boot,dm-pre-reloc;
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <32768>;
+               };
+
+               clk_lsi: clk-lsi {
+                       u-boot,dm-pre-reloc;
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <32000>;
+               };
+
+               clk_csi: clk-csi {
+                       u-boot,dm-pre-reloc;
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <4000000>;
+               };
+       };
+
+       soc {
+
+               rcc: rcc@50000000 {
+                       u-boot,dm-pre-reloc;
+                       compatible = "st,stm32mp1-rcc", "syscon";
+                       reg = <0x50000000 0x1000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+
+                       st,clksrc = <
+                               CLK_MPU_PLL1P
+                               CLK_AXI_PLL2P
+                               CLK_MCU_PLL3P
+                               CLK_PLL12_HSE
+                               CLK_PLL3_HSE
+                               CLK_PLL4_HSE
+                               CLK_RTC_LSE
+                               CLK_MCO1_DISABLED
+                               CLK_MCO2_DISABLED
+                       >;
+
+                       st,clkdiv = <
+                               1 /*MPU*/
+                               0 /*AXI*/
+                               0 /*MCU*/
+                               1 /*APB1*/
+                               1 /*APB2*/
+                               1 /*APB3*/
+                               1 /*APB4*/
+                               2 /*APB5*/
+                               23 /*RTC*/
+                               0 /*MCO1*/
+                               0 /*MCO2*/
+                       >;
+
+                       st,pkcs = <
+                               CLK_CKPER_HSE
+                               CLK_FMC_ACLK
+                               CLK_QSPI_ACLK
+                               CLK_ETH_DISABLED
+                               CLK_SDMMC12_PLL4P
+                               CLK_DSI_DSIPLL
+                               CLK_STGEN_HSE
+                               CLK_USBPHY_HSE
+                               CLK_SPI2S1_PLL3Q
+                               CLK_SPI2S23_PLL3Q
+                               CLK_SPI45_HSI
+                               CLK_SPI6_HSI
+                               CLK_I2C46_HSI
+                               CLK_SDMMC3_PLL4P
+                               CLK_USBO_USBPHY
+                               CLK_ADC_CKPER
+                               CLK_CEC_LSE
+                               CLK_I2C12_HSI
+                               CLK_I2C35_HSI
+                               CLK_UART1_HSI
+                               CLK_UART24_HSI
+                               CLK_UART35_HSI
+                               CLK_UART6_HSI
+                               CLK_UART78_HSI
+                               CLK_SPDIF_PLL4P
+                               CLK_FDCAN_PLL4Q
+                               CLK_SAI1_PLL3Q
+                               CLK_SAI2_PLL3Q
+                               CLK_SAI3_PLL3Q
+                               CLK_SAI4_PLL3Q
+                               CLK_RNG1_LSI
+                               CLK_RNG2_LSI
+                               CLK_LPTIM1_PCLK1
+                               CLK_LPTIM23_PCLK3
+                               CLK_LPTIM45_LSE
+                       >;
+
+                       /* VCO = 1300.0 MHz => P = 650 (CPU) */
+                       pll1: st,pll@0 {
+                               cfg = < 2 80 0 0 0 PQR(1,0,0) >;
+                               frac = < 0x800 >;
+                               u-boot,dm-pre-reloc;
+                       };
+
+                       /* VCO = 1066.0 MHz => P = 266 (AXI), Q = 533 (GPU),
+                                              R = 533 (DDR) */
+                       pll2: st,pll@1 {
+                               cfg = < 2 65 1 0 0 PQR(1,1,1) >;
+                               frac = < 0x1400 >;
+                               u-boot,dm-pre-reloc;
+                       };
+
+                       /* VCO = 417.8 MHz => P = 209, Q = 24, R = 11 */
+                       pll3: st,pll@2 {
+                               cfg = < 1 33 1 16 36 PQR(1,1,1) >;
+                               frac = < 0x1a04 >;
+                               u-boot,dm-pre-reloc;
+                       };
+
+                       /* VCO = 594.0 MHz => P = 99, Q = 74, R = 74 */
+                       pll4: st,pll@3 {
+                               cfg = < 3 98 5 7 7 PQR(1,1,1) >;
+                               u-boot,dm-pre-reloc;
+                       };
+               };
+       };
+};
index 3028636c451138e42f3cdd956916505e52e7efa5..ee708ce92c785f64d2b65b6e754f5c14d16b6f66 100644 (file)
@@ -16,7 +16,7 @@ included in STM32 Cube tool
 info attributes:
 ----------------
 - st,mem-name  : name for DDR configuration, simple string for information
-- st,mem-speed : DDR expected speed for the setting in MHz
+- st,mem-speed : DDR expected speed for the setting in kHz
 - st,mem-size  : DDR mem size in byte
 
 
@@ -102,7 +102,7 @@ controlleur attributes:
 phyc attributes:
 ----------------
 - st,phy-reg   : phy values depending of the DDR type (DDR3/LPDDR2/LPDDR3)
-       for STM32MP15x: 10 values are requested in this order
+       for STM32MP15x: 11 values are requested in this order
                PGCR
                ACIOCR
                DXCCR
@@ -173,7 +173,7 @@ Example:
                                      "ddrphycapb";
 
                        st,mem-name = "DDR3 2x4Gb 533MHz";
-                       st,mem-speed = <533>;
+                       st,mem-speed = <533000>;
                        st,mem-size = <0x40000000>;
 
                        st,ctl-reg = <
diff --git a/doc/device-tree-bindings/serial/mcf-uart.txt b/doc/device-tree-bindings/serial/mcf-uart.txt
new file mode 100644 (file)
index 0000000..d73f764
--- /dev/null
@@ -0,0 +1,19 @@
+Freescale ColdFire UART
+
+Required properties:
+- compatible : should be "fsl,mcf-uart"
+- reg: start address and size of the registers
+
+Example:
+
+soc {
+       compatible = "simple-bus";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       uart0: uart@fc060000 {
+               compatible = "fsl,mcf-uart";
+               reg = <0xfc060000 0x40>;
+               status = "disabled";
+       };
+};
diff --git a/doc/device-tree-bindings/spi/spi-mcf-dspi.txt b/doc/device-tree-bindings/spi/spi-mcf-dspi.txt
new file mode 100644 (file)
index 0000000..860eb8a
--- /dev/null
@@ -0,0 +1,30 @@
+Freescale ColdFire DSPI controller
+
+Required properties:
+- compatible : "fsl,mcf-dspi"
+- #address-cells: <1>, as required by generic SPI binding
+- #size-cells: <0>, also as required by generic SPI binding
+- reg : offset and length of the register set for the device
+
+Optional properties:
+- spi-max-frequency : max supported spi frequency
+- num-cs : the number of the chipselect signals
+- spi-mode: spi motorola mode, 0 to 3
+- ctar-params: CTAR0 to 7 register configuration, as an array
+  of 8 integer fields for each register, where each register
+  is defined as: <fmsz, pcssck, pasc, pdt, cssck, asc, dt, br>.
+
+Example:
+
+dspi0: dspi@fc05c000 {
+       compatible = "fsl,mcf-dspi";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       reg = <0xfc05c000 0x100>;
+       spi-max-frequency = <50000000>;
+       num-cs = <4>;
+       spi-mode = <0>;
+       ctar-fields = <7, 0, 0, 0, 0, 0, 1, 6>,
+                     <7, 0, 0, 0, 0, 0, 1, 6>,
+                     <7, 0, 0, 0, 0, 0, 1, 6>;
+};
index 4e95a68a2d1cf31997b80d2ac382cea6addc0b73..87636ae30f3d9313419024817f6f7f8506eceb1c 100644 (file)
@@ -59,6 +59,16 @@ config DWC_AHCI
          Enable this driver to support Sata devices through
          Synopsys DWC AHCI module.
 
+config FSL_AHCI
+       bool "Enable Freescale AHCI driver support"
+       select SCSI_AHCI
+       depends on AHCI
+       depends on DM_SCSI
+       help
+         Enable this driver to support Sata devices found in
+         some Freescale PowerPC SoCs.
+
+
 config DWC_AHSATA
        bool "Enable DWC AHSATA driver support"
        select LIBATA
index a69edb10f7a0901d3a9d3edaa47bfd5431b67d28..6e03384f81297da9ae290284d4a289db9c31e656 100644 (file)
@@ -4,6 +4,7 @@
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 
 obj-$(CONFIG_DWC_AHCI) += dwc_ahci.o
+obj-$(CONFIG_FSL_AHCI) += fsl_ahci.o
 obj-$(CONFIG_AHCI) += ahci-uclass.o
 obj-$(CONFIG_AHCI_PCI) += ahci-pci.o
 obj-$(CONFIG_SCSI_AHCI) += ahci.o
diff --git a/drivers/ata/fsl_ahci.c b/drivers/ata/fsl_ahci.c
new file mode 100644 (file)
index 0000000..d04cff3
--- /dev/null
@@ -0,0 +1,1030 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * NXP PPC SATA platform driver
+ *
+ * (C) Copyright 2019 NXP, Inc.
+ *
+ */
+#include <common.h>
+#include <asm/fsl_serdes.h>
+#include <dm/lists.h>
+#include <dm.h>
+#include <ahci.h>
+#include <scsi.h>
+#include <libata.h>
+#include <sata.h>
+#include <malloc.h>
+#include <memalign.h>
+#include <fis.h>
+
+#include "fsl_sata.h"
+
+struct fsl_ahci_priv {
+       u32 base;
+       u32 flag;
+       u32 number;
+       fsl_sata_t *fsl_sata;
+};
+
+static int fsl_ahci_bind(struct udevice *dev)
+{
+       return device_bind_driver(dev, "fsl_ahci_scsi", "fsl_ahci_scsi", NULL);
+}
+
+static int fsl_ahci_ofdata_to_platdata(struct udevice *dev)
+{
+       struct fsl_ahci_priv *priv = dev_get_priv(dev);
+
+       priv->number = dev_read_u32_default(dev, "sata-number", -1);
+       priv->flag = dev_read_u32_default(dev, "sata-fpdma", -1);
+
+       priv->base = dev_read_addr(dev);
+       if (priv->base == FDT_ADDR_T_NONE)
+               return -EINVAL;
+
+       return 0;
+}
+
+static int ata_wait_register(unsigned __iomem *addr, u32 mask,
+                            u32 val, u32 timeout_msec)
+{
+       int i;
+
+       for (i = 0; ((in_le32(addr) & mask) != val) && i < timeout_msec; i++)
+               mdelay(1);
+
+       return (i < timeout_msec) ? 0 : -1;
+}
+
+static void fsl_sata_dump_sfis(struct sata_fis_d2h *s)
+{
+       printf("Status FIS dump:\n\r");
+       printf("fis_type:               %02x\n\r", s->fis_type);
+       printf("pm_port_i:              %02x\n\r", s->pm_port_i);
+       printf("status:                 %02x\n\r", s->status);
+       printf("error:                  %02x\n\r", s->error);
+       printf("lba_low:                %02x\n\r", s->lba_low);
+       printf("lba_mid:                %02x\n\r", s->lba_mid);
+       printf("lba_high:               %02x\n\r", s->lba_high);
+       printf("device:                 %02x\n\r", s->device);
+       printf("lba_low_exp:            %02x\n\r", s->lba_low_exp);
+       printf("lba_mid_exp:            %02x\n\r", s->lba_mid_exp);
+       printf("lba_high_exp:           %02x\n\r", s->lba_high_exp);
+       printf("res1:                   %02x\n\r", s->res1);
+       printf("sector_count:           %02x\n\r", s->sector_count);
+       printf("sector_count_exp:       %02x\n\r", s->sector_count_exp);
+}
+
+static void fsl_sata_dump_regs(fsl_sata_reg_t __iomem *reg)
+{
+       printf("\n\rSATA:           %08x\n\r", (u32)reg);
+       printf("CQR:            %08x\n\r", in_le32(&reg->cqr));
+       printf("CAR:            %08x\n\r", in_le32(&reg->car));
+       printf("CCR:            %08x\n\r", in_le32(&reg->ccr));
+       printf("CER:            %08x\n\r", in_le32(&reg->cer));
+       printf("CQR:            %08x\n\r", in_le32(&reg->cqr));
+       printf("DER:            %08x\n\r", in_le32(&reg->der));
+       printf("CHBA:           %08x\n\r", in_le32(&reg->chba));
+       printf("HStatus:        %08x\n\r", in_le32(&reg->hstatus));
+       printf("HControl:       %08x\n\r", in_le32(&reg->hcontrol));
+       printf("CQPMP:          %08x\n\r", in_le32(&reg->cqpmp));
+       printf("SIG:            %08x\n\r", in_le32(&reg->sig));
+       printf("ICC:            %08x\n\r", in_le32(&reg->icc));
+       printf("SStatus:        %08x\n\r", in_le32(&reg->sstatus));
+       printf("SError:         %08x\n\r", in_le32(&reg->serror));
+       printf("SControl:       %08x\n\r", in_le32(&reg->scontrol));
+       printf("SNotification:  %08x\n\r", in_le32(&reg->snotification));
+       printf("TransCfg:       %08x\n\r", in_le32(&reg->transcfg));
+       printf("TransStatus:    %08x\n\r", in_le32(&reg->transstatus));
+       printf("LinkCfg:        %08x\n\r", in_le32(&reg->linkcfg));
+       printf("LinkCfg1:       %08x\n\r", in_le32(&reg->linkcfg1));
+       printf("LinkCfg2:       %08x\n\r", in_le32(&reg->linkcfg2));
+       printf("LinkStatus:     %08x\n\r", in_le32(&reg->linkstatus));
+       printf("LinkStatus1:    %08x\n\r", in_le32(&reg->linkstatus1));
+       printf("PhyCtrlCfg:     %08x\n\r", in_le32(&reg->phyctrlcfg));
+       printf("SYSPR:          %08x\n\r", in_be32(&reg->syspr));
+}
+
+static int init_sata(struct fsl_ahci_priv *priv)
+{
+       int i;
+       u32 cda;
+       u32 val32;
+       u32 sig;
+       fsl_sata_t *sata;
+       u32 length, align;
+       cmd_hdr_tbl_t *cmd_hdr;
+       fsl_sata_reg_t __iomem *reg;
+
+       int dev = priv->number;
+
+       if (dev < 0 || dev > (CONFIG_SYS_SATA_MAX_DEVICE - 1)) {
+               printf("the sata index %d is out of ranges\n\r", dev);
+               return -EINVAL;
+       }
+
+#ifdef CONFIG_MPC85xx
+       if (dev == 0 && (!is_serdes_configured(SATA1))) {
+               printf("SATA%d [dev = %d] is not enabled\n", dev + 1, dev);
+               return -EINVAL;
+       }
+       if (dev == 1 && (!is_serdes_configured(SATA2))) {
+               printf("SATA%d [dev = %d] is not enabled\n", dev + 1, dev);
+               return -EINVAL;
+       }
+#endif
+
+       /* Allocate SATA device driver struct */
+       sata = (fsl_sata_t *)malloc(sizeof(fsl_sata_t));
+       if (!sata) {
+               printf("alloc the sata device struct failed\n\r");
+               return -ENOMEM;
+       }
+       /* Zero all of the device driver struct */
+       memset((void *)sata, 0, sizeof(fsl_sata_t));
+
+       sata->dma_flag = priv->flag;
+       snprintf(sata->name, 12, "SATA%d", dev);
+
+       /* Set the controller register base address to device struct */
+       reg = (fsl_sata_reg_t *)priv->base;
+       sata->reg_base = reg;
+
+       /* Allocate the command header table, 4 bytes aligned */
+       length = sizeof(struct cmd_hdr_tbl);
+       align = SATA_HC_CMD_HDR_TBL_ALIGN;
+       sata->cmd_hdr_tbl_offset = (void *)malloc(length + align);
+       if (!sata->cmd_hdr_tbl_offset) {
+               printf("alloc the command header failed\n\r");
+               return -ENOMEM;
+       }
+
+       cmd_hdr = (cmd_hdr_tbl_t *)(((u32)sata->cmd_hdr_tbl_offset + align)
+                                               & ~(align - 1));
+       sata->cmd_hdr = cmd_hdr;
+
+       /* Zero all of the command header table */
+       memset((void *)sata->cmd_hdr_tbl_offset, 0, length + align);
+
+       /* Allocate command descriptor for all command */
+       length = sizeof(struct cmd_desc) * SATA_HC_MAX_CMD;
+       align = SATA_HC_CMD_DESC_ALIGN;
+       sata->cmd_desc_offset = (void *)malloc(length + align);
+       if (!sata->cmd_desc_offset) {
+               printf("alloc the command descriptor failed\n\r");
+               return -ENOMEM;
+       }
+       sata->cmd_desc = (cmd_desc_t *)(((u32)sata->cmd_desc_offset + align)
+                                               & ~(align - 1));
+       /* Zero all of command descriptor */
+       memset((void *)sata->cmd_desc_offset, 0, length + align);
+
+       /* Link the command descriptor to command header */
+       for (i = 0; i < SATA_HC_MAX_CMD; i++) {
+               cda = ((u32)sata->cmd_desc + SATA_HC_CMD_DESC_SIZE * i)
+                                        & ~(CMD_HDR_CDA_ALIGN - 1);
+               cmd_hdr->cmd_slot[i].cda = cpu_to_le32(cda);
+       }
+
+       /* To have safe state, force the controller offline */
+       val32 = in_le32(&reg->hcontrol);
+       val32 &= ~HCONTROL_ONOFF;
+       val32 |= HCONTROL_FORCE_OFFLINE;
+       out_le32(&reg->hcontrol, val32);
+
+       /* Wait the controller offline */
+       ata_wait_register(&reg->hstatus, HSTATUS_ONOFF, 0, 1000);
+
+       /* Set the command header base address to CHBA register to tell DMA */
+       out_le32(&reg->chba, (u32)cmd_hdr & ~0x3);
+
+       /* Snoop for the command header */
+       val32 = in_le32(&reg->hcontrol);
+       val32 |= HCONTROL_HDR_SNOOP;
+       out_le32(&reg->hcontrol, val32);
+
+       /* Disable all of interrupts */
+       val32 = in_le32(&reg->hcontrol);
+       val32 &= ~HCONTROL_INT_EN_ALL;
+       out_le32(&reg->hcontrol, val32);
+
+       /* Clear all of interrupts */
+       val32 = in_le32(&reg->hstatus);
+       out_le32(&reg->hstatus, val32);
+
+       /* Set the ICC, no interrupt coalescing */
+       out_le32(&reg->icc, 0x01000000);
+
+       /* No PM attatched, the SATA device direct connect */
+       out_le32(&reg->cqpmp, 0);
+
+       /* Clear SError register */
+       val32 = in_le32(&reg->serror);
+       out_le32(&reg->serror, val32);
+
+       /* Clear CER register */
+       val32 = in_le32(&reg->cer);
+       out_le32(&reg->cer, val32);
+
+       /* Clear DER register */
+       val32 = in_le32(&reg->der);
+       out_le32(&reg->der, val32);
+
+       /* No device detection or initialization action requested */
+       out_le32(&reg->scontrol, 0x00000300);
+
+       /* Configure the transport layer, default value */
+       out_le32(&reg->transcfg, 0x08000016);
+
+       /* Configure the link layer, default value */
+       out_le32(&reg->linkcfg, 0x0000ff34);
+
+       /* Bring the controller online */
+       val32 = in_le32(&reg->hcontrol);
+       val32 |= HCONTROL_ONOFF;
+       out_le32(&reg->hcontrol, val32);
+
+       mdelay(100);
+
+       /* print sata device name */
+       printf("%s ", sata->name);
+
+       /* Wait PHY RDY signal changed for 500ms */
+       ata_wait_register(&reg->hstatus, HSTATUS_PHY_RDY,
+                         HSTATUS_PHY_RDY, 500);
+
+       /* Check PHYRDY */
+       val32 = in_le32(&reg->hstatus);
+       if (val32 & HSTATUS_PHY_RDY) {
+               sata->link = 1;
+       } else {
+               sata->link = 0;
+               printf("(No RDY)\n\r");
+               return -EINVAL;
+       }
+
+       /* Wait for signature updated, which is 1st D2H */
+       ata_wait_register(&reg->hstatus, HSTATUS_SIGNATURE,
+                         HSTATUS_SIGNATURE, 10000);
+
+       if (val32 & HSTATUS_SIGNATURE) {
+               sig = in_le32(&reg->sig);
+               debug("Signature updated, the sig =%08x\n\r", sig);
+               sata->ata_device_type = ata_dev_classify(sig);
+       }
+
+       /* Check the speed */
+       val32 = in_le32(&reg->sstatus);
+       if ((val32 & SSTATUS_SPD_MASK) == SSTATUS_SPD_GEN1)
+               printf("(1.5 Gbps)\n\r");
+       else if ((val32 & SSTATUS_SPD_MASK) == SSTATUS_SPD_GEN2)
+               printf("(3 Gbps)\n\r");
+
+       priv->fsl_sata = sata;
+
+       return 0;
+}
+
+static int fsl_ata_exec_ata_cmd(struct fsl_sata *sata,
+                               struct sata_fis_h2d *cfis,
+                               int is_ncq, int tag,
+                               u8 *buffer, u32 len)
+{
+       cmd_hdr_entry_t *cmd_hdr;
+       cmd_desc_t *cmd_desc;
+       sata_fis_h2d_t *h2d;
+       prd_entry_t *prde;
+       u32 ext_c_ddc;
+       u32 prde_count;
+       u32 val32;
+       u32 ttl;
+       u32 der;
+       int i;
+
+       fsl_sata_reg_t *reg = sata->reg_base;
+
+       /* Check xfer length */
+       if (len > SATA_HC_MAX_XFER_LEN) {
+               printf("max transfer length is 64MB\n\r");
+               return 0;
+       }
+
+       /* Setup the command descriptor */
+       cmd_desc = sata->cmd_desc + tag;
+
+       /* Get the pointer cfis of command descriptor */
+       h2d = (sata_fis_h2d_t *)cmd_desc->cfis;
+
+       /* Zero the cfis of command descriptor */
+       memset((void *)h2d, 0, SATA_HC_CMD_DESC_CFIS_SIZE);
+
+       /* Copy the cfis from user to command descriptor */
+       h2d->fis_type = cfis->fis_type;
+       h2d->pm_port_c = cfis->pm_port_c;
+       h2d->command = cfis->command;
+
+       h2d->features = cfis->features;
+       h2d->features_exp = cfis->features_exp;
+
+       h2d->lba_low = cfis->lba_low;
+       h2d->lba_mid = cfis->lba_mid;
+       h2d->lba_high = cfis->lba_high;
+       h2d->lba_low_exp = cfis->lba_low_exp;
+       h2d->lba_mid_exp = cfis->lba_mid_exp;
+       h2d->lba_high_exp = cfis->lba_high_exp;
+
+       if (!is_ncq) {
+               h2d->sector_count = cfis->sector_count;
+               h2d->sector_count_exp = cfis->sector_count_exp;
+       } else { /* NCQ */
+               h2d->sector_count = (u8)(tag << 3);
+       }
+
+       h2d->device = cfis->device;
+       h2d->control = cfis->control;
+
+       /* Setup the PRD table */
+       prde = (prd_entry_t *)cmd_desc->prdt;
+       memset((void *)prde, 0, sizeof(struct prdt));
+
+       prde_count = 0;
+       ttl = len;
+       for (i = 0; i < SATA_HC_MAX_PRD_DIRECT; i++) {
+               if (!len)
+                       break;
+               prde->dba = cpu_to_le32((u32)buffer & ~0x3);
+               debug("dba = %08x\n\r", (u32)buffer);
+
+               if (len < PRD_ENTRY_MAX_XFER_SZ) {
+                       ext_c_ddc = PRD_ENTRY_DATA_SNOOP | len;
+                       debug("ext_c_ddc1 = %08x, len = %08x\n\r",
+                             ext_c_ddc, len);
+                       prde->ext_c_ddc = cpu_to_le32(ext_c_ddc);
+                       prde_count++;
+                       prde++;
+               } else {
+                       ext_c_ddc = PRD_ENTRY_DATA_SNOOP; /* 4M bytes */
+                       debug("ext_c_ddc2 = %08x, len = %08x\n\r",
+                             ext_c_ddc, len);
+                       prde->ext_c_ddc = cpu_to_le32(ext_c_ddc);
+                       buffer += PRD_ENTRY_MAX_XFER_SZ;
+                       len -= PRD_ENTRY_MAX_XFER_SZ;
+                       prde_count++;
+                       prde++;
+               }
+       }
+
+       /* Setup the command slot of cmd hdr */
+       cmd_hdr = (cmd_hdr_entry_t *)&sata->cmd_hdr->cmd_slot[tag];
+
+       cmd_hdr->cda = cpu_to_le32((u32)cmd_desc & ~0x3);
+
+       val32 = prde_count << CMD_HDR_PRD_ENTRY_SHIFT;
+       val32 |= sizeof(sata_fis_h2d_t);
+       cmd_hdr->prde_fis_len = cpu_to_le32(val32);
+
+       cmd_hdr->ttl = cpu_to_le32(ttl);
+
+       if (!is_ncq)
+               val32 = CMD_HDR_ATTR_RES | CMD_HDR_ATTR_SNOOP;
+       else
+               val32 = CMD_HDR_ATTR_RES | CMD_HDR_ATTR_SNOOP |
+                       CMD_HDR_ATTR_FPDMA;
+
+       tag &= CMD_HDR_ATTR_TAG;
+       val32 |= tag;
+
+       debug("attribute = %08x\n\r", val32);
+       cmd_hdr->attribute = cpu_to_le32(val32);
+
+       /* Make sure cmd desc and cmd slot valid before command issue */
+       sync();
+
+       /* PMP*/
+       val32 = (u32)(h2d->pm_port_c & 0x0f);
+       out_le32(&reg->cqpmp, val32);
+
+       /* Wait no active */
+       if (ata_wait_register(&reg->car, (1 << tag), 0, 10000))
+               printf("Wait no active time out\n\r");
+
+       /* Issue command */
+       if (!(in_le32(&reg->cqr) & (1 << tag))) {
+               val32 = 1 << tag;
+               out_le32(&reg->cqr, val32);
+       }
+
+       /* Wait command completed for 10s */
+       if (ata_wait_register(&reg->ccr, (1 << tag), (1 << tag), 10000)) {
+               if (!is_ncq)
+                       printf("Non-NCQ command time out\n\r");
+               else
+                       printf("NCQ command time out\n\r");
+       }
+
+       val32 = in_le32(&reg->cer);
+
+       if (val32) {
+               fsl_sata_dump_sfis((struct sata_fis_d2h *)cmd_desc->sfis);
+               printf("CE at device\n\r");
+               fsl_sata_dump_regs(reg);
+               der = in_le32(&reg->der);
+               out_le32(&reg->cer, val32);
+               out_le32(&reg->der, der);
+       }
+
+       /* Clear complete flags */
+       val32 = in_le32(&reg->ccr);
+       out_le32(&reg->ccr, val32);
+
+       return len;
+}
+
+static int fsl_sata_exec_cmd(struct fsl_sata *sata, struct sata_fis_h2d *cfis,
+                            enum cmd_type command_type, int tag, u8 *buffer,
+                            u32 len)
+{
+       int rc;
+
+       if (tag > SATA_HC_MAX_CMD || tag < 0) {
+               printf("tag is out of range, tag=%d\n\r", tag);
+               return -1;
+       }
+
+       switch (command_type) {
+       case CMD_ATA:
+               rc = fsl_ata_exec_ata_cmd(sata, cfis, 0, tag, buffer, len);
+               return rc;
+       case CMD_NCQ:
+               rc = fsl_ata_exec_ata_cmd(sata, cfis, 1, tag, buffer, len);
+               return rc;
+       case CMD_ATAPI:
+       case CMD_VENDOR_BIST:
+       case CMD_BIST:
+               printf("not support now\n\r");
+               return -1;
+       default:
+               break;
+       }
+
+       return -1;
+}
+
+static void fsl_sata_identify(fsl_sata_t *sata, u16 *id)
+{
+       struct sata_fis_h2d h2d, *cfis = &h2d;
+
+       memset(cfis, 0, sizeof(struct sata_fis_h2d));
+
+       cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
+       cfis->pm_port_c = 0x80; /* is command */
+       cfis->command = ATA_CMD_ID_ATA;
+
+       fsl_sata_exec_cmd(sata, cfis, CMD_ATA, 0, (u8 *)id, ATA_ID_WORDS * 2);
+       ata_swap_buf_le16(id, ATA_ID_WORDS);
+}
+
+static void fsl_sata_xfer_mode(fsl_sata_t *sata, u16 *id)
+{
+       sata->pio = id[ATA_ID_PIO_MODES];
+       sata->mwdma = id[ATA_ID_MWDMA_MODES];
+       sata->udma = id[ATA_ID_UDMA_MODES];
+       debug("pio %04x, mwdma %04x, udma %04x\n\r", sata->pio,
+             sata->mwdma, sata->udma);
+}
+
+static void fsl_sata_init_wcache(fsl_sata_t *sata, u16 *id)
+{
+       if (ata_id_has_wcache(id) && ata_id_wcache_enabled(id))
+               sata->wcache = 1;
+       if (ata_id_has_flush(id))
+               sata->flush = 1;
+       if (ata_id_has_flush_ext(id))
+               sata->flush_ext = 1;
+}
+
+static void fsl_sata_set_features(fsl_sata_t *sata)
+{
+       struct sata_fis_h2d h2d, *cfis = &h2d;
+       u8 udma_cap;
+
+       memset(cfis, 0, sizeof(struct sata_fis_h2d));
+
+       cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
+       cfis->pm_port_c = 0x80; /* is command */
+       cfis->command = ATA_CMD_SET_FEATURES;
+       cfis->features = SETFEATURES_XFER;
+
+       /* First check the device capablity */
+       udma_cap = (u8)(sata->udma & 0xff);
+       debug("udma_cap %02x\n\r", udma_cap);
+
+       if (udma_cap == ATA_UDMA6)
+               cfis->sector_count = XFER_UDMA_6;
+       if (udma_cap == ATA_UDMA5)
+               cfis->sector_count = XFER_UDMA_5;
+       if (udma_cap == ATA_UDMA4)
+               cfis->sector_count = XFER_UDMA_4;
+       if (udma_cap == ATA_UDMA3)
+               cfis->sector_count = XFER_UDMA_3;
+
+       fsl_sata_exec_cmd(sata, cfis, CMD_ATA, 0, NULL, 0);
+}
+
+static u32 fsl_sata_rw_cmd(fsl_sata_t *sata, u32 start, u32 blkcnt,
+                          u8 *buffer, int is_write)
+{
+       struct sata_fis_h2d h2d, *cfis = &h2d;
+       u32 block;
+
+       block = start;
+
+       memset(cfis, 0, sizeof(struct sata_fis_h2d));
+
+       cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
+       cfis->pm_port_c = 0x80; /* is command */
+       cfis->command = (is_write) ? ATA_CMD_WRITE : ATA_CMD_READ;
+       cfis->device = ATA_LBA;
+
+       cfis->device |= (block >> 24) & 0xf;
+       cfis->lba_high = (block >> 16) & 0xff;
+       cfis->lba_mid = (block >> 8) & 0xff;
+       cfis->lba_low = block & 0xff;
+       cfis->sector_count = (u8)(blkcnt & 0xff);
+
+       fsl_sata_exec_cmd(sata, cfis, CMD_ATA, 0, buffer,
+                         ATA_SECT_SIZE * blkcnt);
+       return blkcnt;
+}
+
+static void fsl_sata_flush_cache(fsl_sata_t *sata)
+{
+       struct sata_fis_h2d h2d, *cfis = &h2d;
+
+       memset(cfis, 0, sizeof(struct sata_fis_h2d));
+
+       cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
+       cfis->pm_port_c = 0x80; /* is command */
+       cfis->command = ATA_CMD_FLUSH;
+
+       fsl_sata_exec_cmd(sata, cfis, CMD_ATA, 0, NULL, 0);
+}
+
+static u32 fsl_sata_rw_cmd_ext(fsl_sata_t *sata, u32 start,
+                              u32 blkcnt, u8 *buffer, int is_write)
+{
+       struct sata_fis_h2d h2d, *cfis = &h2d;
+       u64 block;
+
+       block = (u64)start;
+
+       memset(cfis, 0, sizeof(struct sata_fis_h2d));
+
+       cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
+       cfis->pm_port_c = 0x80; /* is command */
+
+       cfis->command = (is_write) ? ATA_CMD_WRITE_EXT
+                                : ATA_CMD_READ_EXT;
+
+       cfis->lba_high_exp = (block >> 40) & 0xff;
+       cfis->lba_mid_exp = (block >> 32) & 0xff;
+       cfis->lba_low_exp = (block >> 24) & 0xff;
+       cfis->lba_high = (block >> 16) & 0xff;
+       cfis->lba_mid = (block >> 8) & 0xff;
+       cfis->lba_low = block & 0xff;
+       cfis->device = ATA_LBA;
+       cfis->sector_count_exp = (blkcnt >> 8) & 0xff;
+       cfis->sector_count = blkcnt & 0xff;
+
+       fsl_sata_exec_cmd(sata, cfis, CMD_ATA, 0, buffer,
+                         ATA_SECT_SIZE * blkcnt);
+       return blkcnt;
+}
+
+static u32 fsl_sata_rw_ncq_cmd(fsl_sata_t *sata, u32 start, u32 blkcnt,
+                              u8 *buffer,
+                              int is_write)
+{
+       struct sata_fis_h2d h2d, *cfis = &h2d;
+       int ncq_channel;
+       u64 block;
+
+       if (sata->lba48 != 1) {
+               printf("execute FPDMA command on non-LBA48 hard disk\n\r");
+               return -1;
+       }
+
+       block = (u64)start;
+
+       memset(cfis, 0, sizeof(struct sata_fis_h2d));
+
+       cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
+       cfis->pm_port_c = 0x80; /* is command */
+
+       cfis->command = (is_write) ? ATA_CMD_FPDMA_WRITE
+                                : ATA_CMD_FPDMA_READ;
+
+       cfis->lba_high_exp = (block >> 40) & 0xff;
+       cfis->lba_mid_exp = (block >> 32) & 0xff;
+       cfis->lba_low_exp = (block >> 24) & 0xff;
+       cfis->lba_high = (block >> 16) & 0xff;
+       cfis->lba_mid = (block >> 8) & 0xff;
+       cfis->lba_low = block & 0xff;
+
+       cfis->device = ATA_LBA;
+       cfis->features_exp = (blkcnt >> 8) & 0xff;
+       cfis->features = blkcnt & 0xff;
+
+       if (sata->queue_depth >= SATA_HC_MAX_CMD)
+               ncq_channel = SATA_HC_MAX_CMD - 1;
+       else
+               ncq_channel = sata->queue_depth - 1;
+
+       /* Use the latest queue */
+       fsl_sata_exec_cmd(sata, cfis, CMD_NCQ, ncq_channel, buffer,
+                         ATA_SECT_SIZE * blkcnt);
+       return blkcnt;
+}
+
+static void fsl_sata_flush_cache_ext(fsl_sata_t *sata)
+{
+       struct sata_fis_h2d h2d, *cfis = &h2d;
+
+       memset(cfis, 0, sizeof(struct sata_fis_h2d));
+
+       cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D;
+       cfis->pm_port_c = 0x80; /* is command */
+       cfis->command = ATA_CMD_FLUSH_EXT;
+
+       fsl_sata_exec_cmd(sata, cfis, CMD_ATA, 0, NULL, 0);
+}
+
+static u32 ata_low_level_rw_lba48(fsl_sata_t *sata, u32 blknr, lbaint_t blkcnt,
+                                 const void *buffer, int is_write)
+{
+       u32 start, blks;
+       u8 *addr;
+       int max_blks;
+
+       start = blknr;
+       blks = blkcnt;
+       addr = (u8 *)buffer;
+
+       max_blks = ATA_MAX_SECTORS_LBA48;
+       do {
+               if (blks > max_blks) {
+                       if (sata->dma_flag != FLAGS_FPDMA)
+                               fsl_sata_rw_cmd_ext(sata, start, max_blks,
+                                                   addr, is_write);
+                       else
+                               fsl_sata_rw_ncq_cmd(sata, start, max_blks,
+                                                   addr, is_write);
+                       start += max_blks;
+                       blks -= max_blks;
+                       addr += ATA_SECT_SIZE * max_blks;
+               } else {
+                       if (sata->dma_flag != FLAGS_FPDMA)
+                               fsl_sata_rw_cmd_ext(sata, start, blks,
+                                                   addr, is_write);
+                       else
+                               fsl_sata_rw_ncq_cmd(sata, start, blks,
+                                                   addr, is_write);
+                       start += blks;
+                       blks = 0;
+                       addr += ATA_SECT_SIZE * blks;
+               }
+       } while (blks != 0);
+
+       return blks;
+}
+
+static u32 ata_low_level_rw_lba28(fsl_sata_t *sata, u32 blknr, u32 blkcnt,
+                                 const void *buffer, int is_write)
+{
+       u32 start, blks;
+       u8 *addr;
+       int max_blks;
+
+       start = blknr;
+       blks = blkcnt;
+       addr = (u8 *)buffer;
+
+       max_blks = ATA_MAX_SECTORS;
+       do {
+               if (blks > max_blks) {
+                       fsl_sata_rw_cmd(sata, start, max_blks, addr, is_write);
+                       start += max_blks;
+                       blks -= max_blks;
+                       addr += ATA_SECT_SIZE * max_blks;
+               } else {
+                       fsl_sata_rw_cmd(sata, start, blks, addr, is_write);
+                       start += blks;
+                       blks = 0;
+                       addr += ATA_SECT_SIZE * blks;
+               }
+       } while (blks != 0);
+
+       return blks;
+}
+
+/*
+ * SATA interface between low level driver and command layer
+ */
+static int sata_read(fsl_sata_t *sata, ulong blknr, lbaint_t blkcnt,
+                    void *buffer)
+{
+       u32 rc;
+
+       if (sata->lba48)
+               rc = ata_low_level_rw_lba48(sata, blknr, blkcnt, buffer,
+                                           READ_CMD);
+       else
+               rc = ata_low_level_rw_lba28(sata, blknr, blkcnt, buffer,
+                                           READ_CMD);
+       return rc;
+}
+
+static int sata_write(fsl_sata_t *sata, ulong blknr, lbaint_t blkcnt,
+                     const void *buffer)
+{
+       u32 rc;
+
+       if (sata->lba48) {
+               rc = ata_low_level_rw_lba48(sata, blknr, blkcnt, buffer,
+                                           WRITE_CMD);
+               if (sata->wcache && sata->flush_ext)
+                       fsl_sata_flush_cache_ext(sata);
+       } else {
+               rc = ata_low_level_rw_lba28(sata, blknr, blkcnt, buffer,
+                                           WRITE_CMD);
+               if (sata->wcache && sata->flush)
+                       fsl_sata_flush_cache(sata);
+       }
+
+       return rc;
+}
+
+int sata_getinfo(fsl_sata_t *sata, u16 *id)
+{
+       /* if no detected link */
+       if (!sata->link)
+               return -EINVAL;
+
+#ifdef CONFIG_LBA48
+       /* Check if support LBA48 */
+       if (ata_id_has_lba48(id)) {
+               sata->lba48 = 1;
+               debug("Device support LBA48\n\r");
+       } else {
+               debug("Device supports LBA28\n\r");
+       }
+#endif
+
+       /* Get the NCQ queue depth from device */
+       sata->queue_depth = ata_id_queue_depth(id);
+
+       /* Get the xfer mode from device */
+       fsl_sata_xfer_mode(sata, id);
+
+       /* Get the write cache status from device */
+       fsl_sata_init_wcache(sata, id);
+
+       /* Set the xfer mode to highest speed */
+       fsl_sata_set_features(sata);
+
+       return 0;
+}
+
+static int fsl_scsi_exec(fsl_sata_t *sata, struct scsi_cmd *pccb,
+                        bool is_write)
+{
+       int ret;
+       u32 temp;
+       u16 blocks = 0;
+       lbaint_t start = 0;
+       u8 *buffer = pccb->pdata;
+
+       /* Retrieve the base LBA number from the ccb structure. */
+       if (pccb->cmd[0] == SCSI_READ16) {
+               memcpy(&start, pccb->cmd + 2, 8);
+               start = be64_to_cpu(start);
+       } else {
+               memcpy(&temp, pccb->cmd + 2, 4);
+               start = be32_to_cpu(temp);
+       }
+
+       if (pccb->cmd[0] == SCSI_READ16)
+               blocks = (((u16)pccb->cmd[13]) << 8) | ((u16)pccb->cmd[14]);
+       else
+               blocks = (((u16)pccb->cmd[7]) << 8) | ((u16)pccb->cmd[8]);
+
+       debug("scsi_ahci: %s %u blocks starting from lba 0x" LBAFU "\n",
+             is_write ?  "write" : "read", blocks, start);
+
+       if (is_write)
+               ret = sata_write(sata, start, blocks, buffer);
+       else
+               ret = sata_read(sata, start, blocks, buffer);
+
+       return ret;
+}
+
+static char *fsl_ata_id_strcpy(u16 *target, u16 *src, int len)
+{
+       int i;
+
+       for (i = 0; i < len / 2; i++)
+               target[i] = src[i];
+
+       return (char *)target;
+}
+
+static int fsl_ata_scsiop_inquiry(struct ahci_uc_priv *uc_priv,
+                                 struct scsi_cmd *pccb,
+                                 fsl_sata_t *sata)
+{
+       u8 port;
+       u16 *idbuf;
+
+       ALLOC_CACHE_ALIGN_BUFFER(u16, tmpid, ATA_ID_WORDS);
+
+       /* Clean ccb data buffer */
+       memset(pccb->pdata, 0, pccb->datalen);
+
+       if (pccb->datalen <= 35)
+               return 0;
+
+       /* Read id from sata */
+       port = pccb->target;
+
+       fsl_sata_identify(sata, (u16 *)tmpid);
+
+       if (!uc_priv->ataid[port]) {
+               uc_priv->ataid[port] = malloc(ATA_ID_WORDS * 2);
+               if (!uc_priv->ataid[port]) {
+                       printf("%s: No memory for ataid[port]\n", __func__);
+                       return -ENOMEM;
+               }
+       }
+
+       idbuf = uc_priv->ataid[port];
+
+       memcpy(idbuf, tmpid, ATA_ID_WORDS * 2);
+
+       memcpy(&pccb->pdata[8], "ATA     ", 8);
+       fsl_ata_id_strcpy((u16 *)&pccb->pdata[16], &idbuf[ATA_ID_PROD], 16);
+       fsl_ata_id_strcpy((u16 *)&pccb->pdata[32], &idbuf[ATA_ID_FW_REV], 4);
+
+       sata_getinfo(sata, (u16 *)idbuf);
+#ifdef DEBUG
+       ata_dump_id(idbuf);
+#endif
+       return 0;
+}
+
+/*
+ * SCSI READ CAPACITY10 command operation.
+ */
+static int fsl_ata_scsiop_read_capacity10(struct ahci_uc_priv *uc_priv,
+                                         struct scsi_cmd *pccb)
+{
+       u32 cap;
+       u64 cap64;
+       u32 block_size;
+
+       if (!uc_priv->ataid[pccb->target]) {
+               printf("scsi_ahci: SCSI READ CAPACITY10 command failure.");
+               printf("\tNo ATA info!\n");
+               printf("\tPlease run SCSI command INQUIRY first!\n");
+               return -EPERM;
+       }
+
+       cap64 = ata_id_n_sectors(uc_priv->ataid[pccb->target]);
+       if (cap64 > 0x100000000ULL)
+               cap64 = 0xffffffff;
+
+       cap = cpu_to_be32(cap64);
+       memcpy(pccb->pdata, &cap, sizeof(cap));
+
+       block_size = cpu_to_be32((u32)512);
+       memcpy(&pccb->pdata[4], &block_size, 4);
+
+       return 0;
+}
+
+/*
+ * SCSI READ CAPACITY16 command operation.
+ */
+static int fsl_ata_scsiop_read_capacity16(struct ahci_uc_priv *uc_priv,
+                                         struct scsi_cmd *pccb)
+{
+       u64 cap;
+       u64 block_size;
+
+       if (!uc_priv->ataid[pccb->target]) {
+               printf("scsi_ahci: SCSI READ CAPACITY16 command failure.");
+               printf("\tNo ATA info!\n");
+               printf("\tPlease run SCSI command INQUIRY first!\n");
+               return -EPERM;
+       }
+
+       cap = ata_id_n_sectors(uc_priv->ataid[pccb->target]);
+       cap = cpu_to_be64(cap);
+       memcpy(pccb->pdata, &cap, sizeof(cap));
+
+       block_size = cpu_to_be64((u64)512);
+       memcpy(&pccb->pdata[8], &block_size, 8);
+
+       return 0;
+}
+
+/*
+ * SCSI TEST UNIT READY command operation.
+ */
+static int fsl_ata_scsiop_test_unit_ready(struct ahci_uc_priv *uc_priv,
+                                         struct scsi_cmd *pccb)
+{
+       return (uc_priv->ataid[pccb->target]) ? 0 : -EPERM;
+}
+
+static int fsl_ahci_scsi_exec(struct udevice *dev, struct scsi_cmd *pccb)
+{
+       struct ahci_uc_priv *uc_priv = dev_get_uclass_priv(dev->parent);
+       struct fsl_ahci_priv *priv = dev_get_priv(dev->parent);
+       fsl_sata_t *sata = priv->fsl_sata;
+       int ret;
+
+       switch (pccb->cmd[0]) {
+       case SCSI_READ16:
+       case SCSI_READ10:
+               ret = fsl_scsi_exec(sata, pccb, 0);
+               break;
+       case SCSI_WRITE10:
+               ret = fsl_scsi_exec(sata, pccb, 1);
+               break;
+       case SCSI_RD_CAPAC10:
+               ret = fsl_ata_scsiop_read_capacity10(uc_priv, pccb);
+               break;
+       case SCSI_RD_CAPAC16:
+               ret = fsl_ata_scsiop_read_capacity16(uc_priv, pccb);
+               break;
+       case SCSI_TST_U_RDY:
+               ret = fsl_ata_scsiop_test_unit_ready(uc_priv, pccb);
+               break;
+       case SCSI_INQUIRY:
+               ret = fsl_ata_scsiop_inquiry(uc_priv, pccb, sata);
+               break;
+       default:
+               printf("Unsupport SCSI command 0x%02x\n", pccb->cmd[0]);
+               return -ENOTSUPP;
+       }
+
+       if (ret) {
+               debug("SCSI command 0x%02x ret errno %d\n", pccb->cmd[0], ret);
+               return ret;
+       }
+
+       return 0;
+}
+
+static int fsl_ahci_probe(struct udevice *dev)
+{
+       struct fsl_ahci_priv *priv = dev_get_priv(dev);
+       struct udevice *child_dev;
+       struct scsi_platdata *uc_plat;
+
+       device_find_first_child(dev, &child_dev);
+       if (!child_dev)
+               return -ENODEV;
+       uc_plat = dev_get_uclass_platdata(child_dev);
+       uc_plat->base = priv->base;
+       uc_plat->max_lun = 1;
+       uc_plat->max_id = 1;
+
+       return init_sata(priv);
+}
+
+struct scsi_ops fsl_scsi_ops = {
+       .exec           = fsl_ahci_scsi_exec,
+};
+
+static const struct udevice_id fsl_ahci_ids[] = {
+       { .compatible = "fsl,pq-sata-v2" },
+       { }
+};
+
+U_BOOT_DRIVER(fsl_ahci_scsi) = {
+       .name           = "fsl_ahci_scsi",
+       .id             = UCLASS_SCSI,
+       .ops            = &fsl_scsi_ops,
+};
+
+U_BOOT_DRIVER(fsl_ahci) = {
+       .name   = "fsl_ahci",
+       .id     = UCLASS_AHCI,
+       .of_match = fsl_ahci_ids,
+       .bind   = fsl_ahci_bind,
+       .ofdata_to_platdata = fsl_ahci_ofdata_to_platdata,
+       .probe  = fsl_ahci_probe,
+       .priv_auto_alloc_size = sizeof(struct fsl_ahci_priv),
+};
index 1e2da10b02dbadf9e179f1301e1f2c9901e779c6..a4ee83d18727f237adc582d9aa7df5fec3f493c7 100644 (file)
@@ -312,6 +312,7 @@ typedef struct fsl_sata {
        int             wcache;
        int             flush;
        int             flush_ext;
+       u32             dma_flag;
 } fsl_sata_t;
 
 #define READ_CMD       0
index 8887be901c187604c882489a7306f643175a314c..2d496305d0924eb457d0af68a5dac0c86e300dc4 100644 (file)
@@ -8,6 +8,7 @@
 #include <ahci.h>
 #include <scsi.h>
 #include <asm/io.h>
+#include <linux/ioport.h>
 
 /* Vendor Specific Register Offsets */
 #define AHCI_VEND_PCFG  0xA4
 #define LS1021_CEVA_PHY4_CFG   0x064a080b
 #define LS1021_CEVA_PHY5_CFG   0x2aa86470
 
-/* for ls1088a */
-#define LS1088_ECC_DIS_ADDR_CH2        0x100520
-#define LS1088_ECC_DIS_VAL_CH2 0x40000000
-
-/* ecc addr-val pair */
-#define ECC_DIS_ADDR_CH2       0x20140520
+/* ecc val pair */
+#define ECC_DIS_VAL_CH1                0x00020000
 #define ECC_DIS_VAL_CH2                0x80000000
-#define SATA_ECC_REG_ADDR      0x20220520
-#define SATA_ECC_DISABLE       0x00020000
+#define ECC_DIS_VAL_CH3                0x40000000
 
 enum ceva_soc {
        CEVA_1V84,
        CEVA_LS1012A,
        CEVA_LS1021A,
+       CEVA_LS1028A,
        CEVA_LS1043A,
        CEVA_LS1046A,
        CEVA_LS1088A,
@@ -110,12 +107,14 @@ enum ceva_soc {
 
 struct ceva_sata_priv {
        ulong base;
+       ulong ecc_base;
        enum ceva_soc soc;
        ulong flag;
 };
 
 static int ceva_init_sata(struct ceva_sata_priv *priv)
 {
+       ulong ecc_addr = priv->ecc_base;
        ulong base = priv->base;
        ulong tmp;
 
@@ -132,38 +131,42 @@ static int ceva_init_sata(struct ceva_sata_priv *priv)
                break;
 
        case CEVA_LS1021A:
-               writel(SATA_ECC_DISABLE, SATA_ECC_REG_ADDR);
+               if (!ecc_addr)
+                       return -EINVAL;
+               writel(ECC_DIS_VAL_CH1, ecc_addr);
                writel(CEVA_PHY1_CFG, base + AHCI_VEND_PPCFG);
                writel(LS1021_CEVA_PHY2_CFG, base + AHCI_VEND_PP2C);
                writel(LS1021_CEVA_PHY3_CFG, base + AHCI_VEND_PP3C);
                writel(LS1021_CEVA_PHY4_CFG, base + AHCI_VEND_PP4C);
                writel(LS1021_CEVA_PHY5_CFG, base + AHCI_VEND_PP5C);
                writel(CEVA_TRANS_CFG, base + AHCI_VEND_PTC);
-               if (priv->flag & FLAG_COHERENT)
-                       writel(CEVA_AXICC_CFG, base + LS1021_AHCI_VEND_AXICC);
                break;
 
        case CEVA_LS1012A:
        case CEVA_LS1043A:
        case CEVA_LS1046A:
-               writel(ECC_DIS_VAL_CH2, ECC_DIS_ADDR_CH2);
+               if (!ecc_addr)
+                       return -EINVAL;
+               writel(ECC_DIS_VAL_CH2, ecc_addr);
                /* fallthrough */
        case CEVA_LS2080A:
                writel(CEVA_PHY1_CFG, base + AHCI_VEND_PPCFG);
                writel(CEVA_TRANS_CFG, base + AHCI_VEND_PTC);
-               if (priv->flag & FLAG_COHERENT)
-                       writel(CEVA_AXICC_CFG, base + AHCI_VEND_AXICC);
                break;
 
+       case CEVA_LS1028A:
        case CEVA_LS1088A:
-               writel(LS1088_ECC_DIS_VAL_CH2, LS1088_ECC_DIS_ADDR_CH2);
+               if (!ecc_addr)
+                       return -EINVAL;
+               writel(ECC_DIS_VAL_CH3, ecc_addr);
                writel(CEVA_PHY1_CFG, base + AHCI_VEND_PPCFG);
                writel(CEVA_TRANS_CFG, base + AHCI_VEND_PTC);
-               if (priv->flag & FLAG_COHERENT)
-                       writel(CEVA_AXICC_CFG, base + AHCI_VEND_AXICC);
                break;
        }
 
+       if (priv->flag & FLAG_COHERENT)
+               writel(CEVA_AXICC_CFG, base + AHCI_VEND_AXICC);
+
        return 0;
 }
 
@@ -187,6 +190,7 @@ static const struct udevice_id sata_ceva_ids[] = {
        { .compatible = "ceva,ahci-1v84", .data = CEVA_1V84 },
        { .compatible = "fsl,ls1012a-ahci", .data = CEVA_LS1012A },
        { .compatible = "fsl,ls1021a-ahci", .data = CEVA_LS1021A },
+       { .compatible = "fsl,ls1028a-ahci", .data = CEVA_LS1028A },
        { .compatible = "fsl,ls1043a-ahci", .data = CEVA_LS1043A },
        { .compatible = "fsl,ls1046a-ahci", .data = CEVA_LS1046A },
        { .compatible = "fsl,ls1088a-ahci", .data = CEVA_LS1088A },
@@ -197,6 +201,8 @@ static const struct udevice_id sata_ceva_ids[] = {
 static int sata_ceva_ofdata_to_platdata(struct udevice *dev)
 {
        struct ceva_sata_priv *priv = dev_get_priv(dev);
+       struct resource res_regs;
+       int ret;
 
        if (dev_read_bool(dev, "dma-coherent"))
                priv->flag |= FLAG_COHERENT;
@@ -205,8 +211,18 @@ static int sata_ceva_ofdata_to_platdata(struct udevice *dev)
        if (priv->base == FDT_ADDR_T_NONE)
                return -EINVAL;
 
+       ret = dev_read_resource_byname(dev, "ecc-addr", &res_regs);
+       if (ret)
+               priv->ecc_base = 0;
+       else
+               priv->ecc_base = res_regs.start;
+
        priv->soc = dev_get_driver_data(dev);
 
+       debug("ccsr-sata-base %lx\t ecc-base %lx\n",
+             priv->base,
+             priv->ecc_base);
+
        return 0;
 }
 
index 24859fd054eec8812726eed3a98472fef97d9a1d..6272b00b9efc7b976d2132f7900977937260789b 100644 (file)
@@ -1448,6 +1448,71 @@ static void pll_csg(struct stm32mp1_clk_priv *priv, int pll_id, u32 *csg)
        setbits_le32(priv->base + pll[pll_id].pllxcr, RCC_PLLNCR_SSCG_CTRL);
 }
 
+static  __maybe_unused int pll_set_rate(struct udevice *dev,
+                                       int pll_id,
+                                       int div_id,
+                                       unsigned long clk_rate)
+{
+       struct stm32mp1_clk_priv *priv = dev_get_priv(dev);
+       unsigned int pllcfg[PLLCFG_NB];
+       ofnode plloff;
+       char name[12];
+       const struct stm32mp1_clk_pll *pll = priv->data->pll;
+       enum stm32mp1_plltype type = pll[pll_id].plltype;
+       int divm, divn, divy;
+       int ret;
+       ulong fck_ref;
+       u32 fracv;
+       u64 value;
+
+       if (div_id > _DIV_NB)
+               return -EINVAL;
+
+       sprintf(name, "st,pll@%d", pll_id);
+       plloff = dev_read_subnode(dev, name);
+       if (!ofnode_valid(plloff))
+               return -FDT_ERR_NOTFOUND;
+
+       ret = ofnode_read_u32_array(plloff, "cfg",
+                                   pllcfg, PLLCFG_NB);
+       if (ret < 0)
+               return -FDT_ERR_NOTFOUND;
+
+       fck_ref = pll_get_fref_ck(priv, pll_id);
+
+       divm = pllcfg[PLLCFG_M];
+       /* select output divider = 0: for _DIV_P, 1:_DIV_Q 2:_DIV_R */
+       divy = pllcfg[PLLCFG_P + div_id];
+
+       /* For: PLL1 & PLL2 => VCO is * 2 but ck_pll_y is also / 2
+        * So same final result than PLL2 et 4
+        * with FRACV
+        * Fck_pll_y = Fck_ref * ((DIVN + 1) + FRACV / 2^13)
+        *             / (DIVy + 1) * (DIVM + 1)
+        * value = (DIVN + 1) * 2^13 + FRACV / 2^13
+        *       = Fck_pll_y (DIVy + 1) * (DIVM + 1) * 2^13 / Fck_ref
+        */
+       value = ((u64)clk_rate * (divy + 1) * (divm + 1)) << 13;
+       value = lldiv(value, fck_ref);
+
+       divn = (value >> 13) - 1;
+       if (divn < DIVN_MIN ||
+           divn > stm32mp1_pll[type].divn_max) {
+               pr_err("divn invalid = %d", divn);
+               return -EINVAL;
+       }
+       fracv = value - ((divn + 1) << 13);
+       pllcfg[PLLCFG_N] = divn;
+
+       /* reconfigure PLL */
+       pll_stop(priv, pll_id);
+       pll_config(priv, pll_id, pllcfg, fracv);
+       pll_start(priv, pll_id);
+       pll_output(priv, pll_id, pllcfg[PLLCFG_O]);
+
+       return 0;
+}
+
 static int set_clksrc(struct stm32mp1_clk_priv *priv, unsigned int clksrc)
 {
        u32 address = priv->base + (clksrc >> 4);
@@ -1820,6 +1885,11 @@ static ulong stm32mp1_clk_set_rate(struct clk *clk, unsigned long clk_rate)
        int p;
 
        switch (clk->id) {
+#if defined(STM32MP1_CLOCK_TREE_INIT) && \
+       defined(CONFIG_STM32MP1_DDR_INTERACTIVE)
+       case DDRPHYC:
+               break;
+#endif
        case LTDC_PX:
        case DSI_PX:
                break;
@@ -1833,6 +1903,19 @@ static ulong stm32mp1_clk_set_rate(struct clk *clk, unsigned long clk_rate)
                return -EINVAL;
 
        switch (p) {
+#if defined(STM32MP1_CLOCK_TREE_INIT) && \
+       defined(CONFIG_STM32MP1_DDR_INTERACTIVE)
+       case _PLL2_R: /* DDRPHYC */
+       {
+               /* only for change DDR clock in interactive mode */
+               ulong result;
+
+               set_clksrc(priv, CLK_AXI_HSI);
+               result = pll_set_rate(clk->dev,  _PLL2, _DIV_R, clk_rate);
+               set_clksrc(priv, CLK_AXI_PLL2P);
+               return result;
+       }
+#endif
        case _PLL4_Q:
                /* for LTDC_PX and DSI_PX case */
                return pll_set_output_rate(clk->dev, _PLL4, _DIV_Q, clk_rate);
index cc0c031e0d7a359d871baf7b04f8d7ffa48fa021..c72c6e26737b610b52eaedd5e6d4fbc3ecdc9035 100644 (file)
@@ -39,7 +39,7 @@ int ofnode_read_u32(ofnode node, const char *propname, u32 *outp)
        return 0;
 }
 
-int ofnode_read_u32_default(ofnode node, const char *propname, u32 def)
+u32 ofnode_read_u32_default(ofnode node, const char *propname, u32 def)
 {
        assert(ofnode_valid(node));
        ofnode_read_u32(node, propname, &def);
@@ -251,7 +251,7 @@ int ofnode_read_size(ofnode node, const char *propname)
        return -EINVAL;
 }
 
-fdt_addr_t ofnode_get_addr_index(ofnode node, int index)
+fdt_addr_t ofnode_get_addr_size_index(ofnode node, int index, fdt_size_t *size)
 {
        int na, ns;
 
@@ -260,7 +260,7 @@ fdt_addr_t ofnode_get_addr_index(ofnode node, int index)
                uint flags;
 
                prop_val = of_get_address(ofnode_to_np(node), index,
-                                         NULL, &flags);
+                                         (u64 *)size, &flags);
                if (!prop_val)
                        return FDT_ADDR_T_NONE;
 
@@ -277,12 +277,19 @@ fdt_addr_t ofnode_get_addr_index(ofnode node, int index)
                ns = ofnode_read_simple_size_cells(ofnode_get_parent(node));
                return fdtdec_get_addr_size_fixed(gd->fdt_blob,
                                                  ofnode_to_offset(node), "reg",
-                                                 index, na, ns, NULL, true);
+                                                 index, na, ns, size, true);
        }
 
        return FDT_ADDR_T_NONE;
 }
 
+fdt_addr_t ofnode_get_addr_index(ofnode node, int index)
+{
+       fdt_size_t size;
+
+       return ofnode_get_addr_size_index(node, index, &size);
+}
+
 fdt_addr_t ofnode_get_addr(ofnode node)
 {
        return ofnode_get_addr_index(node, 0);
index 8fa096648ed343e3f4e01982f278f8788ce3de19..aa5ca4087a592643ad9bbd3f4865633ef334a476 100644 (file)
@@ -342,7 +342,7 @@ int dm_extended_scan_fdt(const void *blob, bool pre_reloc_only)
 {
        int ret;
 
-       ret = dm_scan_fdt(gd->fdt_blob, pre_reloc_only);
+       ret = dm_scan_fdt(blob, pre_reloc_only);
        if (ret) {
                debug("dm_scan_fdt() failed: %d\n", ret);
                return ret;
index 04a2381acd818ceb045d2fbcfa80237f71e611d9..2eb1547b4f36de3f41f24218484c034b720076da 100644 (file)
@@ -185,12 +185,11 @@ static int gpio_dwapb_bind(struct udevice *dev)
                        plat->name = ofnode_get_name(node);
                }
 
-               ret = device_bind(dev, dev->driver, plat->name,
-                                 plat, -1, &subdev);
+               ret = device_bind_ofnode(dev, dev->driver, plat->name,
+                                        plat, node, &subdev);
                if (ret)
                        return ret;
 
-               dev->node = node;
                bank++;
        }
 
index 3872364d6bf59454cc26b5f19fdb0629c2c13c8d..50c4fd0de23ab7e8d54ab918a65336a2a56adc99 100644 (file)
@@ -500,7 +500,7 @@ static int stm32_i2c_compute_solutions(struct stm32_i2c_setup *setup,
        af_delay_max = setup->analog_filter ?
                       STM32_I2C_ANALOG_FILTER_DELAY_MAX : 0;
 
-       sdadel_min = setup->fall_time - i2c_specs[setup->speed].hddat_min -
+       sdadel_min = i2c_specs[setup->speed].hddat_min + setup->fall_time -
                     af_delay_min - (setup->dnf + 3) * i2cclk;
 
        sdadel_max = i2c_specs[setup->speed].vddat_max - setup->rise_time -
@@ -540,8 +540,12 @@ static int stm32_i2c_compute_solutions(struct stm32_i2c_setup *setup,
                                        p_prev = p;
 
                                        list_add_tail(&v->node, solutions);
+                                       break;
                                }
                        }
+
+                       if (p_prev == p)
+                               break;
                }
        }
 
index 0e645f58be0e8b7735057461e01f0c56a14c3601..cb8b5c04dbc464cae22f9621f762eea0f31be3aa 100644 (file)
@@ -13,6 +13,24 @@ config MISC
          set of generic read, write and ioctl methods may be used to
          access the device.
 
+config SPL_MISC
+       bool "Enable Driver Model for Misc drivers in SPL"
+       depends on SPL_DM
+       help
+         Enable driver model for miscellaneous devices. This class is
+         used only for those do not fit other more general classes. A
+         set of generic read, write and ioctl methods may be used to
+         access the device.
+
+config TPL_MISC
+       bool "Enable Driver Model for Misc drivers in TPL"
+       depends on TPL_DM
+       help
+         Enable driver model for miscellaneous devices. This class is
+         used only for those do not fit other more general classes. A
+         set of generic read, write and ioctl methods may be used to
+         access the device.
+
 config ALTERA_SYSID
        bool "Altera Sysid support"
        depends on MISC
@@ -68,6 +86,24 @@ config CROS_EC
          control access to the battery and main PMIC depending on the
          device. You can use the 'crosec' command to access it.
 
+config SPL_CROS_EC
+       bool "Enable Chrome OS EC in SPL"
+       help
+         Enable access to the Chrome OS EC in SPL. This is a separate
+         microcontroller typically available on a SPI bus on Chromebooks. It
+         provides access to the keyboard, some internal storage and may
+         control access to the battery and main PMIC depending on the
+         device. You can use the 'crosec' command to access it.
+
+config TPL_CROS_EC
+       bool "Enable Chrome OS EC in TPL"
+       help
+         Enable access to the Chrome OS EC in TPL. This is a separate
+         microcontroller typically available on a SPI bus on Chromebooks. It
+         provides access to the keyboard, some internal storage and may
+         control access to the battery and main PMIC depending on the
+         device. You can use the 'crosec' command to access it.
+
 config CROS_EC_I2C
        bool "Enable Chrome OS EC I2C driver"
        depends on CROS_EC
@@ -86,6 +122,24 @@ config CROS_EC_LPC
          through a legacy port interface, so on x86 machines the main
          function of the EC is power and thermal management.
 
+config SPL_CROS_EC_LPC
+       bool "Enable Chrome OS EC LPC driver in SPL"
+       depends on CROS_EC
+       help
+         Enable I2C access to the Chrome OS EC. This is used on x86
+         Chromebooks such as link and falco. The keyboard is provided
+         through a legacy port interface, so on x86 machines the main
+         function of the EC is power and thermal management.
+
+config TPL_CROS_EC_LPC
+       bool "Enable Chrome OS EC LPC driver in TPL"
+       depends on CROS_EC
+       help
+         Enable I2C access to the Chrome OS EC. This is used on x86
+         Chromebooks such as link and falco. The keyboard is provided
+         through a legacy port interface, so on x86 machines the main
+         function of the EC is power and thermal management.
+
 config CROS_EC_SANDBOX
        bool "Enable Chrome OS EC sandbox driver"
        depends on CROS_EC && SANDBOX
@@ -95,6 +149,24 @@ config CROS_EC_SANDBOX
          EC flash read/write/erase support and a few other things. It is
          enough to perform a Chrome OS verified boot on sandbox.
 
+config SPL_CROS_EC_SANDBOX
+       bool "Enable Chrome OS EC sandbox driver in SPL"
+       depends on SPL_CROS_EC && SANDBOX
+       help
+         Enable a sandbox emulation of the Chrome OS EC in SPL. This supports
+         keyboard (use the -l flag to enable the LCD), verified boot context,
+         EC flash read/write/erase support and a few other things. It is
+         enough to perform a Chrome OS verified boot on sandbox.
+
+config TPL_CROS_EC_SANDBOX
+       bool "Enable Chrome OS EC sandbox driver in TPL"
+       depends on TPL_CROS_EC && SANDBOX
+       help
+         Enable a sandbox emulation of the Chrome OS EC in TPL. This supports
+         keyboard (use the -l flag to enable the LCD), verified boot context,
+         EC flash read/write/erase support and a few other things. It is
+         enough to perform a Chrome OS verified boot on sandbox.
+
 config CROS_EC_SPI
        bool "Enable Chrome OS EC SPI driver"
        depends on CROS_EC
index 6bdf5054f47510a80aa1e27c9008b10b5b4d0570..509c588582d2e0f51ca0ca85b8f7b1e2bc3ac26c 100644 (file)
@@ -4,11 +4,13 @@
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 
 obj-$(CONFIG_MISC) += misc-uclass.o
+
+obj-$(CONFIG_$(SPL_TPL_)CROS_EC) += cros_ec.o
+obj-$(CONFIG_$(SPL_TPL_)CROS_EC_SANDBOX) += cros_ec_sandbox.o
+obj-$(CONFIG_$(SPL_TPL_)CROS_EC_LPC) += cros_ec_lpc.o
+
 ifndef CONFIG_SPL_BUILD
-obj-$(CONFIG_CROS_EC) += cros_ec.o
-obj-$(CONFIG_CROS_EC_LPC) += cros_ec_lpc.o
 obj-$(CONFIG_CROS_EC_I2C) += cros_ec_i2c.o
-obj-$(CONFIG_CROS_EC_SANDBOX) += cros_ec_sandbox.o
 obj-$(CONFIG_CROS_EC_SPI) += cros_ec_spi.o
 endif
 
index 377b2673a3233505b43e2aa241711713eb200118..672691fa6a716034b84f3140daec214970d12b7a 100644 (file)
@@ -1435,7 +1435,9 @@ void fdt_fixup_esdhc(void *blob, bd_t *bd)
 #endif
 
 #if CONFIG_IS_ENABLED(DM_MMC)
+#ifndef CONFIG_PPC
 #include <asm/arch/clock.h>
+#endif
 __weak void init_clk_usdhc(u32 index)
 {
 }
@@ -1460,8 +1462,11 @@ static int fsl_esdhc_probe(struct udevice *dev)
        addr = dev_read_addr(dev);
        if (addr == FDT_ADDR_T_NONE)
                return -EINVAL;
-
+#ifdef CONFIG_PPC
+       priv->esdhc_regs = (struct fsl_esdhc *)lower_32_bits(addr);
+#else
        priv->esdhc_regs = (struct fsl_esdhc *)addr;
+#endif
        priv->dev = dev;
        priv->mode = -1;
        if (data) {
@@ -1568,7 +1573,11 @@ static int fsl_esdhc_probe(struct udevice *dev)
 
                priv->sdhc_clk = clk_get_rate(&priv->per_clk);
        } else {
+#ifndef CONFIG_PPC
                priv->sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK + dev->seq);
+#else
+               priv->sdhc_clk = gd->arch.sdhc_clk;
+#endif
                if (priv->sdhc_clk <= 0) {
                        dev_err(dev, "Unable to get clk for %s\n", dev->name);
                        return -EINVAL;
index 64cdc58f92c318fe4b5048d12b809f712793c28a..e6a4fdf30e7e23272603cdaea0c304b31a0954b6 100644 (file)
@@ -195,6 +195,12 @@ config FEC_MXC
          This driver supports the 10/100 Fast Ethernet controller for
          NXP i.MX processors.
 
+config FMAN_ENET
+       bool "Freescale FMan ethernet support"
+       depends on ARM || PPC
+       help
+         This driver support the Freescale FMan Ethernet controller
+
 config FTMAC100
        bool "Ftmac100 Ethernet Support"
        help
index e19d7777dcbcb7e98669c391018cdca1657890df..0a43dfe74e961a20d0e2f277163183899c394d79 100644 (file)
@@ -459,7 +459,7 @@ int fm_init_common(int index, struct ccsr_fman *reg)
                printf("NAND read of FMAN firmware at offset 0x%x failed %d\n",
                        CONFIG_SYS_FMAN_FW_ADDR, rc);
        }
-#elif defined(CONFIG_SYS_QE_FW_IN_SPIFLASH)
+#elif defined(CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH)
        struct spi_flash *ucode_flash;
        void *addr = malloc(CONFIG_SYS_QE_FMAN_FW_LENGTH);
        int ret = 0;
index bfc43fe58e2db19b8f2475606def625406ac1e88..429bb836a8a041146ec92b338ba566f2d03d9b2e 100644 (file)
@@ -113,6 +113,14 @@ config PCIE_LAYERSCAPE
          PCIe controllers. The PCIe may works in RC or EP mode according to
          RCW[HOST_AGT_PEX] setting.
 
+config PCIE_LAYERSCAPE_GEN4
+       bool "Layerscape Gen4 PCIe support"
+       depends on DM_PCI
+       help
+         Support PCIe Gen4 on NXP Layerscape SoCs, which may have one or
+         several PCIe controllers. The PCIe controller can work in RC or
+         EP mode according to RCW[HOST_AGT_PEX] setting.
+
 config PCIE_INTEL_FPGA
        bool "Intel FPGA PCIe support"
        depends on DM_PCI
index e551f203d0ac7a087e49712d47dcb45e4f81481c..bd392edba179e35ab5f55cbb507156783c5f48c1 100644 (file)
@@ -33,5 +33,7 @@ obj-$(CONFIG_PCI_AARDVARK) += pci-aardvark.o
 obj-$(CONFIG_PCIE_DW_MVEBU) += pcie_dw_mvebu.o
 obj-$(CONFIG_PCIE_LAYERSCAPE) += pcie_layerscape.o
 obj-$(CONFIG_PCIE_LAYERSCAPE) += pcie_layerscape_fixup.o
+obj-$(CONFIG_PCIE_LAYERSCAPE_GEN4) += pcie_layerscape_gen4.o \
+                               pcie_layerscape_gen4_fixup.o
 obj-$(CONFIG_PCI_XILINX) += pcie_xilinx.o
 obj-$(CONFIG_PCIE_INTEL_FPGA) += pcie_intel_fpga.o
diff --git a/drivers/pci/pcie_layerscape_gen4.c b/drivers/pci/pcie_layerscape_gen4.c
new file mode 100644 (file)
index 0000000..1fd8761
--- /dev/null
@@ -0,0 +1,572 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * Copyright 2018-2019 NXP
+ *
+ * PCIe Gen4 driver for NXP Layerscape SoCs
+ * Author: Hou Zhiqiang <Minder.Hou@gmail.com>
+ */
+
+#include <common.h>
+#include <asm/arch/fsl_serdes.h>
+#include <pci.h>
+#include <asm/io.h>
+#include <errno.h>
+#include <malloc.h>
+#include <dm.h>
+#include <linux/sizes.h>
+
+#include "pcie_layerscape_gen4.h"
+
+DECLARE_GLOBAL_DATA_PTR;
+
+LIST_HEAD(ls_pcie_g4_list);
+
+static u64 bar_size[4] = {
+       PCIE_BAR0_SIZE,
+       PCIE_BAR1_SIZE,
+       PCIE_BAR2_SIZE,
+       PCIE_BAR4_SIZE
+};
+
+static int ls_pcie_g4_ltssm(struct ls_pcie_g4 *pcie)
+{
+       u32 state;
+
+       state = pf_ctrl_readl(pcie, PCIE_LTSSM_STA) & LTSSM_STATE_MASK;
+
+       return state;
+}
+
+static int ls_pcie_g4_link_up(struct ls_pcie_g4 *pcie)
+{
+       int ltssm;
+
+       ltssm = ls_pcie_g4_ltssm(pcie);
+       if (ltssm != LTSSM_PCIE_L0)
+               return 0;
+
+       return 1;
+}
+
+static void ls_pcie_g4_ep_enable_cfg(struct ls_pcie_g4 *pcie)
+{
+       ccsr_writel(pcie, GPEX_CFG_READY, PCIE_CONFIG_READY);
+}
+
+static void ls_pcie_g4_cfg_set_target(struct ls_pcie_g4 *pcie, u32 target)
+{
+       ccsr_writel(pcie, PAB_AXI_AMAP_PEX_WIN_L(0), target);
+       ccsr_writel(pcie, PAB_AXI_AMAP_PEX_WIN_H(0), 0);
+}
+
+static int ls_pcie_g4_outbound_win_set(struct ls_pcie_g4 *pcie, int idx,
+                                      int type, u64 phys, u64 bus_addr,
+                                      pci_size_t size)
+{
+       u32 val;
+       u32 size_h, size_l;
+
+       if (idx >= PAB_WINS_NUM)
+               return -EINVAL;
+
+       size_h = upper_32_bits(~(size - 1));
+       size_l = lower_32_bits(~(size - 1));
+
+       val = ccsr_readl(pcie, PAB_AXI_AMAP_CTRL(idx));
+       val &= ~((AXI_AMAP_CTRL_TYPE_MASK << AXI_AMAP_CTRL_TYPE_SHIFT) |
+               (AXI_AMAP_CTRL_SIZE_MASK << AXI_AMAP_CTRL_SIZE_SHIFT) |
+               AXI_AMAP_CTRL_EN);
+       val |= ((type & AXI_AMAP_CTRL_TYPE_MASK) << AXI_AMAP_CTRL_TYPE_SHIFT) |
+               ((size_l >> AXI_AMAP_CTRL_SIZE_SHIFT) <<
+               AXI_AMAP_CTRL_SIZE_SHIFT) | AXI_AMAP_CTRL_EN;
+
+       ccsr_writel(pcie, PAB_AXI_AMAP_CTRL(idx), val);
+
+       ccsr_writel(pcie, PAB_AXI_AMAP_AXI_WIN(idx), lower_32_bits(phys));
+       ccsr_writel(pcie, PAB_EXT_AXI_AMAP_AXI_WIN(idx), upper_32_bits(phys));
+       ccsr_writel(pcie, PAB_AXI_AMAP_PEX_WIN_L(idx), lower_32_bits(bus_addr));
+       ccsr_writel(pcie, PAB_AXI_AMAP_PEX_WIN_H(idx), upper_32_bits(bus_addr));
+       ccsr_writel(pcie, PAB_EXT_AXI_AMAP_SIZE(idx), size_h);
+
+       return 0;
+}
+
+static int ls_pcie_g4_rc_inbound_win_set(struct ls_pcie_g4 *pcie, int idx,
+                                        int type, u64 phys, u64 bus_addr,
+                                        pci_size_t size)
+{
+       u32 val;
+       pci_size_t win_size = ~(size - 1);
+
+       val = ccsr_readl(pcie, PAB_PEX_AMAP_CTRL(idx));
+
+       val &= ~(PEX_AMAP_CTRL_TYPE_MASK << PEX_AMAP_CTRL_TYPE_SHIFT);
+       val &= ~(PEX_AMAP_CTRL_EN_MASK << PEX_AMAP_CTRL_EN_SHIFT);
+       val = (val | (type << PEX_AMAP_CTRL_TYPE_SHIFT));
+       val = (val | (1 << PEX_AMAP_CTRL_EN_SHIFT));
+
+       ccsr_writel(pcie, PAB_PEX_AMAP_CTRL(idx),
+                   val | lower_32_bits(win_size));
+
+       ccsr_writel(pcie, PAB_EXT_PEX_AMAP_SIZE(idx), upper_32_bits(win_size));
+       ccsr_writel(pcie, PAB_PEX_AMAP_AXI_WIN(idx), lower_32_bits(phys));
+       ccsr_writel(pcie, PAB_EXT_PEX_AMAP_AXI_WIN(idx), upper_32_bits(phys));
+       ccsr_writel(pcie, PAB_PEX_AMAP_PEX_WIN_L(idx), lower_32_bits(bus_addr));
+       ccsr_writel(pcie, PAB_PEX_AMAP_PEX_WIN_H(idx), upper_32_bits(bus_addr));
+
+       return 0;
+}
+
+static void ls_pcie_g4_dump_wins(struct ls_pcie_g4 *pcie, int wins)
+{
+       int i;
+
+       for (i = 0; i < wins; i++) {
+               debug("APIO Win%d:\n", i);
+               debug("\tLOWER PHYS:    0x%08x\n",
+                     ccsr_readl(pcie, PAB_AXI_AMAP_AXI_WIN(i)));
+               debug("\tUPPER PHYS:    0x%08x\n",
+                     ccsr_readl(pcie, PAB_EXT_AXI_AMAP_AXI_WIN(i)));
+               debug("\tLOWER BUS:     0x%08x\n",
+                     ccsr_readl(pcie, PAB_AXI_AMAP_PEX_WIN_L(i)));
+               debug("\tUPPER BUS:     0x%08x\n",
+                     ccsr_readl(pcie, PAB_AXI_AMAP_PEX_WIN_H(i)));
+               debug("\tSIZE:          0x%08x\n",
+                     ccsr_readl(pcie, PAB_AXI_AMAP_CTRL(i)) &
+                     (AXI_AMAP_CTRL_SIZE_MASK << AXI_AMAP_CTRL_SIZE_SHIFT));
+               debug("\tEXT_SIZE:      0x%08x\n",
+                     ccsr_readl(pcie, PAB_EXT_AXI_AMAP_SIZE(i)));
+               debug("\tPARAM:         0x%08x\n",
+                     ccsr_readl(pcie, PAB_AXI_AMAP_PCI_HDR_PARAM(i)));
+               debug("\tCTRL:          0x%08x\n",
+                     ccsr_readl(pcie, PAB_AXI_AMAP_CTRL(i)));
+       }
+}
+
+static void ls_pcie_g4_setup_wins(struct ls_pcie_g4 *pcie)
+{
+       struct pci_region *io, *mem, *pref;
+       int idx = 1;
+
+       /* INBOUND WIN */
+       ls_pcie_g4_rc_inbound_win_set(pcie, 0, IB_TYPE_MEM_F, 0, 0, SIZE_1T);
+
+       /* OUTBOUND WIN 0: CFG */
+       ls_pcie_g4_outbound_win_set(pcie, 0, PAB_AXI_TYPE_CFG,
+                                   pcie->cfg_res.start, 0,
+                                   fdt_resource_size(&pcie->cfg_res));
+
+       pci_get_regions(pcie->bus, &io, &mem, &pref);
+
+       if (io)
+               /* OUTBOUND WIN: IO */
+               ls_pcie_g4_outbound_win_set(pcie, idx++, PAB_AXI_TYPE_IO,
+                                           io->phys_start, io->bus_start,
+                                           io->size);
+
+       if (mem)
+               /* OUTBOUND WIN: MEM */
+               ls_pcie_g4_outbound_win_set(pcie, idx++, PAB_AXI_TYPE_MEM,
+                                           mem->phys_start, mem->bus_start,
+                                           mem->size);
+
+       if (pref)
+               /* OUTBOUND WIN: perf MEM */
+               ls_pcie_g4_outbound_win_set(pcie, idx++, PAB_AXI_TYPE_MEM,
+                                           pref->phys_start, pref->bus_start,
+                                           pref->size);
+
+       ls_pcie_g4_dump_wins(pcie, idx);
+}
+
+/* Return 0 if the address is valid, -errno if not valid */
+static int ls_pcie_g4_addr_valid(struct ls_pcie_g4 *pcie, pci_dev_t bdf)
+{
+       struct udevice *bus = pcie->bus;
+
+       if (pcie->mode == PCI_HEADER_TYPE_NORMAL)
+               return -ENODEV;
+
+       if (!pcie->enabled)
+               return -ENXIO;
+
+       if (PCI_BUS(bdf) < bus->seq)
+               return -EINVAL;
+
+       if ((PCI_BUS(bdf) > bus->seq) && (!ls_pcie_g4_link_up(pcie)))
+               return -EINVAL;
+
+       if (PCI_BUS(bdf) <= (bus->seq + 1) && (PCI_DEV(bdf) > 0))
+               return -EINVAL;
+
+       return 0;
+}
+
+void *ls_pcie_g4_conf_address(struct ls_pcie_g4 *pcie, pci_dev_t bdf,
+                             int offset)
+{
+       struct udevice *bus = pcie->bus;
+       u32 target;
+
+       if (PCI_BUS(bdf) == bus->seq) {
+               if (offset < INDIRECT_ADDR_BNDRY) {
+                       ccsr_set_page(pcie, 0);
+                       return pcie->ccsr + offset;
+               }
+
+               ccsr_set_page(pcie, OFFSET_TO_PAGE_IDX(offset));
+               return pcie->ccsr + OFFSET_TO_PAGE_ADDR(offset);
+       }
+
+       target = PAB_TARGET_BUS(PCI_BUS(bdf) - bus->seq) |
+                PAB_TARGET_DEV(PCI_DEV(bdf)) |
+                PAB_TARGET_FUNC(PCI_FUNC(bdf));
+
+       ls_pcie_g4_cfg_set_target(pcie, target);
+
+       return pcie->cfg + offset;
+}
+
+static int ls_pcie_g4_read_config(struct udevice *bus, pci_dev_t bdf,
+                                 uint offset, ulong *valuep,
+                                 enum pci_size_t size)
+{
+       struct ls_pcie_g4 *pcie = dev_get_priv(bus);
+       void *address;
+       int ret = 0;
+
+       if (ls_pcie_g4_addr_valid(pcie, bdf)) {
+               *valuep = pci_get_ff(size);
+               return 0;
+       }
+
+       address = ls_pcie_g4_conf_address(pcie, bdf, offset);
+
+       switch (size) {
+       case PCI_SIZE_8:
+               *valuep = readb(address);
+               break;
+       case PCI_SIZE_16:
+               *valuep = readw(address);
+               break;
+       case PCI_SIZE_32:
+               *valuep = readl(address);
+               break;
+       default:
+               ret = -EINVAL;
+               break;
+       }
+
+       return ret;
+}
+
+static int ls_pcie_g4_write_config(struct udevice *bus, pci_dev_t bdf,
+                                  uint offset, ulong value,
+                                  enum pci_size_t size)
+{
+       struct ls_pcie_g4 *pcie = dev_get_priv(bus);
+       void *address;
+
+       if (ls_pcie_g4_addr_valid(pcie, bdf))
+               return 0;
+
+       address = ls_pcie_g4_conf_address(pcie, bdf, offset);
+
+       switch (size) {
+       case PCI_SIZE_8:
+               writeb(value, address);
+               return 0;
+       case PCI_SIZE_16:
+               writew(value, address);
+               return 0;
+       case PCI_SIZE_32:
+               writel(value, address);
+               return 0;
+       default:
+               return -EINVAL;
+       }
+}
+
+static void ls_pcie_g4_setup_ctrl(struct ls_pcie_g4 *pcie)
+{
+       u32 val;
+
+       /* Fix class code */
+       val = ccsr_readl(pcie, GPEX_CLASSCODE);
+       val &= ~(GPEX_CLASSCODE_MASK << GPEX_CLASSCODE_SHIFT);
+       val |= PCI_CLASS_BRIDGE_PCI << GPEX_CLASSCODE_SHIFT;
+       ccsr_writel(pcie, GPEX_CLASSCODE, val);
+
+       /* Enable APIO and Memory/IO/CFG Wins */
+       val = ccsr_readl(pcie, PAB_AXI_PIO_CTRL(0));
+       val |= APIO_EN | MEM_WIN_EN | IO_WIN_EN | CFG_WIN_EN;
+       ccsr_writel(pcie, PAB_AXI_PIO_CTRL(0), val);
+
+       ls_pcie_g4_setup_wins(pcie);
+
+       pcie->stream_id_cur = 0;
+}
+
+static void ls_pcie_g4_ep_inbound_win_set(struct ls_pcie_g4 *pcie, int pf,
+                                         int bar, u64 phys)
+{
+       u32 val;
+
+       /* PF BAR1 is for MSI-X and only need to enable */
+       if (bar == 1) {
+               ccsr_writel(pcie, PAB_PEX_BAR_AMAP(pf, bar), BAR_AMAP_EN);
+               return;
+       }
+
+       val = upper_32_bits(phys);
+       ccsr_writel(pcie, PAB_EXT_PEX_BAR_AMAP(pf, bar), val);
+       val = lower_32_bits(phys) | BAR_AMAP_EN;
+       ccsr_writel(pcie, PAB_PEX_BAR_AMAP(pf, bar), val);
+}
+
+static void ls_pcie_g4_ep_setup_wins(struct ls_pcie_g4 *pcie, int pf)
+{
+       u64 phys;
+       int bar;
+       u32 val;
+
+       if ((!pcie->sriov_support && pf > LS_G4_PF0) || pf > LS_G4_PF1)
+               return;
+
+       phys = CONFIG_SYS_PCI_EP_MEMORY_BASE + PCIE_BAR_SIZE * 4 * pf;
+       for (bar = 0; bar < PF_BAR_NUM; bar++) {
+               ls_pcie_g4_ep_inbound_win_set(pcie, pf, bar, phys);
+               phys += PCIE_BAR_SIZE;
+       }
+
+       /* OUTBOUND: map MEM */
+       ls_pcie_g4_outbound_win_set(pcie, pf, PAB_AXI_TYPE_MEM,
+                                   pcie->cfg_res.start +
+                                   CONFIG_SYS_PCI_MEMORY_SIZE * pf, 0x0,
+                                   CONFIG_SYS_PCI_MEMORY_SIZE);
+
+       val = ccsr_readl(pcie, PAB_AXI_AMAP_PCI_HDR_PARAM(pf));
+       val &= ~FUNC_NUM_PCIE_MASK;
+       val |= pf;
+       ccsr_writel(pcie, PAB_AXI_AMAP_PCI_HDR_PARAM(pf), val);
+}
+
+static void ls_pcie_g4_ep_enable_bar(struct ls_pcie_g4 *pcie, int pf,
+                                    int bar, bool vf_bar, bool enable)
+{
+       u32 val;
+       u32 bar_pos = BAR_POS(bar, pf, vf_bar);
+
+       val = ccsr_readl(pcie, GPEX_BAR_ENABLE);
+       if (enable)
+               val |= 1 << bar_pos;
+       else
+               val &= ~(1 << bar_pos);
+       ccsr_writel(pcie, GPEX_BAR_ENABLE, val);
+}
+
+static void ls_pcie_g4_ep_set_bar_size(struct ls_pcie_g4 *pcie, int pf,
+                                      int bar, bool vf_bar, u64 size)
+{
+       u32 bar_pos = BAR_POS(bar, pf, vf_bar);
+       u32 mask_l = lower_32_bits(~(size - 1));
+       u32 mask_h = upper_32_bits(~(size - 1));
+
+       ccsr_writel(pcie, GPEX_BAR_SELECT, bar_pos);
+       ccsr_writel(pcie, GPEX_BAR_SIZE_LDW, mask_l);
+       ccsr_writel(pcie, GPEX_BAR_SIZE_UDW, mask_h);
+}
+
+static void ls_pcie_g4_ep_setup_bar(struct ls_pcie_g4 *pcie, int pf,
+                                   int bar, bool vf_bar, u64 size)
+{
+       bool en = size ? true : false;
+
+       ls_pcie_g4_ep_enable_bar(pcie, pf, bar, vf_bar, en);
+       ls_pcie_g4_ep_set_bar_size(pcie, pf, bar, vf_bar, size);
+}
+
+static void ls_pcie_g4_ep_setup_bars(struct ls_pcie_g4 *pcie, int pf)
+{
+       int bar;
+
+       /* Setup PF BARs */
+       for (bar = 0; bar < PF_BAR_NUM; bar++)
+               ls_pcie_g4_ep_setup_bar(pcie, pf, bar, false, bar_size[bar]);
+
+       if (!pcie->sriov_support)
+               return;
+
+       /* Setup VF BARs */
+       for (bar = 0; bar < VF_BAR_NUM; bar++)
+               ls_pcie_g4_ep_setup_bar(pcie, pf, bar, true, bar_size[bar]);
+}
+
+static void ls_pcie_g4_set_sriov(struct ls_pcie_g4 *pcie, int pf)
+{
+       unsigned int val;
+
+       val =  ccsr_readl(pcie, GPEX_SRIOV_INIT_VFS_TOTAL_VF(pf));
+       val &= ~(TTL_VF_MASK << TTL_VF_SHIFT);
+       val |= PCIE_VF_NUM << TTL_VF_SHIFT;
+       val &= ~(INI_VF_MASK << INI_VF_SHIFT);
+       val |= PCIE_VF_NUM << INI_VF_SHIFT;
+       ccsr_writel(pcie, GPEX_SRIOV_INIT_VFS_TOTAL_VF(pf), val);
+
+       val =  ccsr_readl(pcie, PCIE_SRIOV_VF_OFFSET_STRIDE);
+       val += PCIE_VF_NUM * pf - pf;
+       ccsr_writel(pcie, GPEX_SRIOV_VF_OFFSET_STRIDE(pf), val);
+}
+
+static void ls_pcie_g4_setup_ep(struct ls_pcie_g4 *pcie)
+{
+       u32 pf, sriov;
+       u32 val;
+       int i;
+
+       /* Enable APIO and Memory Win */
+       val = ccsr_readl(pcie, PAB_AXI_PIO_CTRL(0));
+       val |= APIO_EN | MEM_WIN_EN;
+       ccsr_writel(pcie, PAB_AXI_PIO_CTRL(0), val);
+
+       sriov = ccsr_readl(pcie, PCIE_SRIOV_CAPABILITY);
+       if (PCI_EXT_CAP_ID(sriov) == PCI_EXT_CAP_ID_SRIOV)
+               pcie->sriov_support = 1;
+
+       pf = pcie->sriov_support ? PCIE_PF_NUM : 1;
+
+       for (i = 0; i < pf; i++) {
+               ls_pcie_g4_ep_setup_bars(pcie, i);
+               ls_pcie_g4_ep_setup_wins(pcie, i);
+               if (pcie->sriov_support)
+                       ls_pcie_g4_set_sriov(pcie, i);
+       }
+
+       ls_pcie_g4_ep_enable_cfg(pcie);
+       ls_pcie_g4_dump_wins(pcie, pf);
+}
+
+static int ls_pcie_g4_probe(struct udevice *dev)
+{
+       struct ls_pcie_g4 *pcie = dev_get_priv(dev);
+       const void *fdt = gd->fdt_blob;
+       int node = dev_of_offset(dev);
+       u32 link_ctrl_sta;
+       u32 val;
+       int ret;
+
+       pcie->bus = dev;
+
+       ret = fdt_get_named_resource(fdt, node, "reg", "reg-names",
+                                    "ccsr", &pcie->ccsr_res);
+       if (ret) {
+               printf("ls-pcie-g4: resource \"ccsr\" not found\n");
+               return ret;
+       }
+
+       pcie->idx = (pcie->ccsr_res.start - PCIE_SYS_BASE_ADDR) /
+                   PCIE_CCSR_SIZE;
+
+       list_add(&pcie->list, &ls_pcie_g4_list);
+
+       pcie->enabled = is_serdes_configured(PCIE_SRDS_PRTCL(pcie->idx));
+       if (!pcie->enabled) {
+               printf("PCIe%d: %s disabled\n", pcie->idx, dev->name);
+               return 0;
+       }
+
+       pcie->ccsr = map_physmem(pcie->ccsr_res.start,
+                                fdt_resource_size(&pcie->ccsr_res),
+                                MAP_NOCACHE);
+
+       ret = fdt_get_named_resource(fdt, node, "reg", "reg-names",
+                                    "config", &pcie->cfg_res);
+       if (ret) {
+               printf("%s: resource \"config\" not found\n", dev->name);
+               return ret;
+       }
+
+       pcie->cfg = map_physmem(pcie->cfg_res.start,
+                               fdt_resource_size(&pcie->cfg_res),
+                               MAP_NOCACHE);
+
+       ret = fdt_get_named_resource(fdt, node, "reg", "reg-names",
+                                    "lut", &pcie->lut_res);
+       if (ret) {
+               printf("ls-pcie-g4: resource \"lut\" not found\n");
+               return ret;
+       }
+
+       pcie->lut = map_physmem(pcie->lut_res.start,
+                               fdt_resource_size(&pcie->lut_res),
+                               MAP_NOCACHE);
+
+       ret = fdt_get_named_resource(fdt, node, "reg", "reg-names",
+                                    "pf_ctrl", &pcie->pf_ctrl_res);
+       if (ret) {
+               printf("ls-pcie-g4: resource \"pf_ctrl\" not found\n");
+               return ret;
+       }
+
+       pcie->pf_ctrl = map_physmem(pcie->pf_ctrl_res.start,
+                                   fdt_resource_size(&pcie->pf_ctrl_res),
+                                   MAP_NOCACHE);
+
+       pcie->big_endian = fdtdec_get_bool(fdt, node, "big-endian");
+
+       debug("%s ccsr:%lx, cfg:0x%lx, big-endian:%d\n",
+             dev->name, (unsigned long)pcie->ccsr, (unsigned long)pcie->cfg,
+             pcie->big_endian);
+
+       pcie->mode = readb(pcie->ccsr + PCI_HEADER_TYPE) & 0x7f;
+
+       if (pcie->mode == PCI_HEADER_TYPE_NORMAL) {
+               printf("PCIe%u: %s %s", pcie->idx, dev->name, "Endpoint");
+               ls_pcie_g4_setup_ep(pcie);
+       } else {
+               printf("PCIe%u: %s %s", pcie->idx, dev->name, "Root Complex");
+               ls_pcie_g4_setup_ctrl(pcie);
+       }
+
+       /* Enable Amba & PEX PIO */
+       val = ccsr_readl(pcie, PAB_CTRL);
+       val |= PAB_CTRL_APIO_EN | PAB_CTRL_PPIO_EN;
+       ccsr_writel(pcie, PAB_CTRL, val);
+
+       val = ccsr_readl(pcie, PAB_PEX_PIO_CTRL(0));
+       val |= PPIO_EN;
+       ccsr_writel(pcie, PAB_PEX_PIO_CTRL(0), val);
+
+       if (!ls_pcie_g4_link_up(pcie)) {
+               /* Let the user know there's no PCIe link */
+               printf(": no link\n");
+               return 0;
+       }
+
+       /* Print the negotiated PCIe link width */
+       link_ctrl_sta = ccsr_readl(pcie, PCIE_LINK_CTRL_STA);
+       printf(": x%d gen%d\n",
+              (link_ctrl_sta >> PCIE_LINK_WIDTH_SHIFT & PCIE_LINK_WIDTH_MASK),
+              (link_ctrl_sta >> PCIE_LINK_SPEED_SHIFT) & PCIE_LINK_SPEED_MASK);
+
+       return 0;
+}
+
+static const struct dm_pci_ops ls_pcie_g4_ops = {
+       .read_config    = ls_pcie_g4_read_config,
+       .write_config   = ls_pcie_g4_write_config,
+};
+
+static const struct udevice_id ls_pcie_g4_ids[] = {
+       { .compatible = "fsl,lx2160a-pcie" },
+       { }
+};
+
+U_BOOT_DRIVER(pcie_layerscape_gen4) = {
+       .name = "pcie_layerscape_gen4",
+       .id = UCLASS_PCI,
+       .of_match = ls_pcie_g4_ids,
+       .ops = &ls_pcie_g4_ops,
+       .probe  = ls_pcie_g4_probe,
+       .priv_auto_alloc_size = sizeof(struct ls_pcie_g4),
+};
diff --git a/drivers/pci/pcie_layerscape_gen4.h b/drivers/pci/pcie_layerscape_gen4.h
new file mode 100644 (file)
index 0000000..27c2d09
--- /dev/null
@@ -0,0 +1,264 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2018-2019 NXP
+ *
+ * PCIe Gen4 driver for NXP Layerscape SoCs
+ * Author: Hou Zhiqiang <Minder.Hou@gmail.com>
+ */
+
+#ifndef _PCIE_LAYERSCAPE_GEN4_H_
+#define _PCIE_LAYERSCAPE_GEN4_H_
+#include <pci.h>
+#include <dm.h>
+
+#ifndef CONFIG_SYS_PCI_MEMORY_SIZE
+#define CONFIG_SYS_PCI_MEMORY_SIZE             (4 * 1024 * 1024 * 1024ULL)
+#endif
+
+#ifndef CONFIG_SYS_PCI_EP_MEMORY_BASE
+#define CONFIG_SYS_PCI_EP_MEMORY_BASE          CONFIG_SYS_LOAD_ADDR
+#endif
+
+#define PCIE_PF_NUM                            2
+#define PCIE_VF_NUM                            32
+
+#define LS_G4_PF0                              0
+#define LS_G4_PF1                              1
+#define PF_BAR_NUM                             4
+#define VF_BAR_NUM                             4
+#define PCIE_BAR_SIZE                          (8 * 1024)              /* 8K */
+#define PCIE_BAR0_SIZE                         PCIE_BAR_SIZE
+#define PCIE_BAR1_SIZE                         PCIE_BAR_SIZE
+#define PCIE_BAR2_SIZE                         PCIE_BAR_SIZE
+#define PCIE_BAR4_SIZE                         PCIE_BAR_SIZE
+#define SIZE_1T                                        (1024 * 1024 * 1024 * 1024ULL)
+
+/* GPEX CSR */
+#define GPEX_CLASSCODE                         0x474
+#define GPEX_CLASSCODE_SHIFT                   16
+#define GPEX_CLASSCODE_MASK                    0xffff
+
+#define GPEX_CFG_READY                         0x4b0
+#define PCIE_CONFIG_READY                      BIT(0)
+
+#define GPEX_BAR_ENABLE                                0x4d4
+#define GPEX_BAR_SIZE_LDW                      0x4d8
+#define GPEX_BAR_SIZE_UDW                      0x4dC
+#define GPEX_BAR_SELECT                                0x4e0
+
+#define BAR_POS(bar, pf, vf_bar)               \
+       ((bar) + (pf) * PF_BAR_NUM + (vf_bar) * PCIE_PF_NUM * PF_BAR_NUM)
+
+#define GPEX_SRIOV_INIT_VFS_TOTAL_VF(pf)       (0x644 + (pf) * 4)
+#define TTL_VF_MASK                            0xffff
+#define TTL_VF_SHIFT                           16
+#define INI_VF_MASK                            0xffff
+#define INI_VF_SHIFT                           0
+#define GPEX_SRIOV_VF_OFFSET_STRIDE(pf)                (0x704 + (pf) * 4)
+
+/* PAB CSR */
+#define PAB_CTRL                               0x808
+#define PAB_CTRL_APIO_EN                       BIT(0)
+#define PAB_CTRL_PPIO_EN                       BIT(1)
+#define PAB_CTRL_MAX_BRST_LEN_SHIFT            4
+#define PAB_CTRL_MAX_BRST_LEN_MASK             0x3
+#define PAB_CTRL_PAGE_SEL_SHIFT                        13
+#define PAB_CTRL_PAGE_SEL_MASK                 0x3f
+#define PAB_CTRL_FUNC_SEL_SHIFT                        19
+#define PAB_CTRL_FUNC_SEL_MASK                 0x1ff
+
+#define PAB_RST_CTRL                           0x820
+#define PAB_BR_STAT                            0x80c
+
+/* AXI PIO Engines */
+#define PAB_AXI_PIO_CTRL(idx)                  (0x840 + 0x10 * (idx))
+#define APIO_EN                                        BIT(0)
+#define MEM_WIN_EN                             BIT(1)
+#define IO_WIN_EN                              BIT(2)
+#define CFG_WIN_EN                             BIT(3)
+#define PAB_AXI_PIO_STAT(idx)                  (0x844 + 0x10 * (idx))
+#define PAB_AXI_PIO_SL_CMD_STAT(idx)           (0x848 + 0x10 * (idx))
+#define PAB_AXI_PIO_SL_ADDR_STAT(idx)          (0x84c + 0x10 * (idx))
+#define PAB_AXI_PIO_SL_EXT_ADDR_STAT(idx)      (0xb8a0 + 0x4 * (idx))
+
+/* PEX PIO Engines */
+#define PAB_PEX_PIO_CTRL(idx)                  (0x8c0 + 0x10 * (idx))
+#define PPIO_EN                                        BIT(0)
+#define PAB_PEX_PIO_STAT(idx)                  (0x8c4 + 0x10 * (idx))
+#define PAB_PEX_PIO_MT_STAT(idx)               (0x8c8 + 0x10 * (idx))
+
+#define INDIRECT_ADDR_BNDRY                    0xc00
+#define PAGE_IDX_SHIFT                         10
+#define PAGE_ADDR_MASK                         0x3ff
+
+#define OFFSET_TO_PAGE_IDX(off)                        \
+       (((off) >> PAGE_IDX_SHIFT) & PAB_CTRL_PAGE_SEL_MASK)
+
+#define OFFSET_TO_PAGE_ADDR(off)               \
+       (((off) & PAGE_ADDR_MASK) | INDIRECT_ADDR_BNDRY)
+
+/* APIO WINs */
+#define PAB_AXI_AMAP_CTRL(idx)                 (0xba0 + 0x10 * (idx))
+#define PAB_EXT_AXI_AMAP_SIZE(idx)             (0xbaf0 + 0x4 * (idx))
+#define PAB_AXI_AMAP_AXI_WIN(idx)              (0xba4 + 0x10 * (idx))
+#define PAB_EXT_AXI_AMAP_AXI_WIN(idx)          (0x80a0 + 0x4 * (idx))
+#define PAB_AXI_AMAP_PEX_WIN_L(idx)            (0xba8 + 0x10 * (idx))
+#define PAB_AXI_AMAP_PEX_WIN_H(idx)            (0xbac + 0x10 * (idx))
+#define PAB_AXI_AMAP_PCI_HDR_PARAM(idx)                (0x5ba0 + 0x4 * (idx))
+#define FUNC_NUM_PCIE_MASK                     GENMASK(7, 0)
+
+#define AXI_AMAP_CTRL_EN                       BIT(0)
+#define AXI_AMAP_CTRL_TYPE_SHIFT               1
+#define AXI_AMAP_CTRL_TYPE_MASK                        0x3
+#define AXI_AMAP_CTRL_SIZE_SHIFT               10
+#define AXI_AMAP_CTRL_SIZE_MASK                        0x3fffff
+
+#define PAB_TARGET_BUS(x)                      (((x) & 0xff) << 24)
+#define PAB_TARGET_DEV(x)                      (((x) & 0x1f) << 19)
+#define PAB_TARGET_FUNC(x)                     (((x) & 0x7) << 16)
+
+#define PAB_AXI_TYPE_CFG                       0x00
+#define PAB_AXI_TYPE_IO                                0x01
+#define PAB_AXI_TYPE_MEM                       0x02
+#define PAB_AXI_TYPE_ATOM                      0x03
+
+#define PAB_WINS_NUM                           256
+
+/* PPIO WINs RC mode */
+#define PAB_PEX_AMAP_CTRL(idx)                 (0x4ba0 + 0x10 * (idx))
+#define PAB_EXT_PEX_AMAP_SIZE(idx)             (0xbef0 + 0x04 * (idx))
+#define PAB_PEX_AMAP_AXI_WIN(idx)              (0x4ba4 + 0x10 * (idx))
+#define PAB_EXT_PEX_AMAP_AXI_WIN(idx)          (0xb4a0 + 0x04 * (idx))
+#define PAB_PEX_AMAP_PEX_WIN_L(idx)            (0x4ba8 + 0x10 * (idx))
+#define PAB_PEX_AMAP_PEX_WIN_H(idx)            (0x4bac + 0x10 * (idx))
+
+#define IB_TYPE_MEM_F                          0x2
+#define IB_TYPE_MEM_NF                         0x3
+
+#define PEX_AMAP_CTRL_TYPE_SHIFT               0x1
+#define PEX_AMAP_CTRL_EN_SHIFT                 0x0
+#define PEX_AMAP_CTRL_TYPE_MASK                        0x3
+#define PEX_AMAP_CTRL_EN_MASK                  0x1
+
+/* PPIO WINs EP mode */
+#define PAB_PEX_BAR_AMAP(pf, bar)              \
+       (0x1ba0 + 0x20 * (pf) + 4 * (bar))
+#define BAR_AMAP_EN                            BIT(0)
+#define PAB_EXT_PEX_BAR_AMAP(pf, bar)          \
+       (0x84a0 + 0x20 * (pf) + 4 * (bar))
+
+/* CCSR registers */
+#define PCIE_LINK_CTRL_STA                     0x5c
+#define PCIE_LINK_SPEED_SHIFT                  16
+#define PCIE_LINK_SPEED_MASK                   0x0f
+#define PCIE_LINK_WIDTH_SHIFT                  20
+#define PCIE_LINK_WIDTH_MASK                   0x3f
+#define PCIE_SRIOV_CAPABILITY                  0x2a0
+#define PCIE_SRIOV_VF_OFFSET_STRIDE            0x2b4
+
+/* LUT registers */
+#define PCIE_LUT_UDR(n)                                (0x800 + (n) * 8)
+#define PCIE_LUT_LDR(n)                                (0x804 + (n) * 8)
+#define PCIE_LUT_ENABLE                                BIT(31)
+#define PCIE_LUT_ENTRY_COUNT                   32
+
+/* PF control registers */
+#define PCIE_LTSSM_STA                         0x7fc
+#define LTSSM_STATE_MASK                       0x7f
+#define LTSSM_PCIE_L0                          0x2d /* L0 state */
+
+#define PCIE_SRDS_PRTCL(idx)                   (PCIE1 + (idx))
+#define PCIE_SYS_BASE_ADDR                     0x3400000
+#define PCIE_CCSR_SIZE                         0x0100000
+
+struct ls_pcie_g4 {
+       int idx;
+       struct list_head list;
+       struct udevice *bus;
+       struct fdt_resource ccsr_res;
+       struct fdt_resource cfg_res;
+       struct fdt_resource lut_res;
+       struct fdt_resource pf_ctrl_res;
+       void __iomem *ccsr;
+       void __iomem *cfg;
+       void __iomem *lut;
+       void __iomem *pf_ctrl;
+       bool big_endian;
+       bool enabled;
+       int next_lut_index;
+       struct pci_controller hose;
+       int stream_id_cur;
+       int mode;
+       int sriov_support;
+};
+
+extern struct list_head ls_pcie_g4_list;
+
+static inline void lut_writel(struct ls_pcie_g4 *pcie, unsigned int value,
+                             unsigned int offset)
+{
+       if (pcie->big_endian)
+               out_be32(pcie->lut + offset, value);
+       else
+               out_le32(pcie->lut + offset, value);
+}
+
+static inline u32 lut_readl(struct ls_pcie_g4 *pcie, unsigned int offset)
+{
+       if (pcie->big_endian)
+               return in_be32(pcie->lut + offset);
+       else
+               return in_le32(pcie->lut + offset);
+}
+
+static inline void ccsr_set_page(struct ls_pcie_g4 *pcie, u8 pg_idx)
+{
+       u32 val;
+
+       val = in_le32(pcie->ccsr + PAB_CTRL);
+       val &= ~(PAB_CTRL_PAGE_SEL_MASK << PAB_CTRL_PAGE_SEL_SHIFT);
+       val |= (pg_idx & PAB_CTRL_PAGE_SEL_MASK) << PAB_CTRL_PAGE_SEL_SHIFT;
+
+       out_le32(pcie->ccsr + PAB_CTRL, val);
+}
+
+static inline unsigned int ccsr_readl(struct ls_pcie_g4 *pcie, u32 offset)
+{
+       if (offset < INDIRECT_ADDR_BNDRY) {
+               ccsr_set_page(pcie, 0);
+               return in_le32(pcie->ccsr + offset);
+       }
+
+       ccsr_set_page(pcie, OFFSET_TO_PAGE_IDX(offset));
+       return in_le32(pcie->ccsr + OFFSET_TO_PAGE_ADDR(offset));
+}
+
+static inline void ccsr_writel(struct ls_pcie_g4 *pcie, u32 offset, u32 value)
+{
+       if (offset < INDIRECT_ADDR_BNDRY) {
+               ccsr_set_page(pcie, 0);
+               out_le32(pcie->ccsr + offset, value);
+       } else {
+               ccsr_set_page(pcie, OFFSET_TO_PAGE_IDX(offset));
+               out_le32(pcie->ccsr + OFFSET_TO_PAGE_ADDR(offset), value);
+       }
+}
+
+static inline unsigned int pf_ctrl_readl(struct ls_pcie_g4 *pcie, u32 offset)
+{
+       if (pcie->big_endian)
+               return in_be32(pcie->pf_ctrl + offset);
+       else
+               return in_le32(pcie->pf_ctrl + offset);
+}
+
+static inline void pf_ctrl_writel(struct ls_pcie_g4 *pcie, u32 offset,
+                                 u32 value)
+{
+       if (pcie->big_endian)
+               out_be32(pcie->pf_ctrl + offset, value);
+       else
+               out_le32(pcie->pf_ctrl + offset, value);
+}
+
+#endif /* _PCIE_LAYERSCAPE_GEN4_H_ */
diff --git a/drivers/pci/pcie_layerscape_gen4_fixup.c b/drivers/pci/pcie_layerscape_gen4_fixup.c
new file mode 100644 (file)
index 0000000..1c9e575
--- /dev/null
@@ -0,0 +1,249 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * Copyright 2018-2019 NXP
+ *
+ * PCIe Gen4 driver for NXP Layerscape SoCs
+ * Author: Hou Zhiqiang <Minder.Hou@gmail.com>
+ *
+ */
+
+#include <common.h>
+#include <pci.h>
+#include <asm/arch/fsl_serdes.h>
+#include <asm/io.h>
+#include <errno.h>
+#ifdef CONFIG_OF_BOARD_SETUP
+#include <linux/libfdt.h>
+#include <fdt_support.h>
+#ifdef CONFIG_ARM
+#include <asm/arch/clock.h>
+#endif
+#include "pcie_layerscape_gen4.h"
+
+#if defined(CONFIG_FSL_LSCH3) || defined(CONFIG_FSL_LSCH2)
+/*
+ * Return next available LUT index.
+ */
+static int ls_pcie_g4_next_lut_index(struct ls_pcie_g4 *pcie)
+{
+       if (pcie->next_lut_index < PCIE_LUT_ENTRY_COUNT)
+               return pcie->next_lut_index++;
+
+       return -ENOSPC;  /* LUT is full */
+}
+
+/* returns the next available streamid for pcie, -errno if failed */
+static int ls_pcie_g4_next_streamid(struct ls_pcie_g4 *pcie)
+{
+       int stream_id = pcie->stream_id_cur;
+
+       if (stream_id > FSL_PEX_STREAM_ID_NUM)
+               return -EINVAL;
+
+       pcie->stream_id_cur++;
+
+       return stream_id | ((pcie->idx + 1) << 11);
+}
+
+/*
+ * Program a single LUT entry
+ */
+static void ls_pcie_g4_lut_set_mapping(struct ls_pcie_g4 *pcie, int index,
+                                      u32 devid, u32 streamid)
+{
+       /* leave mask as all zeroes, want to match all bits */
+       lut_writel(pcie, devid << 16, PCIE_LUT_UDR(index));
+       lut_writel(pcie, streamid | PCIE_LUT_ENABLE, PCIE_LUT_LDR(index));
+}
+
+/*
+ * An msi-map is a property to be added to the pci controller
+ * node.  It is a table, where each entry consists of 4 fields
+ * e.g.:
+ *
+ *      msi-map = <[devid] [phandle-to-msi-ctrl] [stream-id] [count]
+ *                 [devid] [phandle-to-msi-ctrl] [stream-id] [count]>;
+ */
+static void fdt_pcie_set_msi_map_entry(void *blob, struct ls_pcie_g4 *pcie,
+                                      u32 devid, u32 streamid)
+{
+       u32 *prop;
+       u32 phandle;
+       int nodeoff;
+
+#ifdef CONFIG_FSL_PCIE_COMPAT
+       nodeoff = fdt_node_offset_by_compat_reg(blob, CONFIG_FSL_PCIE_COMPAT,
+                                               pcie->ccsr_res.start);
+#else
+#error "No CONFIG_FSL_PCIE_COMPAT defined"
+#endif
+       if (nodeoff < 0) {
+               debug("%s: ERROR: failed to find pcie compatiable\n", __func__);
+               return;
+       }
+
+       /* get phandle to MSI controller */
+       prop = (u32 *)fdt_getprop(blob, nodeoff, "msi-parent", 0);
+       if (!prop) {
+               debug("\n%s: ERROR: missing msi-parent: PCIe%d\n",
+                     __func__, pcie->idx);
+               return;
+       }
+       phandle = fdt32_to_cpu(*prop);
+
+       /* set one msi-map row */
+       fdt_appendprop_u32(blob, nodeoff, "msi-map", devid);
+       fdt_appendprop_u32(blob, nodeoff, "msi-map", phandle);
+       fdt_appendprop_u32(blob, nodeoff, "msi-map", streamid);
+       fdt_appendprop_u32(blob, nodeoff, "msi-map", 1);
+}
+
+/*
+ * An iommu-map is a property to be added to the pci controller
+ * node.  It is a table, where each entry consists of 4 fields
+ * e.g.:
+ *
+ *      iommu-map = <[devid] [phandle-to-iommu-ctrl] [stream-id] [count]
+ *                 [devid] [phandle-to-iommu-ctrl] [stream-id] [count]>;
+ */
+static void fdt_pcie_set_iommu_map_entry(void *blob, struct ls_pcie_g4 *pcie,
+                                        u32 devid, u32 streamid)
+{
+       u32 *prop;
+       u32 iommu_map[4];
+       int nodeoff;
+       int lenp;
+
+#ifdef CONFIG_FSL_PCIE_COMPAT
+       nodeoff = fdt_node_offset_by_compat_reg(blob, CONFIG_FSL_PCIE_COMPAT,
+                                               pcie->ccsr_res.start);
+#else
+#error "No CONFIG_FSL_PCIE_COMPAT defined"
+#endif
+       if (nodeoff < 0) {
+               debug("%s: ERROR: failed to find pcie compatiable\n", __func__);
+               return;
+       }
+
+       /* get phandle to iommu controller */
+       prop = fdt_getprop_w(blob, nodeoff, "iommu-map", &lenp);
+       if (!prop) {
+               debug("\n%s: ERROR: missing iommu-map: PCIe%d\n",
+                     __func__, pcie->idx);
+               return;
+       }
+
+       /* set iommu-map row */
+       iommu_map[0] = cpu_to_fdt32(devid);
+       iommu_map[1] = *++prop;
+       iommu_map[2] = cpu_to_fdt32(streamid);
+       iommu_map[3] = cpu_to_fdt32(1);
+
+       if (devid == 0)
+               fdt_setprop_inplace(blob, nodeoff, "iommu-map", iommu_map, 16);
+       else
+               fdt_appendprop(blob, nodeoff, "iommu-map", iommu_map, 16);
+}
+
+static void fdt_fixup_pcie(void *blob)
+{
+       struct udevice *dev, *bus;
+       struct ls_pcie_g4 *pcie;
+       int streamid;
+       int index;
+       pci_dev_t bdf;
+
+       /* Scan all known buses */
+       for (pci_find_first_device(&dev); dev; pci_find_next_device(&dev)) {
+               for (bus = dev; device_is_on_pci_bus(bus);)
+                       bus = bus->parent;
+               pcie = dev_get_priv(bus);
+
+               streamid = ls_pcie_g4_next_streamid(pcie);
+               if (streamid < 0) {
+                       debug("ERROR: no stream ids free\n");
+                       continue;
+               }
+
+               index = ls_pcie_g4_next_lut_index(pcie);
+               if (index < 0) {
+                       debug("ERROR: no LUT indexes free\n");
+                       continue;
+               }
+
+               /* the DT fixup must be relative to the hose first_busno */
+               bdf = dm_pci_get_bdf(dev) - PCI_BDF(bus->seq, 0, 0);
+               /* map PCI b.d.f to streamID in LUT */
+               ls_pcie_g4_lut_set_mapping(pcie, index, bdf >> 8, streamid);
+               /* update msi-map in device tree */
+               fdt_pcie_set_msi_map_entry(blob, pcie, bdf >> 8, streamid);
+               /* update iommu-map in device tree */
+               fdt_pcie_set_iommu_map_entry(blob, pcie, bdf >> 8, streamid);
+       }
+}
+#endif
+
+static void ft_pcie_ep_layerscape_gen4_fix(void *blob, struct ls_pcie_g4 *pcie)
+{
+       int off;
+
+       off = fdt_node_offset_by_compat_reg(blob, "fsl,lx2160a-pcie-ep",
+                                           pcie->ccsr_res.start);
+
+       if (off < 0) {
+               debug("%s: ERROR: failed to find pcie compatiable\n",
+                     __func__);
+               return;
+       }
+
+       if (pcie->enabled && pcie->mode == PCI_HEADER_TYPE_NORMAL)
+               fdt_set_node_status(blob, off, FDT_STATUS_OKAY, 0);
+       else
+               fdt_set_node_status(blob, off, FDT_STATUS_DISABLED, 0);
+}
+
+static void ft_pcie_rc_layerscape_gen4_fix(void *blob, struct ls_pcie_g4 *pcie)
+{
+       int off;
+
+#ifdef CONFIG_FSL_PCIE_COMPAT
+       off = fdt_node_offset_by_compat_reg(blob, CONFIG_FSL_PCIE_COMPAT,
+                                           pcie->ccsr_res.start);
+#else
+#error "No CONFIG_FSL_PCIE_COMPAT defined"
+#endif
+       if (off < 0) {
+               debug("%s: ERROR: failed to find pcie compatiable\n", __func__);
+               return;
+       }
+
+       if (pcie->enabled && pcie->mode == PCI_HEADER_TYPE_BRIDGE)
+               fdt_set_node_status(blob, off, FDT_STATUS_OKAY, 0);
+       else
+               fdt_set_node_status(blob, off, FDT_STATUS_DISABLED, 0);
+}
+
+static void ft_pcie_layerscape_gen4_setup(void *blob, struct ls_pcie_g4 *pcie)
+{
+       ft_pcie_rc_layerscape_gen4_fix(blob, pcie);
+       ft_pcie_ep_layerscape_gen4_fix(blob, pcie);
+}
+
+/* Fixup Kernel DT for PCIe */
+void ft_pci_setup(void *blob, bd_t *bd)
+{
+       struct ls_pcie_g4 *pcie;
+
+       list_for_each_entry(pcie, &ls_pcie_g4_list, list)
+               ft_pcie_layerscape_gen4_setup(blob, pcie);
+
+#if defined(CONFIG_FSL_LSCH3) || defined(CONFIG_FSL_LSCH2)
+       fdt_fixup_pcie(blob);
+#endif
+}
+
+#else /* !CONFIG_OF_BOARD_SETUP */
+void ft_pci_setup(void *blob, bd_t *bd)
+{
+}
+#endif
index 49a6e32b16e10b6bad8e16373cbae4a749981a49..864b36b8225229030e5542704651cdbc6a179543 100644 (file)
@@ -1,6 +1,14 @@
 #
 # QUICC Engine Drivers
 #
+config QE
+       bool "Enable support for QUICC Engine"
+       depends on PPC
+       default y if ARCH_T1040 || ARCH_T1042 || ARCH_T1024 || ARCH_P1021 \
+               || ARCH_P1025
+       help
+         Chose this option to add support for the QUICC Engine.
+
 config U_QE
        bool "Enable support for U QUICC Engine"
        default y if (ARCH_LS1021A && !SD_BOOT && !NAND_BOOT && !QSPI_BOOT) \
@@ -10,3 +18,28 @@ config U_QE
                || (TARGET_LS1043ARDB && !SPL_NO_QE && !NAND_BOOT && !QSPI_BOOT)
        help
          Choose this option to add support for U QUICC Engine.
+
+choice
+       prompt "QUICC Engine FMan ethernet firmware location"
+       depends on FMAN_ENET || QE
+       default SYS_QE_FMAN_FW_IN_ROM
+
+config SYS_QE_FMAN_FW_IN_NOR
+       bool "NOR flash"
+
+config SYS_QE_FMAN_FW_IN_NAND
+       bool "NAND flash"
+
+config SYS_QE_FMAN_FW_IN_SPIFLASH
+       bool "SPI flash"
+
+config SYS_QE_FMAN_FW_IN_MMC
+       bool "MMC"
+
+config SYS_QE_FMAN_FW_IN_REMOTE
+       bool "Remote memory location (PCI)"
+
+config SYS_QE_FMAN_FW_IN_ROM
+       bool "Firmware is already in ROM"
+
+endchoice
index b9c816662c4c9672e5f479f73db6a35b36a6a762..2fd8c7b7e3b89a10f3ac6eedc1bd66a35cc4329b 100644 (file)
@@ -10,3 +10,40 @@ config STM32MP1_DDR
                family: support for LPDDR2, LPDDR3 and DDR3
                the SDRAM parameters for controleur and phy need to be provided
                in device tree (computed by DDR tuning tools)
+
+config STM32MP1_DDR_INTERACTIVE
+       bool "STM32MP1 DDR driver : interactive support"
+       depends on STM32MP1_DDR
+       help
+               activate interactive support in STM32MP1 DDR controller driver
+               used for DDR tuning tools
+               to enter in intercative mode type 'd' during SPL DDR driver
+               initialisation
+
+config STM32MP1_DDR_INTERACTIVE_FORCE
+       bool "STM32MP1 DDR driver : force interactive mode"
+       depends on STM32MP1_DDR_INTERACTIVE
+       default n
+       help
+               force interactive mode in STM32MP1 DDR controller driver
+               skip the polling of character 'd' in console
+               useful when SPL is loaded in sysram
+               directly by programmer
+
+config STM32MP1_DDR_TESTS
+       bool "STM32MP1 DDR driver : tests support"
+       depends on STM32MP1_DDR_INTERACTIVE
+       default y
+       help
+               activate test support for interactive support in
+               STM32MP1 DDR controller driver: command test
+
+config STM32MP1_DDR_TUNING
+       bool "STM32MP1 DDR driver : support of tuning"
+       depends on STM32MP1_DDR_INTERACTIVE
+       default y
+       help
+               activate tuning command in STM32MP1 DDR interactive mode
+               used for DDR tuning tools
+               - DQ Deskew algorithm
+               - DQS Trimming
index 79eb028fab6c625298812f86155cd591a536953b..e1e9135603a06495601b296ab5c1368954627bc6 100644 (file)
@@ -5,3 +5,11 @@
 
 obj-y += stm32mp1_ram.o
 obj-y += stm32mp1_ddr.o
+
+obj-$(CONFIG_STM32MP1_DDR_INTERACTIVE) += stm32mp1_interactive.o
+obj-$(CONFIG_STM32MP1_DDR_TESTS) += stm32mp1_tests.o
+obj-$(CONFIG_STM32MP1_DDR_TUNING) += stm32mp1_tuning.o
+
+ifneq ($(DDR_INTERACTIVE),)
+CFLAGS_stm32mp1_interactive.o += -DCONFIG_STM32MP1_DDR_INTERACTIVE_FORCE=y
+endif
index c7c3ba70a4ec95ebb47b0bc4cfba79e32727a617..d765a46f7c21f9b8524d24567a2a5c94f2e97b0a 100644 (file)
@@ -41,8 +41,32 @@ struct reg_desc {
         offsetof(struct stm32mp1_ddrphy, x),\
         offsetof(struct y, x)}
 
+#define DDR_REG_DYN(x) \
+       {#x,\
+        offsetof(struct stm32mp1_ddrctl, x),\
+        INVALID_OFFSET}
+
+#define DDRPHY_REG_DYN(x) \
+       {#x,\
+        offsetof(struct stm32mp1_ddrphy, x),\
+        INVALID_OFFSET}
+
+/***********************************************************
+ * PARAMETERS: value get from device tree :
+ *             size / order need to be aligned with binding
+ *             modification NOT ALLOWED !!!
+ ***********************************************************/
+#define DDRCTL_REG_REG_SIZE    25      /* st,ctl-reg */
+#define DDRCTL_REG_TIMING_SIZE 12      /* st,ctl-timing */
+#define DDRCTL_REG_MAP_SIZE    9       /* st,ctl-map */
+#define DDRCTL_REG_PERF_SIZE   17      /* st,ctl-perf */
+
+#define DDRPHY_REG_REG_SIZE    11      /* st,phy-reg */
+#define        DDRPHY_REG_TIMING_SIZE  10      /* st,phy-timing */
+#define        DDRPHY_REG_CAL_SIZE     12      /* st,phy-cal */
+
 #define DDRCTL_REG_REG(x)      DDRCTL_REG(x, stm32mp1_ddrctrl_reg)
-static const struct reg_desc ddr_reg[] = {
+static const struct reg_desc ddr_reg[DDRCTL_REG_REG_SIZE] = {
        DDRCTL_REG_REG(mstr),
        DDRCTL_REG_REG(mrctrl0),
        DDRCTL_REG_REG(mrctrl1),
@@ -71,7 +95,7 @@ static const struct reg_desc ddr_reg[] = {
 };
 
 #define DDRCTL_REG_TIMING(x)   DDRCTL_REG(x, stm32mp1_ddrctrl_timing)
-static const struct reg_desc ddr_timing[] = {
+static const struct reg_desc ddr_timing[DDRCTL_REG_TIMING_SIZE] = {
        DDRCTL_REG_TIMING(rfshtmg),
        DDRCTL_REG_TIMING(dramtmg0),
        DDRCTL_REG_TIMING(dramtmg1),
@@ -87,7 +111,7 @@ static const struct reg_desc ddr_timing[] = {
 };
 
 #define DDRCTL_REG_MAP(x)      DDRCTL_REG(x, stm32mp1_ddrctrl_map)
-static const struct reg_desc ddr_map[] = {
+static const struct reg_desc ddr_map[DDRCTL_REG_MAP_SIZE] = {
        DDRCTL_REG_MAP(addrmap1),
        DDRCTL_REG_MAP(addrmap2),
        DDRCTL_REG_MAP(addrmap3),
@@ -100,7 +124,7 @@ static const struct reg_desc ddr_map[] = {
 };
 
 #define DDRCTL_REG_PERF(x)     DDRCTL_REG(x, stm32mp1_ddrctrl_perf)
-static const struct reg_desc ddr_perf[] = {
+static const struct reg_desc ddr_perf[DDRCTL_REG_PERF_SIZE] = {
        DDRCTL_REG_PERF(sched),
        DDRCTL_REG_PERF(sched1),
        DDRCTL_REG_PERF(perfhpr1),
@@ -121,7 +145,7 @@ static const struct reg_desc ddr_perf[] = {
 };
 
 #define DDRPHY_REG_REG(x)      DDRPHY_REG(x, stm32mp1_ddrphy_reg)
-static const struct reg_desc ddrphy_reg[] = {
+static const struct reg_desc ddrphy_reg[DDRPHY_REG_REG_SIZE] = {
        DDRPHY_REG_REG(pgcr),
        DDRPHY_REG_REG(aciocr),
        DDRPHY_REG_REG(dxccr),
@@ -136,7 +160,7 @@ static const struct reg_desc ddrphy_reg[] = {
 };
 
 #define DDRPHY_REG_TIMING(x)   DDRPHY_REG(x, stm32mp1_ddrphy_timing)
-static const struct reg_desc ddrphy_timing[] = {
+static const struct reg_desc ddrphy_timing[DDRPHY_REG_TIMING_SIZE] = {
        DDRPHY_REG_TIMING(ptr0),
        DDRPHY_REG_TIMING(ptr1),
        DDRPHY_REG_TIMING(ptr2),
@@ -150,7 +174,7 @@ static const struct reg_desc ddrphy_timing[] = {
 };
 
 #define DDRPHY_REG_CAL(x)      DDRPHY_REG(x, stm32mp1_ddrphy_cal)
-static const struct reg_desc ddrphy_cal[] = {
+static const struct reg_desc ddrphy_cal[DDRPHY_REG_CAL_SIZE] = {
        DDRPHY_REG_CAL(dx0dllcr),
        DDRPHY_REG_CAL(dx0dqtr),
        DDRPHY_REG_CAL(dx0dqstr),
@@ -165,6 +189,45 @@ static const struct reg_desc ddrphy_cal[] = {
        DDRPHY_REG_CAL(dx3dqstr),
 };
 
+/**************************************************************
+ * DYNAMIC REGISTERS: only used for debug purpose (read/modify)
+ **************************************************************/
+#ifdef CONFIG_STM32MP1_DDR_INTERACTIVE
+static const struct reg_desc ddr_dyn[] = {
+       DDR_REG_DYN(stat),
+       DDR_REG_DYN(init0),
+       DDR_REG_DYN(dfimisc),
+       DDR_REG_DYN(dfistat),
+       DDR_REG_DYN(swctl),
+       DDR_REG_DYN(swstat),
+       DDR_REG_DYN(pctrl_0),
+       DDR_REG_DYN(pctrl_1),
+};
+
+#define DDR_REG_DYN_SIZE       ARRAY_SIZE(ddr_dyn)
+
+static const struct reg_desc ddrphy_dyn[] = {
+       DDRPHY_REG_DYN(pir),
+       DDRPHY_REG_DYN(pgsr),
+       DDRPHY_REG_DYN(zq0sr0),
+       DDRPHY_REG_DYN(zq0sr1),
+       DDRPHY_REG_DYN(dx0gsr0),
+       DDRPHY_REG_DYN(dx0gsr1),
+       DDRPHY_REG_DYN(dx1gsr0),
+       DDRPHY_REG_DYN(dx1gsr1),
+       DDRPHY_REG_DYN(dx2gsr0),
+       DDRPHY_REG_DYN(dx2gsr1),
+       DDRPHY_REG_DYN(dx3gsr0),
+       DDRPHY_REG_DYN(dx3gsr1),
+};
+
+#define DDRPHY_REG_DYN_SIZE    ARRAY_SIZE(ddrphy_dyn)
+
+#endif
+
+/*****************************************************************
+ * REGISTERS ARRAY: used to parse device tree and interactive mode
+ *****************************************************************/
 enum reg_type {
        REG_REG,
        REG_TIMING,
@@ -173,6 +236,13 @@ enum reg_type {
        REGPHY_REG,
        REGPHY_TIMING,
        REGPHY_CAL,
+#ifdef CONFIG_STM32MP1_DDR_INTERACTIVE
+/* dynamic registers => managed in driver or not changed,
+ * can be dumped in interactive mode
+ */
+       REG_DYN,
+       REGPHY_DYN,
+#endif
        REG_TYPE_NB
 };
 
@@ -193,19 +263,26 @@ struct ddr_reg_info {
 
 const struct ddr_reg_info ddr_registers[REG_TYPE_NB] = {
 [REG_REG] = {
-       "static", ddr_reg, ARRAY_SIZE(ddr_reg), DDR_BASE},
+       "static", ddr_reg, DDRCTL_REG_REG_SIZE, DDR_BASE},
 [REG_TIMING] = {
-       "timing", ddr_timing, ARRAY_SIZE(ddr_timing), DDR_BASE},
+       "timing", ddr_timing, DDRCTL_REG_TIMING_SIZE, DDR_BASE},
 [REG_PERF] = {
-       "perf", ddr_perf, ARRAY_SIZE(ddr_perf), DDR_BASE},
+       "perf", ddr_perf, DDRCTL_REG_PERF_SIZE, DDR_BASE},
 [REG_MAP] = {
-       "map", ddr_map, ARRAY_SIZE(ddr_map), DDR_BASE},
+       "map", ddr_map, DDRCTL_REG_MAP_SIZE, DDR_BASE},
 [REGPHY_REG] = {
-       "static", ddrphy_reg, ARRAY_SIZE(ddrphy_reg), DDRPHY_BASE},
+       "static", ddrphy_reg, DDRPHY_REG_REG_SIZE, DDRPHY_BASE},
 [REGPHY_TIMING] = {
-       "timing", ddrphy_timing, ARRAY_SIZE(ddrphy_timing), DDRPHY_BASE},
+       "timing", ddrphy_timing, DDRPHY_REG_TIMING_SIZE, DDRPHY_BASE},
 [REGPHY_CAL] = {
-       "cal", ddrphy_cal, ARRAY_SIZE(ddrphy_cal), DDRPHY_BASE},
+       "cal", ddrphy_cal, DDRPHY_REG_CAL_SIZE, DDRPHY_BASE},
+#ifdef CONFIG_STM32MP1_DDR_INTERACTIVE
+[REG_DYN] = {
+       "dyn", ddr_dyn, DDR_REG_DYN_SIZE, DDR_BASE},
+[REGPHY_DYN] = {
+       "dyn", ddrphy_dyn, DDRPHY_REG_DYN_SIZE, DDRPHY_BASE},
+#endif
+
 };
 
 const char *base_name[] = {
@@ -246,6 +323,231 @@ static void set_reg(const struct ddr_info *priv,
        }
 }
 
+#ifdef CONFIG_STM32MP1_DDR_INTERACTIVE
+static void stm32mp1_dump_reg_desc(u32 base_addr, const struct reg_desc *desc)
+{
+       unsigned int *ptr;
+
+       ptr = (unsigned int *)(base_addr + desc->offset);
+       printf("%s= 0x%08x\n", desc->name, readl(ptr));
+}
+
+static void stm32mp1_dump_param_desc(u32 par_addr, const struct reg_desc *desc)
+{
+       unsigned int *ptr;
+
+       ptr = (unsigned int *)(par_addr + desc->par_offset);
+       printf("%s= 0x%08x\n", desc->name, readl(ptr));
+}
+
+static const struct reg_desc *found_reg(const char *name, enum reg_type *type)
+{
+       unsigned int i, j;
+       const struct reg_desc *desc;
+
+       for (i = 0; i < ARRAY_SIZE(ddr_registers); i++) {
+               desc = ddr_registers[i].desc;
+               for (j = 0; j < ddr_registers[i].size; j++) {
+                       if (strcmp(name, desc[j].name) == 0) {
+                               *type = i;
+                               return &desc[j];
+                       }
+               }
+       }
+       *type = REG_TYPE_NB;
+       return NULL;
+}
+
+int stm32mp1_dump_reg(const struct ddr_info *priv,
+                     const char *name)
+{
+       unsigned int i, j;
+       const struct reg_desc *desc;
+       u32 base_addr;
+       enum base_type p_base;
+       enum reg_type type;
+       const char *p_name;
+       enum base_type filter = NONE_BASE;
+       int result = -1;
+
+       if (name) {
+               if (strcmp(name, base_name[DDR_BASE]) == 0)
+                       filter = DDR_BASE;
+               else if (strcmp(name, base_name[DDRPHY_BASE]) == 0)
+                       filter = DDRPHY_BASE;
+       }
+
+       for (i = 0; i < ARRAY_SIZE(ddr_registers); i++) {
+               p_base = ddr_registers[i].base;
+               p_name = ddr_registers[i].name;
+               if (!name || (filter == p_base || !strcmp(name, p_name))) {
+                       result = 0;
+                       desc = ddr_registers[i].desc;
+                       base_addr = get_base_addr(priv, p_base);
+                       printf("==%s.%s==\n", base_name[p_base], p_name);
+                       for (j = 0; j < ddr_registers[i].size; j++)
+                               stm32mp1_dump_reg_desc(base_addr, &desc[j]);
+               }
+       }
+       if (result) {
+               desc = found_reg(name, &type);
+               if (desc) {
+                       p_base = ddr_registers[type].base;
+                       base_addr = get_base_addr(priv, p_base);
+                       stm32mp1_dump_reg_desc(base_addr, desc);
+                       result = 0;
+               }
+       }
+       return result;
+}
+
+void stm32mp1_edit_reg(const struct ddr_info *priv,
+                      char *name, char *string)
+{
+       unsigned long *ptr, value;
+       enum reg_type type;
+       enum base_type base;
+       const struct reg_desc *desc;
+       u32 base_addr;
+
+       desc = found_reg(name, &type);
+
+       if (!desc) {
+               printf("%s not found\n", name);
+               return;
+       }
+       if (strict_strtoul(string, 16, &value) < 0) {
+               printf("invalid value %s\n", string);
+               return;
+       }
+       base = ddr_registers[type].base;
+       base_addr = get_base_addr(priv, base);
+       ptr = (unsigned long *)(base_addr + desc->offset);
+       writel(value, ptr);
+       printf("%s= 0x%08x\n", desc->name, readl(ptr));
+}
+
+static u32 get_par_addr(const struct stm32mp1_ddr_config *config,
+                       enum reg_type type)
+{
+       u32 par_addr = 0x0;
+
+       switch (type) {
+       case REG_REG:
+               par_addr = (u32)&config->c_reg;
+               break;
+       case REG_TIMING:
+               par_addr = (u32)&config->c_timing;
+               break;
+       case REG_PERF:
+               par_addr = (u32)&config->c_perf;
+               break;
+       case REG_MAP:
+               par_addr = (u32)&config->c_map;
+               break;
+       case REGPHY_REG:
+               par_addr = (u32)&config->p_reg;
+               break;
+       case REGPHY_TIMING:
+               par_addr = (u32)&config->p_timing;
+               break;
+       case REGPHY_CAL:
+               par_addr = (u32)&config->p_cal;
+               break;
+       case REG_DYN:
+       case REGPHY_DYN:
+       case REG_TYPE_NB:
+               par_addr = (u32)NULL;
+               break;
+       }
+
+       return par_addr;
+}
+
+int stm32mp1_dump_param(const struct stm32mp1_ddr_config *config,
+                       const char *name)
+{
+       unsigned int i, j;
+       const struct reg_desc *desc;
+       u32 par_addr;
+       enum base_type p_base;
+       enum reg_type type;
+       const char *p_name;
+       enum base_type filter = NONE_BASE;
+       int result = -EINVAL;
+
+       if (name) {
+               if (strcmp(name, base_name[DDR_BASE]) == 0)
+                       filter = DDR_BASE;
+               else if (strcmp(name, base_name[DDRPHY_BASE]) == 0)
+                       filter = DDRPHY_BASE;
+       }
+
+       for (i = 0; i < ARRAY_SIZE(ddr_registers); i++) {
+               par_addr = get_par_addr(config, i);
+               if (!par_addr)
+                       continue;
+               p_base = ddr_registers[i].base;
+               p_name = ddr_registers[i].name;
+               if (!name || (filter == p_base || !strcmp(name, p_name))) {
+                       result = 0;
+                       desc = ddr_registers[i].desc;
+                       printf("==%s.%s==\n", base_name[p_base], p_name);
+                       for (j = 0; j < ddr_registers[i].size; j++)
+                               stm32mp1_dump_param_desc(par_addr, &desc[j]);
+               }
+       }
+       if (result) {
+               desc = found_reg(name, &type);
+               if (desc) {
+                       par_addr = get_par_addr(config, type);
+                       if (par_addr) {
+                               stm32mp1_dump_param_desc(par_addr, desc);
+                               result = 0;
+                       }
+               }
+       }
+       return result;
+}
+
+void stm32mp1_edit_param(const struct stm32mp1_ddr_config *config,
+                        char *name, char *string)
+{
+       unsigned long *ptr, value;
+       enum reg_type type;
+       const struct reg_desc *desc;
+       u32 par_addr;
+
+       desc = found_reg(name, &type);
+       if (!desc) {
+               printf("%s not found\n", name);
+               return;
+       }
+       if (strict_strtoul(string, 16, &value) < 0) {
+               printf("invalid value %s\n", string);
+               return;
+       }
+       par_addr = get_par_addr(config, type);
+       if (!par_addr) {
+               printf("no parameter %s\n", name);
+               return;
+       }
+       ptr = (unsigned long *)(par_addr + desc->par_offset);
+       writel(value, ptr);
+       printf("%s= 0x%08x\n", desc->name, readl(ptr));
+}
+#endif
+
+__weak bool stm32mp1_ddr_interactive(void *priv,
+                                    enum stm32mp1_ddr_interact_step step,
+                                    const struct stm32mp1_ddr_config *config)
+{
+       return false;
+}
+
+#define INTERACTIVE(step)\
+       stm32mp1_ddr_interactive(priv, step, config)
+
 static void ddrphy_idone_wait(struct stm32mp1_ddrphy *phy)
 {
        u32 pgsr;
@@ -312,7 +614,7 @@ static void wait_operating_mode(struct ddr_info *priv, int mode)
        /* self-refresh due to software => check also STAT.selfref_type */
        if (mode == DDRCTRL_STAT_OPERATING_MODE_SR) {
                mask |= DDRCTRL_STAT_SELFREF_TYPE_MASK;
-               stat |= DDRCTRL_STAT_SELFREF_TYPE_SR;
+               val |= DDRCTRL_STAT_SELFREF_TYPE_SR;
        } else if (mode == DDRCTRL_STAT_OPERATING_MODE_NORMAL) {
                /* normal mode: handle also automatic self refresh */
                mask2 = DDRCTRL_STAT_OPERATING_MODE_MASK |
@@ -355,7 +657,7 @@ void stm32mp1_refresh_restore(struct stm32mp1_ddrctl *ctl,
 }
 
 /* board-specific DDR power initializations. */
-__weak int board_ddr_power_init(void)
+__weak int board_ddr_power_init(enum ddr_type ddr_type)
 {
        return 0;
 }
@@ -365,15 +667,21 @@ void stm32mp1_ddr_init(struct ddr_info *priv,
                       const struct stm32mp1_ddr_config *config)
 {
        u32 pir;
-       int ret;
+       int ret = -EINVAL;
 
-       ret = board_ddr_power_init();
+       if (config->c_reg.mstr & DDRCTRL_MSTR_DDR3)
+               ret = board_ddr_power_init(STM32MP_DDR3);
+       else if (config->c_reg.mstr & DDRCTRL_MSTR_LPDDR2)
+               ret = board_ddr_power_init(STM32MP_LPDDR2);
+       else if (config->c_reg.mstr & DDRCTRL_MSTR_LPDDR3)
+               ret = board_ddr_power_init(STM32MP_LPDDR3);
 
        if (ret)
                panic("ddr power init failed\n");
 
+start:
        debug("name = %s\n", config->info.name);
-       debug("speed = %d MHz\n", config->info.speed);
+       debug("speed = %d kHz\n", config->info.speed);
        debug("size  = 0x%x\n", config->info.size);
 /*
  * 1. Program the DWC_ddr_umctl2 registers
@@ -389,7 +697,7 @@ void stm32mp1_ddr_init(struct ddr_info *priv,
 
 /* 1.2. start CLOCK */
        if (stm32mp1_ddr_clk_enable(priv, config->info.speed))
-               panic("invalid DRAM clock : %d MHz\n",
+               panic("invalid DRAM clock : %d kHz\n",
                      config->info.speed);
 
 /* 1.3. deassert reset */
@@ -401,11 +709,12 @@ void stm32mp1_ddr_init(struct ddr_info *priv,
         */
        clrbits_le32(priv->rcc + RCC_DDRITFCR, RCC_DDRITFCR_DDRCAPBRST);
 
-/* 1.4. wait 4 cycles for synchronization */
-       asm(" nop");
-       asm(" nop");
-       asm(" nop");
-       asm(" nop");
+/* 1.4. wait 128 cycles to permit initialization of end logic */
+       udelay(2);
+       /* for PCLK = 133MHz => 1 us is enough, 2 to allow lower frequency */
+
+       if (INTERACTIVE(STEP_DDR_RESET))
+               goto start;
 
 /* 1.5. initialize registers ddr_umctl2 */
        /* Stop uMCTL2 before PHY is ready */
@@ -424,6 +733,9 @@ void stm32mp1_ddr_init(struct ddr_info *priv,
 
        set_reg(priv, REG_PERF, &config->c_perf);
 
+       if (INTERACTIVE(STEP_CTL_INIT))
+               goto start;
+
 /*  2. deassert reset signal core_ddrc_rstn, aresetn and presetn */
        clrbits_le32(priv->rcc + RCC_DDRITFCR, RCC_DDRITFCR_DDRCORERST);
        clrbits_le32(priv->rcc + RCC_DDRITFCR, RCC_DDRITFCR_DDRCAXIRST);
@@ -436,6 +748,9 @@ void stm32mp1_ddr_init(struct ddr_info *priv,
        set_reg(priv, REGPHY_TIMING, &config->p_timing);
        set_reg(priv, REGPHY_CAL, &config->p_cal);
 
+       if (INTERACTIVE(STEP_PHY_INIT))
+               goto start;
+
 /*  4. Monitor PHY init status by polling PUBL register PGSR.IDONE
  *     Perform DDR PHY DRAM initialization and Gate Training Evaluation
  */
@@ -492,4 +807,7 @@ void stm32mp1_ddr_init(struct ddr_info *priv,
        /* enable uMCTL2 AXI port 0 and 1 */
        setbits_le32(&priv->ctl->pctrl_0, DDRCTRL_PCTRL_N_PORT_EN);
        setbits_le32(&priv->ctl->pctrl_1, DDRCTRL_PCTRL_N_PORT_EN);
+
+       if (INTERACTIVE(STEP_DDR_READY))
+               goto start;
 }
index 3cd0161299eb487e1bab28abaeecfa347af3388a..a8eed89e3ccb9f556c6bf36d3b1bac2b6430602c 100644 (file)
@@ -157,7 +157,7 @@ struct stm32mp1_ddrphy_cal {
 
 struct stm32mp1_ddr_info {
        const char *name;
-       u16 speed; /* in MHZ */
+       u32 speed; /* in kHZ */
        u32 size;  /* memory size in byte = col * row * width */
 };
 
@@ -172,7 +172,7 @@ struct stm32mp1_ddr_config {
        struct stm32mp1_ddrphy_cal p_cal;
 };
 
-int stm32mp1_ddr_clk_enable(struct ddr_info *priv, u16 mem_speed);
+int stm32mp1_ddr_clk_enable(struct ddr_info *priv, u32 mem_speed);
 void stm32mp1_ddrphy_init(struct stm32mp1_ddrphy *phy, u32 pir);
 void stm32mp1_refresh_disable(struct stm32mp1_ddrctl *ctl);
 void stm32mp1_refresh_restore(struct stm32mp1_ddrctl *ctl,
index a606b2bcbe27dc9d8ef9da2eb71ebee2be0625f0..9d33186b3a25cc7df109db3339d719b21f715b5d 100644 (file)
@@ -234,6 +234,8 @@ struct stm32mp1_ddrphy {
 
 /* DDRCTRL REGISTERS */
 #define DDRCTRL_MSTR_DDR3                      BIT(0)
+#define DDRCTRL_MSTR_LPDDR2                    BIT(2)
+#define DDRCTRL_MSTR_LPDDR3                    BIT(3)
 #define DDRCTRL_MSTR_DATA_BUS_WIDTH_MASK       GENMASK(13, 12)
 #define DDRCTRL_MSTR_DATA_BUS_WIDTH_FULL       (0 << 12)
 #define DDRCTRL_MSTR_DATA_BUS_WIDTH_HALF       (1 << 12)
@@ -330,6 +332,7 @@ struct stm32mp1_ddrphy {
 
 #define DDRPHYC_DXNGCR_DXEN                    BIT(0)
 
+#define DDRPHYC_DXNDLLCR_DLLSRST               BIT(30)
 #define DDRPHYC_DXNDLLCR_DLLDIS                        BIT(31)
 #define DDRPHYC_DXNDLLCR_SDPHASE_MASK          GENMASK(17, 14)
 #define DDRPHYC_DXNDLLCR_SDPHASE_SHIFT         14
diff --git a/drivers/ram/stm32mp1/stm32mp1_interactive.c b/drivers/ram/stm32mp1/stm32mp1_interactive.c
new file mode 100644 (file)
index 0000000..cc9b2e7
--- /dev/null
@@ -0,0 +1,483 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2019, STMicroelectronics - All Rights Reserved
+ */
+
+#include <common.h>
+#include <console.h>
+#include <cli.h>
+#include <clk.h>
+#include <malloc.h>
+#include <ram.h>
+#include <reset.h>
+#include "stm32mp1_ddr.h"
+#include "stm32mp1_tests.h"
+
+DECLARE_GLOBAL_DATA_PTR;
+
+enum ddr_command {
+       DDR_CMD_HELP,
+       DDR_CMD_INFO,
+       DDR_CMD_FREQ,
+       DDR_CMD_RESET,
+       DDR_CMD_PARAM,
+       DDR_CMD_PRINT,
+       DDR_CMD_EDIT,
+       DDR_CMD_STEP,
+       DDR_CMD_NEXT,
+       DDR_CMD_GO,
+       DDR_CMD_TEST,
+       DDR_CMD_TUNING,
+       DDR_CMD_UNKNOWN,
+};
+
+const char *step_str[] = {
+       [STEP_DDR_RESET] = "DDR_RESET",
+       [STEP_CTL_INIT] = "DDR_CTRL_INIT_DONE",
+       [STEP_PHY_INIT] = "DDR PHY_INIT_DONE",
+       [STEP_DDR_READY] = "DDR_READY",
+       [STEP_RUN] = "RUN"
+};
+
+enum ddr_command stm32mp1_get_command(char *cmd, int argc)
+{
+       const char *cmd_string[DDR_CMD_UNKNOWN] = {
+               [DDR_CMD_HELP] = "help",
+               [DDR_CMD_INFO] = "info",
+               [DDR_CMD_FREQ] = "freq",
+               [DDR_CMD_RESET] = "reset",
+               [DDR_CMD_PARAM] = "param",
+               [DDR_CMD_PRINT] = "print",
+               [DDR_CMD_EDIT] = "edit",
+               [DDR_CMD_STEP] = "step",
+               [DDR_CMD_NEXT] = "next",
+               [DDR_CMD_GO] = "go",
+#ifdef CONFIG_STM32MP1_DDR_TESTS
+               [DDR_CMD_TEST] = "test",
+#endif
+#ifdef CONFIG_STM32MP1_DDR_TUNING
+               [DDR_CMD_TUNING] = "tuning",
+#endif
+       };
+       /* min and max number of argument */
+       const char cmd_arg[DDR_CMD_UNKNOWN][2] = {
+               [DDR_CMD_HELP] = { 0, 0 },
+               [DDR_CMD_INFO] = { 0, 255 },
+               [DDR_CMD_FREQ] = { 0, 1 },
+               [DDR_CMD_RESET] = { 0, 0 },
+               [DDR_CMD_PARAM] = { 0, 2 },
+               [DDR_CMD_PRINT] = { 0, 1 },
+               [DDR_CMD_EDIT] = { 2, 2 },
+               [DDR_CMD_STEP] = { 0, 1 },
+               [DDR_CMD_NEXT] = { 0, 0 },
+               [DDR_CMD_GO] = { 0, 0 },
+#ifdef CONFIG_STM32MP1_DDR_TESTS
+               [DDR_CMD_TEST] = { 0, 255 },
+#endif
+#ifdef CONFIG_STM32MP1_DDR_TUNING
+               [DDR_CMD_TUNING] = { 0, 255 },
+#endif
+       };
+       int i;
+
+       for (i = 0; i < DDR_CMD_UNKNOWN; i++)
+               if (!strcmp(cmd, cmd_string[i])) {
+                       if (argc - 1 < cmd_arg[i][0]) {
+                               printf("no enought argument (min=%d)\n",
+                                      cmd_arg[i][0]);
+                               return DDR_CMD_UNKNOWN;
+                       } else if (argc - 1 > cmd_arg[i][1]) {
+                               printf("too many argument (max=%d)\n",
+                                      cmd_arg[i][1]);
+                               return DDR_CMD_UNKNOWN;
+                       } else {
+                               return i;
+                       }
+               }
+
+       printf("unknown command %s\n", cmd);
+       return DDR_CMD_UNKNOWN;
+}
+
+static void stm32mp1_do_usage(void)
+{
+       const char *usage = {
+               "commands:\n\n"
+               "help                       displays help\n"
+               "info                       displays DDR information\n"
+               "info  <param> <val>        changes DDR information\n"
+               "      with <param> = step, name, size or speed\n"
+               "freq                       displays the DDR PHY frequency in kHz\n"
+               "freq  <freq>               changes the DDR PHY frequency\n"
+               "param [type|reg]           prints input parameters\n"
+               "param <reg> <val>          edits parameters in step 0\n"
+               "print [type|reg]           dumps registers\n"
+               "edit <reg> <val>           modifies one register\n"
+               "step                       lists the available step\n"
+               "step <n>                   go to the step <n>\n"
+               "next                       goes to the next step\n"
+               "go                         continues the U-Boot SPL execution\n"
+               "reset                      reboots machine\n"
+#ifdef CONFIG_STM32MP1_DDR_TESTS
+               "test [help] | <n> [...]    lists (with help) or executes test <n>\n"
+#endif
+#ifdef CONFIG_STM32MP1_DDR_TUNING
+               "tuning [help] | <n> [...]  lists (with help) or execute tuning <n>\n"
+#endif
+               "\nwith for [type|reg]:\n"
+               "  all registers if absent\n"
+               "  <type> = ctl, phy\n"
+               "           or one category (static, timing, map, perf, cal, dyn)\n"
+               "  <reg> = name of the register\n"
+       };
+
+       puts(usage);
+}
+
+static bool stm32mp1_check_step(enum stm32mp1_ddr_interact_step step,
+                               enum stm32mp1_ddr_interact_step expected)
+{
+       if (step != expected) {
+               printf("invalid step %d:%s expecting %d:%s\n",
+                      step, step_str[step],
+                      expected,
+                      step_str[expected]);
+               return false;
+       }
+       return true;
+}
+
+static void stm32mp1_do_info(struct ddr_info *priv,
+                            struct stm32mp1_ddr_config *config,
+                            enum stm32mp1_ddr_interact_step step,
+                            int argc, char * const argv[])
+{
+       unsigned long value;
+       static char *ddr_name;
+
+       if (argc == 1) {
+               printf("step = %d : %s\n", step, step_str[step]);
+               printf("name = %s\n", config->info.name);
+               printf("size = 0x%x\n", config->info.size);
+               printf("speed = %d kHz\n", config->info.speed);
+               return;
+       }
+
+       if (argc < 3) {
+               printf("no enought parameter\n");
+               return;
+       }
+       if (!strcmp(argv[1], "name")) {
+               u32 i, name_len = 0;
+
+               for (i = 2; i < argc; i++)
+                       name_len += strlen(argv[i]) + 1;
+               if (ddr_name)
+                       free(ddr_name);
+               ddr_name = malloc(name_len);
+               config->info.name = ddr_name;
+               if (!ddr_name) {
+                       printf("alloc error, length %d\n", name_len);
+                       return;
+               }
+               strcpy(ddr_name, argv[2]);
+               for (i = 3; i < argc; i++) {
+                       strcat(ddr_name, " ");
+                       strcat(ddr_name, argv[i]);
+               }
+               printf("name = %s\n", ddr_name);
+               return;
+       }
+       if (!strcmp(argv[1], "size")) {
+               if (strict_strtoul(argv[2], 16, &value) < 0) {
+                       printf("invalid value %s\n", argv[2]);
+               } else {
+                       config->info.size = value;
+                       printf("size = 0x%x\n", config->info.size);
+               }
+               return;
+       }
+       if (!strcmp(argv[1], "speed")) {
+               if (strict_strtoul(argv[2], 10, &value) < 0) {
+                       printf("invalid value %s\n", argv[2]);
+               } else {
+                       config->info.speed = value;
+                       printf("speed = %d kHz\n", config->info.speed);
+                       value = clk_get_rate(&priv->clk);
+                       printf("DDRPHY = %ld kHz\n", value / 1000);
+               }
+               return;
+       }
+       printf("argument %s invalid\n", argv[1]);
+}
+
+static bool stm32mp1_do_freq(struct ddr_info *priv,
+                            int argc, char * const argv[])
+{
+       unsigned long ddrphy_clk;
+
+       if (argc == 2) {
+               if (strict_strtoul(argv[1], 0, &ddrphy_clk) < 0) {
+                       printf("invalid argument %s", argv[1]);
+                       return false;
+               }
+               if (clk_set_rate(&priv->clk, ddrphy_clk * 1000)) {
+                       printf("ERROR: update failed!\n");
+                       return false;
+               }
+       }
+       ddrphy_clk = clk_get_rate(&priv->clk);
+       printf("DDRPHY = %ld kHz\n", ddrphy_clk / 1000);
+       if (argc == 2)
+               return true;
+       return false;
+}
+
+static void stm32mp1_do_param(enum stm32mp1_ddr_interact_step step,
+                             const struct stm32mp1_ddr_config *config,
+                             int argc, char * const argv[])
+{
+       switch (argc) {
+       case 1:
+               stm32mp1_dump_param(config, NULL);
+               break;
+       case 2:
+               if (stm32mp1_dump_param(config, argv[1]))
+                       printf("invalid argument %s\n",
+                              argv[1]);
+               break;
+       case 3:
+               if (!stm32mp1_check_step(step, STEP_DDR_RESET))
+                       return;
+               stm32mp1_edit_param(config, argv[1], argv[2]);
+               break;
+       }
+}
+
+static void stm32mp1_do_print(struct ddr_info *priv,
+                             int argc, char * const argv[])
+{
+       switch (argc) {
+       case 1:
+               stm32mp1_dump_reg(priv, NULL);
+               break;
+       case 2:
+               if (stm32mp1_dump_reg(priv, argv[1]))
+                       printf("invalid argument %s\n",
+                              argv[1]);
+               break;
+       }
+}
+
+static int stm32mp1_do_step(enum stm32mp1_ddr_interact_step step,
+                           int argc, char * const argv[])
+{
+       int i;
+       unsigned long value;
+
+       switch (argc) {
+       case 1:
+               for (i = 0; i < ARRAY_SIZE(step_str); i++)
+                       printf("%d:%s\n", i, step_str[i]);
+               break;
+
+       case 2:
+               if ((strict_strtoul(argv[1], 0,
+                                   &value) < 0) ||
+                                   value >= ARRAY_SIZE(step_str)) {
+                       printf("invalid argument %s\n",
+                              argv[1]);
+                       goto end;
+               }
+
+               if (value != STEP_DDR_RESET &&
+                   value <= step) {
+                       printf("invalid target %d:%s, current step is %d:%s\n",
+                              (int)value, step_str[value],
+                              step, step_str[step]);
+                       goto end;
+               }
+               printf("step to %d:%s\n",
+                      (int)value, step_str[value]);
+               return (int)value;
+       };
+
+end:
+       return step;
+}
+
+#if defined(CONFIG_STM32MP1_DDR_TESTS) || defined(CONFIG_STM32MP1_DDR_TUNING)
+static const char * const s_result[] = {
+               [TEST_PASSED] = "Pass",
+               [TEST_FAILED] = "Failed",
+               [TEST_ERROR] = "Error"
+};
+
+static void stm32mp1_ddr_subcmd(struct ddr_info *priv,
+                               int argc, char *argv[],
+                               const struct test_desc array[],
+                               const int array_nb)
+{
+       int i;
+       unsigned long value;
+       int result;
+       char string[50] = "";
+
+       if (argc == 1) {
+               printf("%s:%d\n", argv[0], array_nb);
+               for (i = 0; i < array_nb; i++)
+                       printf("%d:%s:%s\n",
+                              i, array[i].name, array[i].usage);
+               return;
+       }
+       if (argc > 1 && !strcmp(argv[1], "help")) {
+               printf("%s:%d\n", argv[0], array_nb);
+               for (i = 0; i < array_nb; i++)
+                       printf("%d:%s:%s:%s\n", i,
+                              array[i].name, array[i].usage, array[i].help);
+               return;
+       }
+
+       if ((strict_strtoul(argv[1], 0, &value) <  0) ||
+           value >= array_nb) {
+               sprintf(string, "invalid argument %s",
+                       argv[1]);
+               result = TEST_FAILED;
+               goto end;
+       }
+
+       if (argc > (array[value].max_args + 2)) {
+               sprintf(string, "invalid nb of args %d, max %d",
+                       argc - 2, array[value].max_args);
+               result = TEST_FAILED;
+               goto end;
+       }
+
+       printf("execute %d:%s\n", (int)value, array[value].name);
+       clear_ctrlc();
+       result = array[value].fct(priv->ctl, priv->phy,
+                                 string, argc - 2, &argv[2]);
+
+end:
+       printf("Result: %s [%s]\n", s_result[result], string);
+}
+#endif
+
+bool stm32mp1_ddr_interactive(void *priv,
+                             enum stm32mp1_ddr_interact_step step,
+                             const struct stm32mp1_ddr_config *config)
+{
+       const char *prompt = "DDR>";
+       char buffer[CONFIG_SYS_CBSIZE];
+       char *argv[CONFIG_SYS_MAXARGS + 1];     /* NULL terminated */
+       int argc;
+       static int next_step = -1;
+
+       if (next_step < 0 && step == STEP_DDR_RESET) {
+#ifdef CONFIG_STM32MP1_DDR_INTERACTIVE_FORCE
+               gd->flags &= ~(GD_FLG_SILENT |
+                              GD_FLG_DISABLE_CONSOLE);
+               next_step = STEP_DDR_RESET;
+#else
+               unsigned long start = get_timer(0);
+
+               while (1) {
+                       if (tstc() && (getc() == 'd')) {
+                               next_step = STEP_DDR_RESET;
+                               break;
+                       }
+                       if (get_timer(start) > 100)
+                               break;
+               }
+#endif
+       }
+
+       debug("** step %d ** %s / %d\n", step, step_str[step], next_step);
+
+       if (next_step < 0)
+               return false;
+
+       if (step < 0 || step > ARRAY_SIZE(step_str)) {
+               printf("** step %d ** INVALID\n", step);
+               return false;
+       }
+
+       printf("%d:%s\n", step, step_str[step]);
+       printf("%s\n", prompt);
+
+       if (next_step > step)
+               return false;
+
+       while (next_step == step) {
+               cli_readline_into_buffer(prompt, buffer, 0);
+               argc = cli_simple_parse_line(buffer, argv);
+               if (!argc)
+                       continue;
+
+               switch (stm32mp1_get_command(argv[0], argc)) {
+               case DDR_CMD_HELP:
+                       stm32mp1_do_usage();
+                       break;
+
+               case DDR_CMD_INFO:
+                       stm32mp1_do_info(priv,
+                                        (struct stm32mp1_ddr_config *)config,
+                                        step, argc, argv);
+                       break;
+
+               case DDR_CMD_FREQ:
+                       if (stm32mp1_do_freq(priv, argc, argv))
+                               next_step = STEP_DDR_RESET;
+                       break;
+
+               case DDR_CMD_RESET:
+                       do_reset(NULL, 0, 0, NULL);
+                       break;
+
+               case DDR_CMD_PARAM:
+                       stm32mp1_do_param(step, config, argc, argv);
+                       break;
+
+               case DDR_CMD_PRINT:
+                       stm32mp1_do_print(priv, argc, argv);
+                       break;
+
+               case DDR_CMD_EDIT:
+                       stm32mp1_edit_reg(priv, argv[1], argv[2]);
+                       break;
+
+               case DDR_CMD_GO:
+                       next_step = STEP_RUN;
+                       break;
+
+               case DDR_CMD_NEXT:
+                       next_step = step + 1;
+                       break;
+
+               case DDR_CMD_STEP:
+                       next_step = stm32mp1_do_step(step, argc, argv);
+                       break;
+
+#ifdef CONFIG_STM32MP1_DDR_TESTS
+               case DDR_CMD_TEST:
+                       if (!stm32mp1_check_step(step, STEP_DDR_READY))
+                               continue;
+                       stm32mp1_ddr_subcmd(priv, argc, argv, test, test_nb);
+                       break;
+#endif
+
+#ifdef CONFIG_STM32MP1_DDR_TUNING
+               case DDR_CMD_TUNING:
+                       if (!stm32mp1_check_step(step, STEP_DDR_READY))
+                               continue;
+                       stm32mp1_ddr_subcmd(priv, argc, argv,
+                                           tuning, tuning_nb);
+                       break;
+#endif
+
+               default:
+                       break;
+               }
+       }
+       return next_step == STEP_DDR_RESET;
+}
index e45a3b2658a31dce190c436fb659b7db278244fb..84e39d093b552d19a9f8cf43dc23bcb5faa77eeb 100644 (file)
@@ -20,7 +20,7 @@ static const char *const clkname[] = {
        "ddrphyc" /* LAST clock => used for get_rate() */
 };
 
-int stm32mp1_ddr_clk_enable(struct ddr_info *priv, uint16_t mem_speed)
+int stm32mp1_ddr_clk_enable(struct ddr_info *priv, uint32_t mem_speed)
 {
        unsigned long ddrphy_clk;
        unsigned long ddr_clk;
@@ -43,13 +43,13 @@ int stm32mp1_ddr_clk_enable(struct ddr_info *priv, uint16_t mem_speed)
        priv->clk = clk;
        ddrphy_clk = clk_get_rate(&priv->clk);
 
-       debug("DDR: mem_speed (%d MHz), RCC %d MHz\n",
-             mem_speed, (u32)(ddrphy_clk / 1000 / 1000));
+       debug("DDR: mem_speed (%d kHz), RCC %d kHz\n",
+             mem_speed, (u32)(ddrphy_clk / 1000));
        /* max 10% frequency delta */
-       ddr_clk = abs(ddrphy_clk - mem_speed * 1000 * 1000);
-       if (ddr_clk > (mem_speed * 1000 * 100)) {
-               pr_err("DDR expected freq %d MHz, current is %d MHz\n",
-                      mem_speed, (u32)(ddrphy_clk / 1000 / 1000));
+       ddr_clk = abs(ddrphy_clk - mem_speed * 1000);
+       if (ddr_clk > (mem_speed * 100)) {
+               pr_err("DDR expected freq %d kHz, current is %d kHz\n",
+                      mem_speed, (u32)(ddrphy_clk / 1000));
                return -EINVAL;
        }
 
@@ -102,8 +102,8 @@ static __maybe_unused int stm32mp1_ddr_setup(struct udevice *dev)
                debug("%s: %s[0x%x] = %d\n", __func__,
                      param[idx].name, param[idx].size, ret);
                if (ret) {
-                       pr_err("%s: Cannot read %s\n",
-                              __func__, param[idx].name);
+                       pr_err("%s: Cannot read %s, error=%d\n",
+                              __func__, param[idx].name, ret);
                        return -EINVAL;
                }
        }
diff --git a/drivers/ram/stm32mp1/stm32mp1_tests.c b/drivers/ram/stm32mp1/stm32mp1_tests.c
new file mode 100644 (file)
index 0000000..b6fb2a9
--- /dev/null
@@ -0,0 +1,1426 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2019, STMicroelectronics - All Rights Reserved
+ */
+#include <common.h>
+#include <console.h>
+#include <asm/io.h>
+#include <linux/log2.h>
+#include "stm32mp1_tests.h"
+
+#define ADDR_INVALID   0xFFFFFFFF
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static int get_bufsize(char *string, int argc, char *argv[], int arg_nb,
+                      size_t *bufsize, size_t default_size)
+{
+       unsigned long value;
+
+       if (argc > arg_nb) {
+               if (strict_strtoul(argv[arg_nb], 0, &value) < 0) {
+                       sprintf(string, "invalid %d parameter %s",
+                               arg_nb, argv[arg_nb]);
+                       return -1;
+               }
+               if (value > STM32_DDR_SIZE || value == 0) {
+                       sprintf(string, "invalid size %s", argv[arg_nb]);
+                       return -1;
+               }
+               if (value & 0x3) {
+                       sprintf(string, "unaligned size %s",
+                               argv[arg_nb]);
+                       return -1;
+               }
+               *bufsize = value;
+       } else {
+               if (default_size != STM32_DDR_SIZE)
+                       *bufsize = default_size;
+               else
+                       *bufsize = get_ram_size((long *)STM32_DDR_BASE,
+                                               STM32_DDR_SIZE);
+       }
+       return 0;
+}
+
+static int get_nb_loop(char *string, int argc, char *argv[], int arg_nb,
+                      u32 *nb_loop, u32 default_nb_loop)
+{
+       unsigned long value;
+
+       if (argc > arg_nb) {
+               if (strict_strtoul(argv[arg_nb], 0, &value) < 0) {
+                       sprintf(string, "invalid %d parameter %s",
+                               arg_nb, argv[arg_nb]);
+                       return -1;
+               }
+               if (value == 0)
+                       printf("WARNING: infinite loop requested\n");
+               *nb_loop = value;
+       } else {
+               *nb_loop = default_nb_loop;
+       }
+
+       return 0;
+}
+
+static int get_addr(char *string, int argc, char *argv[], int arg_nb,
+                   u32 *addr)
+{
+       unsigned long value;
+
+       if (argc > arg_nb) {
+               if (strict_strtoul(argv[arg_nb], 16, &value) < 0) {
+                       sprintf(string, "invalid %d parameter %s",
+                               arg_nb, argv[arg_nb]);
+                       return -1;
+               }
+               if (value < STM32_DDR_BASE) {
+                       sprintf(string, "too low address %s", argv[arg_nb]);
+                       return -1;
+               }
+               if (value & 0x3 && value != ADDR_INVALID) {
+                       sprintf(string, "unaligned address %s",
+                               argv[arg_nb]);
+                       return -1;
+               }
+               *addr = value;
+       } else {
+               *addr = STM32_DDR_BASE;
+       }
+
+       return 0;
+}
+
+static int get_pattern(char *string, int argc, char *argv[], int arg_nb,
+                      u32 *pattern, u32 default_pattern)
+{
+       unsigned long value;
+
+       if (argc > arg_nb) {
+               if (strict_strtoul(argv[arg_nb], 16, &value) < 0) {
+                       sprintf(string, "invalid %d parameter %s",
+                               arg_nb, argv[arg_nb]);
+                       return -1;
+               }
+               *pattern = value;
+       } else {
+               *pattern = default_pattern;
+       }
+
+       return 0;
+}
+
+static u32 check_addr(u32 addr, u32 value)
+{
+       u32 data = readl(addr);
+
+       if (value !=  data) {
+               printf("0x%08x: 0x%08x <=> 0x%08x", addr, data, value);
+               data = readl(addr);
+               printf("(2nd read: 0x%08x)", data);
+               if (value == data)
+                       printf("- read error");
+               else
+                       printf("- write error");
+               printf("\n");
+               return -1;
+       }
+       return 0;
+}
+
+static int progress(u32 offset)
+{
+       if (!(offset & 0xFFFFFF)) {
+               putc('.');
+               if (ctrlc()) {
+                       printf("\ntest interrupted!\n");
+                       return 1;
+               }
+       }
+       return 0;
+}
+
+static int test_loop_end(u32 *loop, u32 nb_loop, u32 progress)
+{
+       (*loop)++;
+       if (nb_loop && *loop >= nb_loop)
+               return 1;
+       if ((*loop) % progress)
+               return 0;
+       /* allow to interrupt the test only for progress step */
+       if (ctrlc()) {
+               printf("test interrupted!\n");
+               return 1;
+       }
+       printf("loop #%d\n", *loop);
+       return 0;
+}
+
+/**********************************************************************
+ *
+ * Function:    memTestDataBus()
+ *
+ * Description: Test the data bus wiring in a memory region by
+ *              performing a walking 1's test at a fixed address
+ *              within that region.  The address is selected
+ *              by the caller.
+ *
+ * Notes:
+ *
+ * Returns:     0 if the test succeeds.
+ *              A non-zero result is the first pattern that failed.
+ *
+ **********************************************************************/
+static u32 databus(u32 *address)
+{
+       u32 pattern;
+       u32 read_value;
+
+       /* Perform a walking 1's test at the given address. */
+       for (pattern = 1; pattern != 0; pattern <<= 1) {
+               /* Write the test pattern. */
+               writel(pattern, address);
+
+               /* Read it back (immediately is okay for this test). */
+               read_value = readl(address);
+               debug("%x: %x <=> %x\n",
+                     (u32)address, read_value, pattern);
+
+               if (read_value != pattern)
+                       return pattern;
+       }
+
+       return 0;
+}
+
+/**********************************************************************
+ *
+ * Function:    memTestAddressBus()
+ *
+ * Description: Test the address bus wiring in a memory region by
+ *              performing a walking 1's test on the relevant bits
+ *              of the address and checking for aliasing. This test
+ *              will find single-bit address failures such as stuck
+ *              -high, stuck-low, and shorted pins.  The base address
+ *              and size of the region are selected by the caller.
+ *
+ * Notes:       For best results, the selected base address should
+ *              have enough LSB 0's to guarantee single address bit
+ *              changes.  For example, to test a 64-Kbyte region,
+ *              select a base address on a 64-Kbyte boundary.  Also,
+ *              select the region size as a power-of-two--if at all
+ *              possible.
+ *
+ * Returns:     NULL if the test succeeds.
+ *              A non-zero result is the first address at which an
+ *              aliasing problem was uncovered.  By examining the
+ *              contents of memory, it may be possible to gather
+ *              additional information about the problem.
+ *
+ **********************************************************************/
+static u32 *addressbus(u32 *address, u32 nb_bytes)
+{
+       u32 mask = (nb_bytes / sizeof(u32) - 1);
+       u32 offset;
+       u32 test_offset;
+       u32 read_value;
+
+       u32 pattern     = 0xAAAAAAAA;
+       u32 antipattern = 0x55555555;
+
+       /* Write the default pattern at each of the power-of-two offsets. */
+       for (offset = 1; (offset & mask) != 0; offset <<= 1)
+               writel(pattern, &address[offset]);
+
+       /* Check for address bits stuck high. */
+       test_offset = 0;
+       writel(antipattern, &address[test_offset]);
+
+       for (offset = 1; (offset & mask) != 0; offset <<= 1) {
+               read_value = readl(&address[offset]);
+               debug("%x: %x <=> %x\n",
+                     (u32)&address[offset], read_value, pattern);
+               if (read_value != pattern)
+                       return &address[offset];
+       }
+
+       writel(pattern, &address[test_offset]);
+
+       /* Check for address bits stuck low or shorted. */
+       for (test_offset = 1; (test_offset & mask) != 0; test_offset <<= 1) {
+               writel(antipattern, &address[test_offset]);
+               if (readl(&address[0]) != pattern)
+                       return &address[test_offset];
+
+               for (offset = 1; (offset & mask) != 0; offset <<= 1) {
+                       if (readl(&address[offset]) != pattern &&
+                           offset != test_offset)
+                               return &address[test_offset];
+               }
+               writel(pattern, &address[test_offset]);
+       }
+
+       return NULL;
+}
+
+/**********************************************************************
+ *
+ * Function:    memTestDevice()
+ *
+ * Description: Test the integrity of a physical memory device by
+ *              performing an increment/decrement test over the
+ *              entire region.  In the process every storage bit
+ *              in the device is tested as a zero and a one.  The
+ *              base address and the size of the region are
+ *              selected by the caller.
+ *
+ * Notes:
+ *
+ * Returns:     NULL if the test succeeds.
+ *
+ *              A non-zero result is the first address at which an
+ *              incorrect value was read back.  By examining the
+ *              contents of memory, it may be possible to gather
+ *              additional information about the problem.
+ *
+ **********************************************************************/
+static u32 *memdevice(u32 *address, u32 nb_bytes)
+{
+       u32 offset;
+       u32 nb_words = nb_bytes / sizeof(u32);
+
+       u32 pattern;
+       u32 antipattern;
+
+       puts("Fill with pattern");
+       /* Fill memory with a known pattern. */
+       for (pattern = 1, offset = 0; offset < nb_words; pattern++, offset++) {
+               writel(pattern, &address[offset]);
+               if (progress(offset))
+                       return NULL;
+       }
+
+       puts("\nCheck and invert pattern");
+       /* Check each location and invert it for the second pass. */
+       for (pattern = 1, offset = 0; offset < nb_words; pattern++, offset++) {
+               if (readl(&address[offset]) != pattern)
+                       return &address[offset];
+
+               antipattern = ~pattern;
+               writel(antipattern, &address[offset]);
+               if (progress(offset))
+                       return NULL;
+       }
+
+       puts("\nCheck inverted pattern");
+       /* Check each location for the inverted pattern and zero it. */
+       for (pattern = 1, offset = 0; offset < nb_words; pattern++, offset++) {
+               antipattern = ~pattern;
+               if (readl(&address[offset]) != antipattern)
+                       return &address[offset];
+               if (progress(offset))
+                       return NULL;
+       }
+       printf("\n");
+
+       return NULL;
+}
+
+static enum test_result databuswalk0(struct stm32mp1_ddrctl *ctl,
+                                    struct stm32mp1_ddrphy *phy,
+                                    char *string, int argc, char *argv[])
+{
+       int i;
+       u32 loop = 0, nb_loop;
+       u32 addr;
+       u32 error = 0;
+       u32 data;
+
+       if (get_nb_loop(string, argc, argv, 0, &nb_loop, 100))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 1, &addr))
+               return TEST_ERROR;
+
+       printf("running %d loops at 0x%x\n", nb_loop, addr);
+       while (!error) {
+               for (i = 0; i < 32; i++)
+                       writel(~(1 << i), addr + 4 * i);
+               for (i = 0; i < 32; i++) {
+                       data = readl(addr + 4 * i);
+                       if (~(1 << i) !=  data) {
+                               error |= 1 << i;
+                               debug("%x: error %x expected %x => error:%x\n",
+                                     addr + 4 * i, data, ~(1 << i), error);
+                       }
+               }
+               if (test_loop_end(&loop, nb_loop, 1000))
+                       break;
+               for (i = 0; i < 32; i++)
+                       writel(0, addr + 4 * i);
+       }
+       if (error) {
+               sprintf(string, "loop %d: error for bits 0x%x",
+                       loop, error);
+               return TEST_FAILED;
+       }
+       sprintf(string, "no error for %d loops", loop);
+       return TEST_PASSED;
+}
+
+static enum test_result databuswalk1(struct stm32mp1_ddrctl *ctl,
+                                    struct stm32mp1_ddrphy *phy,
+                                    char *string, int argc, char *argv[])
+{
+       int i;
+       u32 loop = 0, nb_loop;
+       u32 addr;
+       u32 error = 0;
+       u32 data;
+
+       if (get_nb_loop(string, argc, argv, 0, &nb_loop, 100))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 1, &addr))
+               return TEST_ERROR;
+       printf("running %d loops at 0x%x\n", nb_loop, addr);
+       while (!error) {
+               for (i = 0; i < 32; i++)
+                       writel(1 << i, addr + 4 * i);
+               for (i = 0; i < 32; i++) {
+                       data = readl(addr + 4 * i);
+                       if ((1 << i) !=  data) {
+                               error |= 1 << i;
+                               debug("%x: error %x expected %x => error:%x\n",
+                                     addr + 4 * i, data, (1 << i), error);
+                       }
+               }
+               if (test_loop_end(&loop, nb_loop, 1000))
+                       break;
+               for (i = 0; i < 32; i++)
+                       writel(0, addr + 4 * i);
+       }
+       if (error) {
+               sprintf(string, "loop %d: error for bits 0x%x",
+                       loop, error);
+               return TEST_FAILED;
+       }
+       sprintf(string, "no error for %d loops", loop);
+       return TEST_PASSED;
+}
+
+static enum test_result test_databus(struct stm32mp1_ddrctl *ctl,
+                                    struct stm32mp1_ddrphy *phy,
+                                    char *string, int argc, char *argv[])
+{
+       u32 addr;
+       u32 error;
+
+       if (get_addr(string, argc, argv, 0, &addr))
+               return TEST_ERROR;
+       error = databus((u32 *)addr);
+       if (error) {
+               sprintf(string, "0x%x: error for bits 0x%x",
+                       addr, error);
+               return TEST_FAILED;
+       }
+       sprintf(string, "address 0x%x", addr);
+       return TEST_PASSED;
+}
+
+static enum test_result test_addressbus(struct stm32mp1_ddrctl *ctl,
+                                       struct stm32mp1_ddrphy *phy,
+                                       char *string, int argc, char *argv[])
+{
+       u32 addr;
+       u32 bufsize;
+       u32 error;
+
+       if (get_bufsize(string, argc, argv, 0, &bufsize, 4 * 1024))
+               return TEST_ERROR;
+       if (!is_power_of_2(bufsize)) {
+               sprintf(string, "size 0x%x is not a power of 2",
+                       (u32)bufsize);
+               return TEST_ERROR;
+       }
+       if (get_addr(string, argc, argv, 1, &addr))
+               return TEST_ERROR;
+
+       error = (u32)addressbus((u32 *)addr, bufsize);
+       if (error) {
+               sprintf(string, "0x%x: error for address 0x%x",
+                       addr, error);
+               return TEST_FAILED;
+       }
+       sprintf(string, "address 0x%x, size 0x%x",
+               addr, bufsize);
+       return TEST_PASSED;
+}
+
+static enum test_result test_memdevice(struct stm32mp1_ddrctl *ctl,
+                                      struct stm32mp1_ddrphy *phy,
+                                      char *string, int argc, char *argv[])
+{
+       u32 addr;
+       size_t bufsize;
+       u32 error;
+
+       if (get_bufsize(string, argc, argv, 0, &bufsize, 4 * 1024))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 1, &addr))
+               return TEST_ERROR;
+       error = (u32)memdevice((u32 *)addr, (unsigned long)bufsize);
+       if (error) {
+               sprintf(string, "0x%x: error for address 0x%x",
+                       addr, error);
+               return TEST_FAILED;
+       }
+       sprintf(string, "address 0x%x, size 0x%x",
+               addr, bufsize);
+       return TEST_PASSED;
+}
+
+/**********************************************************************
+ *
+ * Function:    sso
+ *
+ * Description: Test the Simultaneous Switching Output.
+ *              Verifies succes sive reads and writes to the same memory word,
+ *              holding one bit constant while toggling all other data bits
+ *              simultaneously
+ *              => stress the data bus over an address range
+ *
+ *              The CPU writes to each address in the given range.
+ *              For each bit, first the CPU holds the bit at 1 while
+ *              toggling the other bits, and then the CPU holds the bit at 0
+ *              while toggling the other bits.
+ *              After each write, the CPU reads the address that was written
+ *              to verify that it contains the correct data
+ *
+ **********************************************************************/
+static enum test_result test_sso(struct stm32mp1_ddrctl *ctl,
+                                struct stm32mp1_ddrphy *phy,
+                                char *string, int argc, char *argv[])
+{
+       int i, j;
+       u32 addr, bufsize, remaining, offset;
+       u32 error = 0;
+       u32 data;
+
+       if (get_bufsize(string, argc, argv, 0, &bufsize, 4))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 1, &addr))
+               return TEST_ERROR;
+
+       printf("running sso at 0x%x length 0x%x", addr, bufsize);
+       offset = addr;
+       remaining = bufsize;
+       while (remaining) {
+               for (i = 0; i < 32; i++) {
+                       /* write pattern. */
+                       for (j = 0; j < 6; j++) {
+                               switch (j) {
+                               case 0:
+                               case 2:
+                                       data = 1 << i;
+                                       break;
+                               case 3:
+                               case 5:
+                                       data = ~(1 << i);
+                                       break;
+                               case 1:
+                                       data = ~0x0;
+                                       break;
+                               case 4:
+                                       data = 0x0;
+                                       break;
+                               }
+
+                               writel(data, offset);
+                               error = check_addr(offset, data);
+                               if (error)
+                                       goto end;
+                       }
+               }
+               offset += 4;
+               remaining -= 4;
+               if (progress(offset << 7))
+                       goto end;
+       }
+       puts("\n");
+
+end:
+       if (error) {
+               sprintf(string, "error for pattern 0x%x @0x%x",
+                       data, offset);
+               return TEST_FAILED;
+       }
+       sprintf(string, "no error for sso at 0x%x length 0x%x", addr, bufsize);
+       return TEST_PASSED;
+}
+
+/**********************************************************************
+ *
+ * Function:    Random
+ *
+ * Description: Verifies r/w with pseudo-ramdom value on one region
+ *              + write the region (individual access)
+ *              + memcopy to the 2nd region (try to use burst)
+ *              + verify the 2 regions
+ *
+ **********************************************************************/
+static enum test_result test_random(struct stm32mp1_ddrctl *ctl,
+                                   struct stm32mp1_ddrphy *phy,
+                                   char *string, int argc, char *argv[])
+{
+       u32 addr, offset, value = 0;
+       size_t bufsize;
+       u32 loop = 0, nb_loop;
+       u32 error = 0;
+       unsigned int seed;
+
+       if (get_bufsize(string, argc, argv, 0, &bufsize, 4 * 1024))
+               return TEST_ERROR;
+       if (get_nb_loop(string, argc, argv, 1, &nb_loop, 1))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 2, &addr))
+               return TEST_ERROR;
+
+       printf("running %d loops at 0x%x\n", nb_loop, addr);
+       while (!error) {
+               seed = rand();
+               for (offset = addr; offset < addr + bufsize; offset += 4)
+                       writel(rand(), offset);
+
+               memcpy((void *)addr + bufsize, (void *)addr, bufsize);
+
+               srand(seed);
+               for (offset = addr; offset < addr + 2 * bufsize; offset += 4) {
+                       if (offset == (addr + bufsize))
+                               srand(seed);
+                       value = rand();
+                       error = check_addr(offset, value);
+                       if (error)
+                               break;
+                       if (progress(offset))
+                               return TEST_FAILED;
+               }
+               if (test_loop_end(&loop, nb_loop, 100))
+                       break;
+       }
+
+       if (error) {
+               sprintf(string,
+                       "loop %d: error for address 0x%x: 0x%x expected 0x%x",
+                       loop, offset, readl(offset), value);
+               return TEST_FAILED;
+       }
+       sprintf(string, "no error for %d loops, size 0x%x",
+               loop, bufsize);
+       return TEST_PASSED;
+}
+
+/**********************************************************************
+ *
+ * Function:    noise
+ *
+ * Description: Verifies r/w while forcing switching of all data bus lines.
+ *              optimised 4 iteration write/read/write/read cycles...
+ *              for pattern and inversed pattern
+ *
+ **********************************************************************/
+void do_noise(u32 addr, u32 pattern, u32 *result)
+{
+       __asm__("push {R0-R11}");
+       __asm__("mov r0, %0" : : "r" (addr));
+       __asm__("mov r1, %0" : : "r" (pattern));
+       __asm__("mov r11, %0" : : "r" (result));
+
+       __asm__("mvn r2, r1");
+
+       __asm__("str r1, [r0]");
+       __asm__("ldr r3, [r0]");
+       __asm__("str r2, [r0]");
+       __asm__("ldr r4, [r0]");
+
+       __asm__("str r1, [r0]");
+       __asm__("ldr r5, [r0]");
+       __asm__("str r2, [r0]");
+       __asm__("ldr r6, [r0]");
+
+       __asm__("str r1, [r0]");
+       __asm__("ldr r7, [r0]");
+       __asm__("str r2, [r0]");
+       __asm__("ldr r8, [r0]");
+
+       __asm__("str r1, [r0]");
+       __asm__("ldr r9, [r0]");
+       __asm__("str r2, [r0]");
+       __asm__("ldr r10, [r0]");
+
+       __asm__("stmia R11!, {R3-R10}");
+
+       __asm__("pop {R0-R11}");
+}
+
+static enum test_result test_noise(struct stm32mp1_ddrctl *ctl,
+                                  struct stm32mp1_ddrphy *phy,
+                                  char *string, int argc, char *argv[])
+{
+       u32 addr, pattern;
+       u32 result[8];
+       int i;
+       enum test_result res = TEST_PASSED;
+
+       if (get_pattern(string, argc, argv, 0, &pattern, 0xFFFFFFFF))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 1, &addr))
+               return TEST_ERROR;
+
+       printf("running noise for 0x%x at 0x%x\n", pattern, addr);
+
+       do_noise(addr, pattern, result);
+
+       for (i = 0; i < 0x8;) {
+               if (check_addr((u32)&result[i++], pattern))
+                       res = TEST_FAILED;
+               if (check_addr((u32)&result[i++], ~pattern))
+                       res = TEST_FAILED;
+       }
+
+       return res;
+}
+
+/**********************************************************************
+ *
+ * Function:    noise_burst
+ *
+ * Description: Verifies r/w while forcing switching of all data bus lines.
+ *              optimised write loop witrh store multiple to use burst
+ *              for pattern and inversed pattern
+ *
+ **********************************************************************/
+void do_noise_burst(u32 addr, u32 pattern, size_t bufsize)
+{
+       __asm__("push {R0-R9}");
+       __asm__("mov r0, %0" : : "r" (addr));
+       __asm__("mov r1, %0" : : "r" (pattern));
+       __asm__("mov r9, %0" : : "r" (bufsize));
+
+       __asm__("mvn r2, r1");
+       __asm__("mov r3, r1");
+       __asm__("mov r4, r2");
+       __asm__("mov r5, r1");
+       __asm__("mov r6, r2");
+       __asm__("mov r7, r1");
+       __asm__("mov r8, r2");
+
+       __asm__("loop1:");
+       __asm__("stmia R0!, {R1-R8}");
+       __asm__("stmia R0!, {R1-R8}");
+       __asm__("stmia R0!, {R1-R8}");
+       __asm__("stmia R0!, {R1-R8}");
+       __asm__("subs r9, r9, #128");
+       __asm__("bge loop1");
+       __asm__("pop {R0-R9}");
+}
+
+/* chunk size enough to allow interruption with Ctrl-C*/
+#define CHUNK_SIZE     0x8000000
+static enum test_result test_noise_burst(struct stm32mp1_ddrctl *ctl,
+                                        struct stm32mp1_ddrphy *phy,
+                                        char *string, int argc, char *argv[])
+{
+       u32 addr, offset, pattern;
+       size_t bufsize, remaining, size;
+       int i;
+       enum test_result res = TEST_PASSED;
+
+       if (get_bufsize(string, argc, argv, 0, &bufsize, 4 * 1024))
+               return TEST_ERROR;
+       if (get_pattern(string, argc, argv, 1, &pattern, 0xFFFFFFFF))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 2, &addr))
+               return TEST_ERROR;
+
+       printf("running noise burst for 0x%x at 0x%x + 0x%x",
+              pattern, addr, bufsize);
+
+       offset = addr;
+       remaining = bufsize;
+       size = CHUNK_SIZE;
+       while (remaining) {
+               if (remaining < size)
+                       size = remaining;
+               do_noise_burst(offset, pattern, size);
+               remaining -= size;
+               offset += size;
+               if (progress(offset)) {
+                       res = TEST_FAILED;
+                       goto end;
+               }
+       }
+       puts("\ncheck buffer");
+       for (i = 0; i < bufsize;) {
+               if (check_addr(addr + i, pattern))
+                       res = TEST_FAILED;
+               i += 4;
+               if (check_addr(addr + i, ~pattern))
+                       res = TEST_FAILED;
+               i += 4;
+               if (progress(i)) {
+                       res = TEST_FAILED;
+                       goto end;
+               }
+       }
+end:
+       puts("\n");
+       return res;
+}
+
+/**********************************************************************
+ *
+ * Function:    pattern test
+ *
+ * Description: optimized loop for read/write pattern (array of 8 u32)
+ *
+ **********************************************************************/
+#define PATTERN_SIZE   8
+static enum test_result test_loop(const u32 *pattern, u32 *address,
+                                 const u32 bufsize)
+{
+       int i;
+       int j;
+       enum test_result res = TEST_PASSED;
+       u32 *offset, testsize, remaining;
+
+       offset = address;
+       remaining = bufsize;
+       while (remaining) {
+               testsize = bufsize > 0x1000000 ? 0x1000000 : bufsize;
+
+               __asm__("push {R0-R10}");
+               __asm__("mov r0, %0" : : "r" (pattern));
+               __asm__("mov r1, %0" : : "r" (offset));
+               __asm__("mov r2, %0" : : "r" (testsize));
+               __asm__("ldmia r0!, {R3-R10}");
+
+               __asm__("loop2:");
+               __asm__("stmia r1!, {R3-R10}");
+               __asm__("stmia r1!, {R3-R10}");
+               __asm__("stmia r1!, {R3-R10}");
+               __asm__("stmia r1!, {R3-R10}");
+               __asm__("subs r2, r2, #8");
+               __asm__("bge loop2");
+               __asm__("pop {R0-R10}");
+
+               offset += testsize;
+               remaining -= testsize;
+               if (progress((u32)offset)) {
+                       res = TEST_FAILED;
+                       goto end;
+               }
+       }
+
+       puts("\ncheck buffer");
+       for (i = 0; i < bufsize; i += PATTERN_SIZE * 4) {
+               for (j = 0; j < PATTERN_SIZE; j++, address++)
+                       if (check_addr((u32)address, pattern[j])) {
+                               res = TEST_FAILED;
+                               goto end;
+                       }
+               if (progress(i)) {
+                       res = TEST_FAILED;
+                       goto end;
+               }
+       }
+
+end:
+       puts("\n");
+       return res;
+}
+
+const u32 pattern_div1_x16[PATTERN_SIZE] = {
+       0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF,
+       0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF
+};
+
+const u32 pattern_div2_x16[PATTERN_SIZE] = {
+       0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000,
+       0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000
+};
+
+const u32 pattern_div4_x16[PATTERN_SIZE] = {
+       0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
+       0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000
+};
+
+const u32 pattern_div4_x32[PATTERN_SIZE] = {
+       0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000
+};
+
+const u32 pattern_mostly_zero_x16[PATTERN_SIZE] = {
+       0x00000000, 0x00000000, 0x00000000, 0x0000FFFF,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000
+};
+
+const u32 pattern_mostly_zero_x32[PATTERN_SIZE] = {
+       0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000
+};
+
+const u32 pattern_mostly_one_x16[PATTERN_SIZE] = {
+       0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
+       0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
+};
+
+const u32 pattern_mostly_one_x32[PATTERN_SIZE] = {
+       0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000,
+       0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
+};
+
+#define NB_PATTERN     5
+static enum test_result test_freq_pattern(struct stm32mp1_ddrctl *ctl,
+                                         struct stm32mp1_ddrphy *phy,
+                                         char *string, int argc, char *argv[])
+{
+       const u32 * const patterns_x16[NB_PATTERN] = {
+               pattern_div1_x16,
+               pattern_div2_x16,
+               pattern_div4_x16,
+               pattern_mostly_zero_x16,
+               pattern_mostly_one_x16,
+       };
+       const u32 * const patterns_x32[NB_PATTERN] = {
+               pattern_div2_x16,
+               pattern_div4_x16,
+               pattern_div4_x32,
+               pattern_mostly_zero_x32,
+               pattern_mostly_one_x32
+       };
+       const char *patterns_comments[NB_PATTERN] = {
+               "switching at frequency F/1",
+               "switching at frequency F/2",
+               "switching at frequency F/4",
+               "mostly zero",
+               "mostly one"
+       };
+
+       enum test_result res = TEST_PASSED, pattern_res;
+       int i, bus_width;
+       const u32 **patterns;
+       u32 bufsize;
+
+       if (get_bufsize(string, argc, argv, 0, &bufsize, 4 * 1024))
+               return TEST_ERROR;
+
+       switch (readl(&ctl->mstr) & DDRCTRL_MSTR_DATA_BUS_WIDTH_MASK) {
+       case DDRCTRL_MSTR_DATA_BUS_WIDTH_HALF:
+       case DDRCTRL_MSTR_DATA_BUS_WIDTH_QUARTER:
+               bus_width = 16;
+               break;
+       default:
+               bus_width = 32;
+               break;
+       }
+
+       printf("running test pattern at 0x%08x length 0x%x width = %d\n",
+              STM32_DDR_BASE, bufsize, bus_width);
+
+       patterns =
+               (const u32 **)(bus_width == 16 ? patterns_x16 : patterns_x32);
+
+       for (i = 0; i < NB_PATTERN; i++) {
+               printf("test data pattern %s:", patterns_comments[i]);
+               pattern_res = test_loop(patterns[i], (u32 *)STM32_DDR_BASE,
+                                       bufsize);
+               if (pattern_res != TEST_PASSED) {
+                       printf("Failed\n");
+                       return pattern_res;
+               }
+               printf("Passed\n");
+       }
+
+       return res;
+}
+
+/**********************************************************************
+ *
+ * Function:    pattern test with size
+ *
+ * Description: loop for write pattern
+ *
+ **********************************************************************/
+
+static enum test_result test_loop_size(const u32 *pattern, u32 size,
+                                      u32 *address,
+                                      const u32 bufsize)
+{
+       int i, j;
+       enum test_result res = TEST_PASSED;
+       u32 *p = address;
+
+       for (i = 0; i < bufsize; i += size * 4) {
+               for (j = 0; j < size ; j++, p++)
+                       *p = pattern[j];
+               if (progress(i)) {
+                       res = TEST_FAILED;
+                       goto end;
+               }
+       }
+
+       puts("\ncheck buffer");
+       p = address;
+       for (i = 0; i < bufsize; i += size * 4) {
+               for (j = 0; j < size; j++, p++)
+                       if (check_addr((u32)p, pattern[j])) {
+                               res = TEST_FAILED;
+                               goto end;
+                       }
+               if (progress(i)) {
+                       res = TEST_FAILED;
+                       goto end;
+               }
+       }
+
+end:
+       puts("\n");
+       return res;
+}
+
+static enum test_result test_checkboard(struct stm32mp1_ddrctl *ctl,
+                                       struct stm32mp1_ddrphy *phy,
+                                       char *string, int argc, char *argv[])
+{
+       enum test_result res = TEST_PASSED;
+       u32 bufsize, nb_loop, loop = 0, addr;
+       int i;
+
+       u32 checkboard[2] = {0x55555555, 0xAAAAAAAA};
+
+       if (get_bufsize(string, argc, argv, 0, &bufsize, 4 * 1024))
+               return TEST_ERROR;
+       if (get_nb_loop(string, argc, argv, 1, &nb_loop, 1))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 2, &addr))
+               return TEST_ERROR;
+
+       printf("running %d loops at 0x%08x length 0x%x\n",
+              nb_loop, addr, bufsize);
+       while (1) {
+               for (i = 0; i < 2; i++) {
+                       res = test_loop_size(checkboard, 2, (u32 *)addr,
+                                            bufsize);
+                       if (res)
+                               return res;
+                       checkboard[0] = ~checkboard[0];
+                       checkboard[1] = ~checkboard[1];
+               }
+               if (test_loop_end(&loop, nb_loop, 1))
+                       break;
+       }
+       sprintf(string, "no error for %d loops at 0x%08x length 0x%x",
+               loop, addr, bufsize);
+
+       return res;
+}
+
+static enum test_result test_blockseq(struct stm32mp1_ddrctl *ctl,
+                                     struct stm32mp1_ddrphy *phy,
+                                     char *string, int argc, char *argv[])
+{
+       enum test_result res = TEST_PASSED;
+       u32 bufsize, nb_loop, loop = 0, addr, value;
+       int i;
+
+       if (get_bufsize(string, argc, argv, 0, &bufsize, 4 * 1024))
+               return TEST_ERROR;
+       if (get_nb_loop(string, argc, argv, 1, &nb_loop, 1))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 2, &addr))
+               return TEST_ERROR;
+
+       printf("running %d loops at 0x%08x length 0x%x\n",
+              nb_loop, addr, bufsize);
+       while (1) {
+               for (i = 0; i < 256; i++) {
+                       value = i | i << 8 | i << 16 | i << 24;
+                       printf("pattern = %08x", value);
+                       res = test_loop_size(&value, 1, (u32 *)addr, bufsize);
+                       if (res != TEST_PASSED)
+                               return res;
+               }
+               if (test_loop_end(&loop, nb_loop, 1))
+                       break;
+       }
+       sprintf(string, "no error for %d loops at 0x%08x length 0x%x",
+               loop, addr, bufsize);
+
+       return res;
+}
+
+static enum test_result test_walkbit0(struct stm32mp1_ddrctl *ctl,
+                                     struct stm32mp1_ddrphy *phy,
+                                     char *string, int argc, char *argv[])
+{
+       enum test_result res = TEST_PASSED;
+       u32 bufsize, nb_loop, loop = 0, addr, value;
+       int i;
+
+       if (get_bufsize(string, argc, argv, 0, &bufsize, 4 * 1024))
+               return TEST_ERROR;
+       if (get_nb_loop(string, argc, argv, 1, &nb_loop, 1))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 2, &addr))
+               return TEST_ERROR;
+
+       printf("running %d loops at 0x%08x length 0x%x\n",
+              nb_loop, addr, bufsize);
+       while (1) {
+               for (i = 0; i < 64; i++) {
+                       if (i < 32)
+                               value = 1 << i;
+                       else
+                               value = 1 << (63 - i);
+
+                       printf("pattern = %08x", value);
+                       res = test_loop_size(&value, 1, (u32 *)addr, bufsize);
+                       if (res != TEST_PASSED)
+                               return res;
+               }
+               if (test_loop_end(&loop, nb_loop, 1))
+                       break;
+       }
+       sprintf(string, "no error for %d loops at 0x%08x length 0x%x",
+               loop, addr, bufsize);
+
+       return res;
+}
+
+static enum test_result test_walkbit1(struct stm32mp1_ddrctl *ctl,
+                                     struct stm32mp1_ddrphy *phy,
+                                     char *string, int argc, char *argv[])
+{
+       enum test_result res = TEST_PASSED;
+       u32 bufsize, nb_loop, loop = 0, addr, value;
+       int i;
+
+       if (get_bufsize(string, argc, argv, 0, &bufsize, 4 * 1024))
+               return TEST_ERROR;
+       if (get_nb_loop(string, argc, argv, 1, &nb_loop, 1))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 2, &addr))
+               return TEST_ERROR;
+
+       printf("running %d loops at 0x%08x length 0x%x\n",
+              nb_loop, addr, bufsize);
+       while (1) {
+               for (i = 0; i < 64; i++) {
+                       if (i < 32)
+                               value = ~(1 << i);
+                       else
+                               value = ~(1 << (63 - i));
+
+                       printf("pattern = %08x", value);
+                       res = test_loop_size(&value, 1, (u32 *)addr, bufsize);
+                       if (res != TEST_PASSED)
+                               return res;
+               }
+               if (test_loop_end(&loop, nb_loop, 1))
+                       break;
+       }
+       sprintf(string, "no error for %d loops at 0x%08x length 0x%x",
+               loop, addr, bufsize);
+
+       return res;
+}
+
+/*
+ * try to catch bad bits which are dependent on the current values of
+ * surrounding bits in either the same word32
+ */
+static enum test_result test_bitspread(struct stm32mp1_ddrctl *ctl,
+                                      struct stm32mp1_ddrphy *phy,
+                                      char *string, int argc, char *argv[])
+{
+       enum test_result res = TEST_PASSED;
+       u32 bufsize, nb_loop, loop = 0, addr, bitspread[4];
+       int i, j;
+
+       if (get_bufsize(string, argc, argv, 0, &bufsize, 4 * 1024))
+               return TEST_ERROR;
+       if (get_nb_loop(string, argc, argv, 1, &nb_loop, 1))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 2, &addr))
+               return TEST_ERROR;
+
+       printf("running %d loops at 0x%08x length 0x%x\n",
+              nb_loop, addr, bufsize);
+       while (1) {
+               for (i = 1; i < 32; i++) {
+                       for (j = 0; j < i; j++) {
+                               if (i < 32)
+                                       bitspread[0] = (1 << i) | (1 << j);
+                               else
+                                       bitspread[0] = (1 << (63 - i)) |
+                                                      (1 << (63 - j));
+                               bitspread[1] = bitspread[0];
+                               bitspread[2] = ~bitspread[0];
+                               bitspread[3] = ~bitspread[0];
+                               printf("pattern = %08x", bitspread[0]);
+
+                               res = test_loop_size(bitspread, 4, (u32 *)addr,
+                                                    bufsize);
+                               if (res != TEST_PASSED)
+                                       return res;
+                       }
+               }
+               if (test_loop_end(&loop, nb_loop, 1))
+                       break;
+       }
+       sprintf(string, "no error for %d loops at 0x%08x length 0x%x",
+               loop, addr, bufsize);
+
+       return res;
+}
+
+static enum test_result test_bitflip(struct stm32mp1_ddrctl *ctl,
+                                    struct stm32mp1_ddrphy *phy,
+                                    char *string, int argc, char *argv[])
+{
+       enum test_result res = TEST_PASSED;
+       u32 bufsize, nb_loop, loop = 0, addr;
+       int i;
+
+       u32 bitflip[4];
+
+       if (get_bufsize(string, argc, argv, 0, &bufsize, 4 * 1024))
+               return TEST_ERROR;
+       if (get_nb_loop(string, argc, argv, 1, &nb_loop, 1))
+               return TEST_ERROR;
+       if (get_addr(string, argc, argv, 2, &addr))
+               return TEST_ERROR;
+
+       printf("running %d loops at 0x%08x length 0x%x\n",
+              nb_loop, addr, bufsize);
+       while (1) {
+               for (i = 0; i < 32; i++) {
+                       bitflip[0] = 1 << i;
+                       bitflip[1] = bitflip[0];
+                       bitflip[2] = ~bitflip[0];
+                       bitflip[3] = bitflip[2];
+                       printf("pattern = %08x", bitflip[0]);
+
+                       res = test_loop_size(bitflip, 4, (u32 *)addr, bufsize);
+                       if (res != TEST_PASSED)
+                               return res;
+               }
+               if (test_loop_end(&loop, nb_loop, 1))
+                       break;
+       }
+       sprintf(string, "no error for %d loops at 0x%08x length 0x%x",
+               loop, addr, bufsize);
+
+       return res;
+}
+
+/**********************************************************************
+ *
+ * Function: infinite read access to DDR
+ *
+ * Description: continuous read the same pattern at the same address
+ *
+ **********************************************************************/
+static enum test_result test_read(struct stm32mp1_ddrctl *ctl,
+                                 struct stm32mp1_ddrphy *phy,
+                                 char *string, int argc, char *argv[])
+{
+       u32 *addr;
+       u32 data;
+       u32 loop = 0;
+       bool random = false;
+
+       if (get_addr(string, argc, argv, 0, (u32 *)&addr))
+               return TEST_ERROR;
+
+       if ((u32)addr == ADDR_INVALID) {
+               printf("random ");
+               random = true;
+       }
+
+       printf("running at 0x%08x\n", (u32)addr);
+
+       while (1) {
+               if (random)
+                       addr = (u32 *)(STM32_DDR_BASE +
+                              (rand() & (STM32_DDR_SIZE - 1) & ~0x3));
+               data = readl(addr);
+               if (test_loop_end(&loop, 0, 1000))
+                       break;
+       }
+       sprintf(string, "0x%x: %x", (u32)addr, data);
+
+       return TEST_PASSED;
+}
+
+/**********************************************************************
+ *
+ * Function: infinite write access to DDR
+ *
+ * Description: continuous write the same pattern at the same address
+ *
+ **********************************************************************/
+static enum test_result test_write(struct stm32mp1_ddrctl *ctl,
+                                  struct stm32mp1_ddrphy *phy,
+                                  char *string, int argc, char *argv[])
+{
+       u32 *addr;
+       u32 data = 0xA5A5AA55;
+       u32 loop = 0;
+       bool random = false;
+
+       if (get_addr(string, argc, argv, 0, (u32 *)&addr))
+               return TEST_ERROR;
+
+       if ((u32)addr == ADDR_INVALID) {
+               printf("random ");
+               random = true;
+       }
+
+       printf("running at 0x%08x\n", (u32)addr);
+
+       while (1) {
+               if (random) {
+                       addr = (u32 *)(STM32_DDR_BASE +
+                              (rand() & (STM32_DDR_SIZE - 1) & ~0x3));
+                       data = rand();
+               }
+               writel(data, addr);
+               if (test_loop_end(&loop, 0, 1000))
+                       break;
+       }
+       sprintf(string, "0x%x: %x", (u32)addr, data);
+
+       return TEST_PASSED;
+}
+
+#define NB_TEST_INFINITE 2
+static enum test_result test_all(struct stm32mp1_ddrctl *ctl,
+                                struct stm32mp1_ddrphy *phy,
+                                char *string, int argc, char *argv[])
+{
+       enum test_result res = TEST_PASSED, result;
+       int i, nb_error = 0;
+       u32 loop = 0, nb_loop;
+
+       if (get_nb_loop(string, argc, argv, 0, &nb_loop, 1))
+               return TEST_ERROR;
+
+       while (!nb_error) {
+               /* execute all the test except the lasts which are infinite */
+               for (i = 1; i < test_nb - NB_TEST_INFINITE; i++) {
+                       printf("execute %d:%s\n", (int)i, test[i].name);
+                       result = test[i].fct(ctl, phy, string, 0, NULL);
+                       printf("result %d:%s = ", (int)i, test[i].name);
+                       if (result != TEST_PASSED) {
+                               nb_error++;
+                               res = TEST_FAILED;
+                               puts("Failed");
+                       } else {
+                               puts("Passed");
+                       }
+                       puts("\n\n");
+               }
+               printf("loop %d: %d/%d test failed\n\n\n",
+                      loop + 1, nb_error, test_nb - NB_TEST_INFINITE);
+               if (test_loop_end(&loop, nb_loop, 1))
+                       break;
+       }
+       if (res != TEST_PASSED) {
+               sprintf(string, "loop %d: %d/%d test failed", loop, nb_error,
+                       test_nb - NB_TEST_INFINITE);
+       } else {
+               sprintf(string, "loop %d: %d tests passed", loop,
+                       test_nb - NB_TEST_INFINITE);
+       }
+       return res;
+}
+
+/****************************************************************
+ * TEST Description
+ ****************************************************************/
+
+const struct test_desc test[] = {
+       {test_all, "All", "[loop]", "Execute all tests", 1 },
+       {test_databus, "Simple DataBus", "[addr]",
+        "Verifies each data line by walking 1 on fixed address",
+        1
+        },
+       {databuswalk0, "DataBusWalking0", "[loop] [addr]",
+        "Verifies each data bus signal can be driven low (32 word burst)",
+        2
+       },
+       {databuswalk1, "DataBusWalking1", "[loop] [addr]",
+        "Verifies each data bus signal can be driven high (32 word burst)",
+        2
+       },
+       {test_addressbus, "AddressBus", "[size] [addr]",
+        "Verifies each relevant bits of the address and checking for aliasing",
+        2
+        },
+       {test_memdevice, "MemDevice", "[size] [addr]",
+        "Test the integrity of a physical memory (test every storage bit in the region)",
+        2
+        },
+       {test_sso, "SimultaneousSwitchingOutput", "[size] [addr] ",
+        "Stress the data bus over an address range",
+        2
+       },
+       {test_noise, "Noise", "[pattern] [addr]",
+        "Verifies r/w while forcing switching of all data bus lines.",
+        3
+       },
+       {test_noise_burst, "NoiseBurst", "[size] [pattern] [addr]",
+        "burst transfers while forcing switching of the data bus lines",
+        3
+       },
+       {test_random, "Random", "[size] [loop] [addr]",
+        "Verifies r/w and memcopy(burst for pseudo random value.",
+        3
+       },
+       {test_freq_pattern, "FrequencySelectivePattern ", "[size]",
+        "write & test patterns: Mostly Zero, Mostly One and F/n",
+        1
+       },
+       {test_blockseq, "BlockSequential", "[size] [loop] [addr]",
+        "test incremental pattern",
+        3
+       },
+       {test_checkboard, "Checkerboard", "[size] [loop] [addr]",
+        "test checker pattern",
+        3
+       },
+       {test_bitspread, "BitSpread", "[size] [loop] [addr]",
+        "test Bit Spread pattern",
+        3
+       },
+       {test_bitflip, "BitFlip", "[size] [loop] [addr]",
+        "test Bit Flip pattern",
+        3
+       },
+       {test_walkbit0, "WalkingOnes", "[size] [loop] [addr]",
+        "test Walking Ones pattern",
+        3
+       },
+       {test_walkbit1, "WalkingZeroes", "[size] [loop] [addr]",
+        "test Walking Zeroes pattern",
+        3
+       },
+       /* need to the the 2 last one (infinite) : skipped for test all */
+       {test_read, "infinite read", "[addr]",
+        "basic test : infinite read access", 1},
+       {test_write, "infinite write", "[addr]",
+        "basic test : infinite write access", 1},
+};
+
+const int test_nb = ARRAY_SIZE(test);
diff --git a/drivers/ram/stm32mp1/stm32mp1_tests.h b/drivers/ram/stm32mp1/stm32mp1_tests.h
new file mode 100644 (file)
index 0000000..55f5d6d
--- /dev/null
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
+/*
+ * Copyright (C) 2019, STMicroelectronics - All Rights Reserved
+ */
+
+#ifndef _RAM_STM32MP1_TESTS_H_
+#define _RAM_STM32MP1_TESTS_H_
+
+#include "stm32mp1_ddr_regs.h"
+
+enum test_result {
+       TEST_PASSED,
+       TEST_FAILED,
+       TEST_ERROR
+};
+
+struct test_desc {
+       enum test_result (*fct)(struct stm32mp1_ddrctl *ctl,
+                               struct stm32mp1_ddrphy *phy,
+                               char *string,
+                               int argc, char *argv[]);
+       const char *name;
+       const char *usage;
+       const char *help;
+       u8 max_args;
+};
+
+extern const struct test_desc test[];
+extern const int test_nb;
+
+extern const struct test_desc tuning[];
+extern const int tuning_nb;
+
+#endif
diff --git a/drivers/ram/stm32mp1/stm32mp1_tuning.c b/drivers/ram/stm32mp1/stm32mp1_tuning.c
new file mode 100644 (file)
index 0000000..4e1c1fa
--- /dev/null
@@ -0,0 +1,1380 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2019, STMicroelectronics - All Rights Reserved
+ */
+#include <common.h>
+#include <console.h>
+#include <clk.h>
+#include <ram.h>
+#include <reset.h>
+#include <asm/io.h>
+
+#include "stm32mp1_ddr_regs.h"
+#include "stm32mp1_ddr.h"
+#include "stm32mp1_tests.h"
+
+#define MAX_DQS_PHASE_IDX _144deg
+#define MAX_DQS_UNIT_IDX 7
+#define MAX_GSL_IDX 5
+#define MAX_GPS_IDX 3
+
+/* Number of bytes used in this SW. ( min 1--> max 4). */
+#define NUM_BYTES 4
+
+enum dqs_phase_enum {
+       _36deg = 0,
+       _54deg = 1,
+       _72deg = 2,
+       _90deg = 3,
+       _108deg = 4,
+       _126deg = 5,
+       _144deg = 6
+};
+
+/* BIST Result struct */
+struct BIST_result {
+       /* Overall test result:
+        * 0 Fail (any bit failed) ,
+        * 1 Success (All bits success)
+        */
+       bool test_result;
+       /* 1: true, all fail /  0: False, not all bits fail */
+       bool all_bits_fail;
+       bool bit_i_test_result[8];  /* 0 fail / 1 success */
+};
+
+/* a struct that defines tuning parameters of a byte. */
+struct tuning_position {
+       u8 phase; /* DQS phase */
+       u8 unit; /* DQS unit delay */
+       u32 bits_delay; /* Bits deskew in this byte */
+};
+
+/* 36deg, 54deg, 72deg, 90deg, 108deg, 126deg, 144deg */
+const u8 dx_dll_phase[7] = {3, 2, 1, 0, 14, 13, 12};
+
+static u8 BIST_error_max = 1;
+static u32 BIST_seed = 0x1234ABCD;
+
+static u8 get_nb_bytes(struct stm32mp1_ddrctl *ctl)
+{
+       u32 data_bus = readl(&ctl->mstr) & DDRCTRL_MSTR_DATA_BUS_WIDTH_MASK;
+       u8 nb_bytes = NUM_BYTES;
+
+       switch (data_bus) {
+       case DDRCTRL_MSTR_DATA_BUS_WIDTH_HALF:
+               nb_bytes /= 2;
+               break;
+       case DDRCTRL_MSTR_DATA_BUS_WIDTH_QUARTER:
+               nb_bytes /= 4;
+               break;
+       default:
+               break;
+       }
+
+       return nb_bytes;
+}
+
+static void itm_soft_reset(struct stm32mp1_ddrphy *phy)
+{
+       stm32mp1_ddrphy_init(phy, DDRPHYC_PIR_ITMSRST);
+}
+
+/* Read DQ unit delay register and provides the retrieved value for DQS
+ * We are assuming that we have the same delay when clocking
+ * by DQS and when clocking by DQSN
+ */
+static u8 DQ_unit_index(struct stm32mp1_ddrphy *phy, u8 byte, u8 bit)
+{
+       u32 index;
+       u32 addr = DXNDQTR(phy, byte);
+
+       /* We are assuming that we have the same delay when clocking by DQS
+        * and when clocking by DQSN : use only the low bits
+        */
+       index = (readl(addr) >> DDRPHYC_DXNDQTR_DQDLY_SHIFT(bit))
+               & DDRPHYC_DXNDQTR_DQDLY_LOW_MASK;
+
+       pr_debug("%s: [%x]: %x => DQ unit index = %x\n",
+                __func__, addr, readl(addr), index);
+
+       return index;
+}
+
+/* Sets the DQS phase delay for a byte lane.
+ *phase delay is specified by giving the index of the desired delay
+ * in the dx_dll_phase array.
+ */
+static void DQS_phase_delay(struct stm32mp1_ddrphy *phy, u8 byte, u8 phase_idx)
+{
+       u8 sdphase_val = 0;
+
+       /*      Write DXNDLLCR.SDPHASE = dx_dll_phase(phase_index); */
+       sdphase_val = dx_dll_phase[phase_idx];
+       clrsetbits_le32(DXNDLLCR(phy, byte),
+                       DDRPHYC_DXNDLLCR_SDPHASE_MASK,
+                       sdphase_val << DDRPHYC_DXNDLLCR_SDPHASE_SHIFT);
+}
+
+/* Sets the DQS unit delay for a byte lane.
+ * unit delay is specified by giving the index of the desired delay
+ * for dgsdly and dqsndly (same value).
+ */
+static void DQS_unit_delay(struct stm32mp1_ddrphy *phy,
+                          u8 byte, u8 unit_dly_idx)
+{
+       /* Write the same value in DXNDQSTR.DQSDLY and DXNDQSTR.DQSNDLY */
+       clrsetbits_le32(DXNDQSTR(phy, byte),
+                       DDRPHYC_DXNDQSTR_DQSDLY_MASK |
+                       DDRPHYC_DXNDQSTR_DQSNDLY_MASK,
+                       (unit_dly_idx << DDRPHYC_DXNDQSTR_DQSDLY_SHIFT) |
+                       (unit_dly_idx << DDRPHYC_DXNDQSTR_DQSNDLY_SHIFT));
+
+       /* After changing this value, an ITM soft reset (PIR.ITMSRST=1,
+        * plus PIR.INIT=1) must be issued.
+        */
+       stm32mp1_ddrphy_init(phy, DDRPHYC_PIR_ITMSRST);
+}
+
+/* Sets the DQ unit delay for a bit line in particular byte lane.
+ * unit delay is specified by giving the desired delay
+ */
+static void set_DQ_unit_delay(struct stm32mp1_ddrphy *phy,
+                             u8 byte, u8 bit,
+                             u8 dq_delay_index)
+{
+       u8 dq_bit_delay_val = dq_delay_index | (dq_delay_index << 2);
+
+       /* same value on delay for clock DQ an DQS_b */
+       clrsetbits_le32(DXNDQTR(phy, byte),
+                       DDRPHYC_DXNDQTR_DQDLY_MASK
+                       << DDRPHYC_DXNDQTR_DQDLY_SHIFT(bit),
+                       dq_bit_delay_val << DDRPHYC_DXNDQTR_DQDLY_SHIFT(bit));
+}
+
+static void set_r0dgsl_delay(struct stm32mp1_ddrphy *phy,
+                            u8 byte, u8 r0dgsl_idx)
+{
+       clrsetbits_le32(DXNDQSTR(phy, byte),
+                       DDRPHYC_DXNDQSTR_R0DGSL_MASK,
+                       r0dgsl_idx << DDRPHYC_DXNDQSTR_R0DGSL_SHIFT);
+}
+
+static void set_r0dgps_delay(struct stm32mp1_ddrphy *phy,
+                            u8 byte, u8 r0dgps_idx)
+{
+       clrsetbits_le32(DXNDQSTR(phy, byte),
+                       DDRPHYC_DXNDQSTR_R0DGPS_MASK,
+                       r0dgps_idx << DDRPHYC_DXNDQSTR_R0DGPS_SHIFT);
+}
+
+/* Basic BIST configuration for data lane tests. */
+static void config_BIST(struct stm32mp1_ddrphy *phy)
+{
+       /* Selects the SDRAM bank address to be used during BIST. */
+       u32 bbank = 0;
+       /* Selects the SDRAM row address to be used during BIST. */
+       u32 brow = 0;
+       /* Selects the SDRAM column address to be used during BIST. */
+       u32 bcol = 0;
+       /* Selects the value by which the SDRAM address is incremented
+        * for each write/read access.
+        */
+       u32 bainc = 0x00000008;
+       /* Specifies the maximum SDRAM rank to be used during BIST.
+        * The default value is set to maximum ranks minus 1.
+        * must be 0 with single rank
+        */
+       u32 bmrank = 0;
+       /* Selects the SDRAM rank to be used during BIST.
+        * must be 0 with single rank
+        */
+       u32 brank = 0;
+       /* Specifies the maximum SDRAM bank address to be used during
+        * BIST before the address & increments to the next rank.
+        */
+       u32 bmbank = 1;
+       /* Specifies the maximum SDRAM row address to be used during
+        * BIST before the address & increments to the next bank.
+        */
+       u32 bmrow = 0x7FFF; /* To check */
+       /* Specifies the maximum SDRAM column address to be used during
+        * BIST before the address & increments to the next row.
+        */
+       u32 bmcol = 0x3FF;  /* To check */
+       u32 bmode_conf = 0x00000001;  /* DRam mode */
+       u32 bdxen_conf = 0x00000001;  /* BIST on Data byte */
+       u32 bdpat_conf = 0x00000002;  /* Select LFSR pattern */
+
+       /*Setup BIST for DRAM mode,  and LFSR-random data pattern.*/
+       /*Write BISTRR.BMODE = 1?b1;*/
+       /*Write BISTRR.BDXEN = 1?b1;*/
+       /*Write BISTRR.BDPAT = 2?b10;*/
+
+       /* reset BIST */
+       writel(0x3, &phy->bistrr);
+
+       writel((bmode_conf << 3) | (bdxen_conf << 14) | (bdpat_conf << 17),
+              &phy->bistrr);
+
+       /*Setup BIST Word Count*/
+       /*Write BISTWCR.BWCNT = 16?b0008;*/
+       writel(0x00000200, &phy->bistwcr); /* A multiple of BL/2 */
+
+       writel(bcol | (brow << 12) | (bbank << 28), &phy->bistar0);
+       writel(brank | (bmrank << 2) | (bainc << 4), &phy->bistar1);
+
+       /* To check this line : */
+       writel(bmcol | (bmrow << 12) | (bmbank << 28), &phy->bistar2);
+}
+
+/* Select the Byte lane to be tested by BIST. */
+static void BIST_datx8_sel(struct stm32mp1_ddrphy *phy, u8 datx8)
+{
+       clrsetbits_le32(&phy->bistrr,
+                       DDRPHYC_BISTRR_BDXSEL_MASK,
+                       datx8 << DDRPHYC_BISTRR_BDXSEL_SHIFT);
+
+       /*(For example, selecting Byte Lane 3, BISTRR.BDXSEL = 4?b0011)*/
+       /* Write BISTRR.BDXSEL = datx8; */
+}
+
+/* Perform BIST Write_Read test on a byte lane and return test result. */
+static void BIST_test(struct stm32mp1_ddrphy *phy, u8 byte,
+                     struct BIST_result *bist)
+{
+       bool result = true; /* BIST_SUCCESS */
+       u32 cnt = 0;
+       u32 error = 0;
+
+       bist->test_result = true;
+
+run:
+       itm_soft_reset(phy);
+
+       /*Perform BIST Reset*/
+       /* Write BISTRR.BINST = 3?b011; */
+       clrsetbits_le32(&phy->bistrr,
+                       0x00000007,
+                       0x00000003);
+
+       /*Re-seed LFSR*/
+       /* Write BISTLSR.SEED = 32'h1234ABCD; */
+       if (BIST_seed)
+               writel(BIST_seed, &phy->bistlsr);
+       else
+               writel(rand(), &phy->bistlsr);
+
+       /* some delay to reset BIST */
+       mdelay(1);
+
+       /*Perform BIST Run*/
+       clrsetbits_le32(&phy->bistrr,
+                       0x00000007,
+                       0x00000001);
+       /* Write BISTRR.BINST = 3?b001; */
+
+       /* Wait for a number of CTL clocks before reading BIST register*/
+       /* Wait 300 ctl_clk cycles;  ... IS it really needed?? */
+       /* Perform BIST Instruction Stop*/
+       /* Write BISTRR.BINST = 3?b010;*/
+
+       /* poll on BISTGSR.BDONE. If 0, wait.  ++TODO Add timeout */
+       while (!(readl(&phy->bistgsr) & DDRPHYC_BISTGSR_BDDONE))
+               ;
+
+       /*Check if received correct number of words*/
+       /* if (Read BISTWCSR.DXWCNT = Read BISTWCR.BWCNT) */
+       if (((readl(&phy->bistwcsr)) >> DDRPHYC_BISTWCSR_DXWCNT_SHIFT) ==
+           readl(&phy->bistwcr)) {
+               /*Determine if there is a data comparison error*/
+               /* if (Read BISTGSR.BDXERR = 1?b0) */
+               if (readl(&phy->bistgsr) & DDRPHYC_BISTGSR_BDXERR)
+                       result = false; /* BIST_FAIL; */
+               else
+                       result = true; /* BIST_SUCCESS; */
+       } else {
+               result = false; /* BIST_FAIL; */
+       }
+
+       /* loop while success */
+       cnt++;
+       if (result && cnt != 1000)
+               goto run;
+
+       if (!result)
+               error++;
+
+       if (error < BIST_error_max) {
+               if (cnt != 1000)
+                       goto run;
+               bist->test_result = true;
+       } else {
+               bist->test_result = false;
+       }
+}
+
+/* After running the deskew algo, this function applies the new DQ delays
+ * by reading them from the array "deskew_delay"and writing in PHY registers.
+ * The bits that are not deskewed parfectly (too much skew on them,
+ * or data eye very wide) are marked in the array deskew_non_converge.
+ */
+static void apply_deskew_results(struct stm32mp1_ddrphy *phy, u8 byte,
+                                u8 deskew_delay[NUM_BYTES][8],
+                                u8 deskew_non_converge[NUM_BYTES][8])
+{
+       u8  bit_i;
+       u8  index;
+
+       for (bit_i = 0; bit_i < 8; bit_i++) {
+               set_DQ_unit_delay(phy, byte, bit_i, deskew_delay[byte][bit_i]);
+               index = DQ_unit_index(phy, byte, bit_i);
+               pr_debug("Byte %d ; bit %d : The new DQ delay (%d) index=%d [delta=%d, 3 is the default]",
+                        byte, bit_i, deskew_delay[byte][bit_i],
+                        index, index - 3);
+               printf("Byte %d, bit %d, DQ delay = %d",
+                      byte, bit_i, deskew_delay[byte][bit_i]);
+               if (deskew_non_converge[byte][bit_i] == 1)
+                       pr_debug(" - not converged : still more skew");
+               printf("\n");
+       }
+}
+
+/* DQ Bit de-skew algorithm.
+ * Deskews data lines as much as possible.
+ * 1. Add delay to DQS line until finding the failure
+ *    (normally a hold time violation)
+ * 2. Reduce DQS line by small steps until finding the very first time
+ *    we go back to "Pass" condition.
+ * 3. For each DQ line, Reduce DQ delay until finding the very first failure
+ *    (normally a hold time fail)
+ * 4. When all bits are at their first failure delay, we can consider them
+ *    aligned.
+ * Handle conrer situation (Can't find Pass-fail, or fail-pass transitions
+ * at any step)
+ * TODO Provide a return Status. Improve doc
+ */
+static enum test_result bit_deskew(struct stm32mp1_ddrctl *ctl,
+                                  struct stm32mp1_ddrphy *phy, char *string)
+{
+       /* New DQ delay value (index), set during Deskew algo */
+       u8 deskew_delay[NUM_BYTES][8];
+       /*If there is still skew on a bit, mark this bit. */
+       u8 deskew_non_converge[NUM_BYTES][8];
+       struct BIST_result result;
+       s8 dqs_unit_delay_index = 0;
+       u8 datx8 = 0;
+       u8 bit_i = 0;
+       s8 phase_idx = 0;
+       s8 bit_i_delay_index = 0;
+       u8 success = 0;
+       struct tuning_position last_right_ok;
+       u8 force_stop = 0;
+       u8 fail_found;
+       u8 error = 0;
+       u8 nb_bytes = get_nb_bytes(ctl);
+       /* u8 last_pass_dqs_unit = 0; */
+
+       memset(deskew_delay, 0, sizeof(deskew_delay));
+       memset(deskew_non_converge, 0, sizeof(deskew_non_converge));
+
+       /*Disable DQS Drift Compensation*/
+       clrbits_le32(&phy->pgcr, DDRPHYC_PGCR_DFTCMP);
+       /*Disable all bytes*/
+       /* Disable automatic power down of DLL and IOs when disabling
+        * a byte (To avoid having to add programming and  delay
+        * for a DLL re-lock when later re-enabling a disabled Byte Lane)
+        */
+       clrbits_le32(&phy->pgcr, DDRPHYC_PGCR_PDDISDX);
+
+       /* Disable all data bytes */
+       clrbits_le32(&phy->dx0gcr, DDRPHYC_DXNGCR_DXEN);
+       clrbits_le32(&phy->dx1gcr, DDRPHYC_DXNGCR_DXEN);
+       clrbits_le32(&phy->dx2gcr, DDRPHYC_DXNGCR_DXEN);
+       clrbits_le32(&phy->dx3gcr, DDRPHYC_DXNGCR_DXEN);
+
+       /* Config the BIST block */
+       config_BIST(phy);
+       pr_debug("BIST Config done.\n");
+
+       /* Train each byte */
+       for (datx8 = 0; datx8 < nb_bytes; datx8++) {
+               if (ctrlc()) {
+                       sprintf(string, "interrupted at byte %d/%d, error=%d",
+                               datx8 + 1, nb_bytes, error);
+                       return TEST_FAILED;
+               }
+               pr_debug("\n======================\n");
+               pr_debug("Start deskew byte %d .\n", datx8);
+               pr_debug("======================\n");
+               /* Enable Byte (DXNGCR, bit DXEN) */
+               setbits_le32(DXNGCR(phy, datx8), DDRPHYC_DXNGCR_DXEN);
+
+               /* Select the byte lane for comparison of read data */
+               BIST_datx8_sel(phy, datx8);
+
+               /* Set all DQDLYn to maximum value. All bits within the byte
+                * will be delayed with DQSTR = 2 instead of max = 3
+                * to avoid inter bits fail influence
+                */
+               writel(0xAAAAAAAA, DXNDQTR(phy, datx8));
+
+               /* Set the DQS phase delay to 90 DEG (default).
+                * What is defined here is the index of the desired config
+                * in the PHASE array.
+                */
+               phase_idx = _90deg;
+
+               /* Set DQS unit delay to the max value. */
+               dqs_unit_delay_index = MAX_DQS_UNIT_IDX;
+               DQS_unit_delay(phy, datx8, dqs_unit_delay_index);
+               DQS_phase_delay(phy, datx8, phase_idx);
+
+               /* Issue a DLL soft reset */
+               clrbits_le32(DXNDLLCR(phy, datx8), DDRPHYC_DXNDLLCR_DLLSRST);
+               setbits_le32(DXNDLLCR(phy, datx8), DDRPHYC_DXNDLLCR_DLLSRST);
+
+               /* Test this typical init condition */
+               BIST_test(phy, datx8, &result);
+               success = result.test_result;
+
+               /* If the test pass in this typical condition,
+                * start the algo with it.
+                * Else, look for Pass init condition
+                */
+               if (!success) {
+                       pr_debug("Fail at init condtion. Let's look for a good init condition.\n");
+                       success = 0; /* init */
+                       /* Make sure we start with a PASS condition before
+                        * looking for a fail condition.
+                        * Find the first PASS PHASE condition
+                        */
+
+                       /* escape if we find a PASS */
+                       pr_debug("increase Phase idx\n");
+                       while (!success && (phase_idx <= MAX_DQS_PHASE_IDX)) {
+                               DQS_phase_delay(phy, datx8, phase_idx);
+                               BIST_test(phy, datx8, &result);
+                               success = result.test_result;
+                               phase_idx++;
+                       }
+                       /* if ended with success
+                        * ==>> Restore the fist success condition
+                        */
+                       if (success)
+                               phase_idx--; /* because it ended with ++ */
+               }
+               if (ctrlc()) {
+                       sprintf(string, "interrupted at byte %d/%d, error=%d",
+                               datx8 + 1, nb_bytes, error);
+                       return TEST_FAILED;
+               }
+               /* We couldn't find a successful condition, its seems
+                * we have hold violation, lets try reduce DQS_unit Delay
+                */
+               if (!success) {
+                       /* We couldn't find a successful condition, its seems
+                        * we have hold violation, lets try reduce DQS_unit
+                        * Delay
+                        */
+                       pr_debug("Still fail. Try decrease DQS Unit delay\n");
+
+                       phase_idx = 0;
+                       dqs_unit_delay_index = 0;
+                       DQS_phase_delay(phy, datx8, phase_idx);
+
+                       /* escape if we find a PASS */
+                       while (!success &&
+                              (dqs_unit_delay_index <=
+                               MAX_DQS_UNIT_IDX)) {
+                               DQS_unit_delay(phy, datx8,
+                                              dqs_unit_delay_index);
+                               BIST_test(phy, datx8, &result);
+                               success = result.test_result;
+                               dqs_unit_delay_index++;
+                       }
+                       if (success) {
+                               /* Restore the first success condition*/
+                               dqs_unit_delay_index--;
+                               /* last_pass_dqs_unit = dqs_unit_delay_index;*/
+                               DQS_unit_delay(phy, datx8,
+                                              dqs_unit_delay_index);
+                       } else {
+                               /* No need to continue,
+                                * there is no pass region.
+                                */
+                               force_stop = 1;
+                       }
+               }
+
+               /* There is an initial PASS condition
+                * Look for the first failing condition by PHASE stepping.
+                * This part of the algo can finish without converging.
+                */
+               if (force_stop) {
+                       printf("Result: Failed ");
+                       printf("[Cannot Deskew lines, ");
+                       printf("there is no PASS region]\n");
+                       error++;
+                       continue;
+               }
+               if (ctrlc()) {
+                       sprintf(string, "interrupted at byte %d/%d, error=%d",
+                               datx8 + 1, nb_bytes, error);
+                       return TEST_FAILED;
+               }
+
+               pr_debug("there is a pass region for phase idx %d\n",
+                        phase_idx);
+               pr_debug("Step1: Find the first failing condition\n");
+               /* Look for the first failing condition by PHASE stepping.
+                * This part of the algo can finish without converging.
+                */
+
+               /* escape if we find a fail (hold time violation)
+                * condition at any bit or if out of delay range.
+                */
+               while (success && (phase_idx <= MAX_DQS_PHASE_IDX)) {
+                       DQS_phase_delay(phy, datx8, phase_idx);
+                       BIST_test(phy, datx8, &result);
+                       success = result.test_result;
+                       phase_idx++;
+               }
+               if (ctrlc()) {
+                       sprintf(string, "interrupted at byte %d/%d, error=%d",
+                               datx8 + 1, nb_bytes, error);
+                       return TEST_FAILED;
+               }
+
+               /* if the loop ended with a failing condition at any bit,
+                * lets look for the first previous success condition by unit
+                * stepping (minimal delay)
+                */
+               if (!success) {
+                       pr_debug("Fail region (PHASE) found phase idx %d\n",
+                                phase_idx);
+                       pr_debug("Let's look for first success by DQS Unit steps\n");
+                       /* This part, the algo always converge */
+                       phase_idx--;
+
+                       /* escape if we find a success condition
+                        * or if out of delay range.
+                        */
+                       while (!success && dqs_unit_delay_index >= 0) {
+                               DQS_unit_delay(phy, datx8,
+                                              dqs_unit_delay_index);
+                               BIST_test(phy, datx8, &result);
+                               success = result.test_result;
+                               dqs_unit_delay_index--;
+                       }
+                       /* if the loop ended with a success condition,
+                        * the last delay Right OK (before hold violation)
+                        *  condition is then defined as following:
+                        */
+                       if (success) {
+                               /* Hold the dely parameters of the the last
+                                * delay Right OK condition.
+                                * -1 to get back to current condition
+                                */
+                               last_right_ok.phase = phase_idx;
+                               /*+1 to get back to current condition */
+                               last_right_ok.unit = dqs_unit_delay_index + 1;
+                               last_right_ok.bits_delay = 0xFFFFFFFF;
+                               pr_debug("Found %d\n", dqs_unit_delay_index);
+                       } else {
+                               /* the last OK condition is then with the
+                                * previous phase_idx.
+                                * -2 instead of -1 because at the last
+                                * iteration of the while(),
+                                * we incremented phase_idx
+                                */
+                               last_right_ok.phase = phase_idx - 1;
+                               /* Nominal+1. Because we want the previous
+                                * delay after reducing the phase delay.
+                                */
+                               last_right_ok.unit = 1;
+                               last_right_ok.bits_delay = 0xFFFFFFFF;
+                               pr_debug("Not Found : try previous phase %d\n",
+                                        phase_idx - 1);
+
+                               DQS_phase_delay(phy, datx8, phase_idx - 1);
+                               dqs_unit_delay_index = 0;
+                               success = true;
+                               while (success &&
+                                      (dqs_unit_delay_index <
+                                       MAX_DQS_UNIT_IDX)) {
+                                       DQS_unit_delay(phy, datx8,
+                                                      dqs_unit_delay_index);
+                                       BIST_test(phy, datx8, &result);
+                                       success = result.test_result;
+                                       dqs_unit_delay_index++;
+                                       pr_debug("dqs_unit_delay_index = %d, result = %d\n",
+                                                dqs_unit_delay_index, success);
+                               }
+
+                               if (!success) {
+                                       last_right_ok.unit =
+                                                dqs_unit_delay_index - 1;
+                               } else {
+                                       last_right_ok.unit = 0;
+                                       pr_debug("ERROR: failed region not FOUND");
+                               }
+                       }
+               } else {
+                       /* we can't find a failing  condition at all bits
+                        * ==> Just hold the last test condition
+                        * (the max DQS delay)
+                        * which is the most likely,
+                        * the closest to a hold violation
+                        * If we can't find a Fail condition after
+                        * the Pass region, stick at this position
+                        * In order to have max chances to find a fail
+                        * when reducing DQ delays.
+                        */
+                       last_right_ok.phase = MAX_DQS_PHASE_IDX;
+                       last_right_ok.unit = MAX_DQS_UNIT_IDX;
+                       last_right_ok.bits_delay = 0xFFFFFFFF;
+                       pr_debug("Can't find the a fail condition\n");
+               }
+
+               /* step 2:
+                * if we arrive at this stage, it means that we found the last
+                * Right OK condition (by tweeking the DQS delay). Or we simply
+                * pushed DQS delay to the max
+                * This means that by reducing the delay on some DQ bits,
+                * we should find a failing condition.
+                */
+               printf("Byte %d, DQS unit = %d, phase = %d\n",
+                      datx8, last_right_ok.unit, last_right_ok.phase);
+               pr_debug("Step2, unit = %d, phase = %d, bits delay=%x\n",
+                        last_right_ok.unit, last_right_ok.phase,
+                        last_right_ok.bits_delay);
+
+               /* Restore the last_right_ok condtion. */
+               DQS_unit_delay(phy, datx8, last_right_ok.unit);
+               DQS_phase_delay(phy, datx8, last_right_ok.phase);
+               writel(last_right_ok.bits_delay, DXNDQTR(phy, datx8));
+
+               /* train each bit
+                * reduce delay on each bit, and perform a write/read test
+                * and stop at the very first time it fails.
+                * the goal is the find the first failing condition
+                * for each bit.
+                * When we achieve this condition<  for all the bits,
+                * we are sure they are aligned (+/- step resolution)
+                */
+               fail_found = 0;
+               for (bit_i = 0; bit_i < 8; bit_i++) {
+                       if (ctrlc()) {
+                               sprintf(string,
+                                       "interrupted at byte %d/%d, error=%d",
+                                       datx8 + 1, nb_bytes, error);
+                               return error;
+                       }
+                       pr_debug("deskewing bit %d:\n", bit_i);
+                       success = 1; /* init */
+                       /* Set all DQDLYn to maximum value.
+                        * Only bit_i will be down-delayed
+                        * ==> if we have a fail, it will be definitely
+                        *     from bit_i
+                        */
+                       writel(0xFFFFFFFF, DXNDQTR(phy, datx8));
+                       /* Arriving at this stage,
+                        * we have a success condition with delay = 3;
+                        */
+                       bit_i_delay_index = 3;
+
+                       /* escape if bit delay is out of range or
+                        * if a fatil occurs
+                        */
+                       while ((bit_i_delay_index >= 0) && success) {
+                               set_DQ_unit_delay(phy, datx8,
+                                                 bit_i,
+                                                 bit_i_delay_index);
+                               BIST_test(phy, datx8, &result);
+                               success = result.test_result;
+                               bit_i_delay_index--;
+                       }
+
+                       /* if escape with a fail condition
+                        * ==> save this position for bit_i
+                        */
+                       if (!success) {
+                               /* save the delay position.
+                                * Add 1 because the while loop ended with a --,
+                                * and that we need to hold the last success
+                                *  delay
+                                */
+                               deskew_delay[datx8][bit_i] =
+                                       bit_i_delay_index + 2;
+                               if (deskew_delay[datx8][bit_i] > 3)
+                                       deskew_delay[datx8][bit_i] = 3;
+
+                               /* A flag that states we found at least a fail
+                                * at one bit.
+                                */
+                               fail_found = 1;
+                               pr_debug("Fail found on bit %d, for delay = %d => deskew[%d][%d] = %d\n",
+                                        bit_i, bit_i_delay_index + 1,
+                                        datx8, bit_i,
+                                        deskew_delay[datx8][bit_i]);
+                       } else {
+                               /* if we can find a success condition by
+                                * back-delaying this bit, just set the delay
+                                * to 0 (the best deskew
+                                * possible) and mark the bit.
+                                */
+                               deskew_delay[datx8][bit_i] = 0;
+                               /* set a flag that will be used later
+                                * in the report.
+                                */
+                               deskew_non_converge[datx8][bit_i] = 1;
+                               pr_debug("Fail not found on bit %d => deskew[%d][%d] = %d\n",
+                                        bit_i, datx8, bit_i,
+                                        deskew_delay[datx8][bit_i]);
+                       }
+               }
+               pr_debug("**********byte %d tuning complete************\n",
+                        datx8);
+               /* If we can't find any failure by back delaying DQ lines,
+                * hold the default values
+                */
+               if (!fail_found) {
+                       for (bit_i = 0; bit_i < 8; bit_i++)
+                               deskew_delay[datx8][bit_i] = 0;
+                       pr_debug("The Deskew algorithm can't converge, there is too much margin in your design. Good job!\n");
+               }
+
+               apply_deskew_results(phy, datx8, deskew_delay,
+                                    deskew_non_converge);
+               /* Restore nominal value for DQS delay */
+               DQS_phase_delay(phy, datx8, 3);
+               DQS_unit_delay(phy, datx8, 3);
+               /* disable byte after byte bits deskew */
+               clrbits_le32(DXNGCR(phy, datx8), DDRPHYC_DXNGCR_DXEN);
+       }  /* end of byte deskew */
+
+       /* re-enable all data bytes */
+       setbits_le32(&phy->dx0gcr, DDRPHYC_DXNGCR_DXEN);
+       setbits_le32(&phy->dx1gcr, DDRPHYC_DXNGCR_DXEN);
+       setbits_le32(&phy->dx2gcr, DDRPHYC_DXNGCR_DXEN);
+       setbits_le32(&phy->dx3gcr, DDRPHYC_DXNGCR_DXEN);
+
+       if (error) {
+               sprintf(string, "error = %d", error);
+               return TEST_FAILED;
+       }
+
+       return TEST_PASSED;
+} /* end function */
+
+/* Trim DQS timings and set it in the centre of data eye.
+ * Look for a PPPPF region, then look for a FPPP region and finally select
+ * the mid of the FPPPPPF region
+ */
+static enum test_result eye_training(struct stm32mp1_ddrctl *ctl,
+                                    struct stm32mp1_ddrphy *phy, char *string)
+{
+       /*Stores the DQS trim values (PHASE index, unit index) */
+       u8 eye_training_val[NUM_BYTES][2];
+       u8 byte = 0;
+       struct BIST_result result;
+       s8 dqs_unit_delay_index = 0;
+       s8 phase_idx = 0;
+       s8 dqs_unit_delay_index_pass = 0;
+       s8 phase_idx_pass = 0;
+       u8 success = 0;
+       u8 left_phase_bound_found, right_phase_bound_found;
+       u8 left_unit_bound_found, right_unit_bound_found;
+       u8 left_bound_found, right_bound_found;
+       struct tuning_position left_bound, right_bound;
+       u8 error = 0;
+       u8 nb_bytes = get_nb_bytes(ctl);
+
+       /*Disable DQS Drift Compensation*/
+       clrbits_le32(&phy->pgcr, DDRPHYC_PGCR_DFTCMP);
+       /*Disable all bytes*/
+       /* Disable automatic power down of DLL and IOs when disabling a byte
+        * (To avoid having to add programming and  delay
+        * for a DLL re-lock when later re-enabling a disabled Byte Lane)
+        */
+       clrbits_le32(&phy->pgcr, DDRPHYC_PGCR_PDDISDX);
+
+       /*Disable all data bytes */
+       clrbits_le32(&phy->dx0gcr, DDRPHYC_DXNGCR_DXEN);
+       clrbits_le32(&phy->dx1gcr, DDRPHYC_DXNGCR_DXEN);
+       clrbits_le32(&phy->dx2gcr, DDRPHYC_DXNGCR_DXEN);
+       clrbits_le32(&phy->dx3gcr, DDRPHYC_DXNGCR_DXEN);
+
+       /* Config the BIST block */
+       config_BIST(phy);
+
+       for (byte = 0; byte < nb_bytes; byte++) {
+               if (ctrlc()) {
+                       sprintf(string, "interrupted at byte %d/%d, error=%d",
+                               byte + 1, nb_bytes, error);
+                       return TEST_FAILED;
+               }
+               right_bound.phase = 0;
+               right_bound.unit = 0;
+
+               left_bound.phase = 0;
+               left_bound.unit = 0;
+
+               left_phase_bound_found = 0;
+               right_phase_bound_found = 0;
+
+               left_unit_bound_found = 0;
+               right_unit_bound_found = 0;
+
+               left_bound_found = 0;
+               right_bound_found = 0;
+
+               /* Enable Byte (DXNGCR, bit DXEN) */
+               setbits_le32(DXNGCR(phy, byte), DDRPHYC_DXNGCR_DXEN);
+
+               /* Select the byte lane for comparison of read data */
+               BIST_datx8_sel(phy, byte);
+
+               /* Set DQS phase delay to the nominal value. */
+               phase_idx = _90deg;
+               phase_idx_pass = phase_idx;
+
+               /* Set DQS unit delay to the nominal value. */
+               dqs_unit_delay_index = 3;
+               dqs_unit_delay_index_pass = dqs_unit_delay_index;
+               success = 0;
+
+               pr_debug("STEP0: Find Init delay\n");
+               /* STEP0: Find Init delay: a delay that put the system
+                * in a "Pass" condition then (TODO) update
+                * dqs_unit_delay_index_pass & phase_idx_pass
+                */
+               DQS_unit_delay(phy, byte, dqs_unit_delay_index);
+               DQS_phase_delay(phy, byte, phase_idx);
+               BIST_test(phy, byte, &result);
+               success = result.test_result;
+               /* If we have a fail in the nominal condition */
+               if (!success) {
+                       /* Look at the left */
+                       while (phase_idx >= 0 && !success) {
+                               phase_idx--;
+                               DQS_phase_delay(phy, byte, phase_idx);
+                               BIST_test(phy, byte, &result);
+                               success = result.test_result;
+                       }
+               }
+               if (!success) {
+                       /* if we can't find pass condition,
+                        * then look at the right
+                        */
+                       phase_idx = _90deg;
+                       while (phase_idx <= MAX_DQS_PHASE_IDX &&
+                              !success) {
+                               phase_idx++;
+                               DQS_phase_delay(phy, byte,
+                                               phase_idx);
+                               BIST_test(phy, byte, &result);
+                               success = result.test_result;
+                       }
+               }
+               /* save the pass condition */
+               if (success) {
+                       phase_idx_pass = phase_idx;
+               } else {
+                       printf("Result: Failed ");
+                       printf("[Cannot DQS timings, ");
+                       printf("there is no PASS region]\n");
+                       error++;
+                       continue;
+               }
+
+               if (ctrlc()) {
+                       sprintf(string, "interrupted at byte %d/%d, error=%d",
+                               byte + 1, nb_bytes, error);
+                       return TEST_FAILED;
+               }
+               pr_debug("STEP1: Find LEFT PHASE DQS Bound\n");
+               /* STEP1: Find LEFT PHASE DQS Bound */
+               while ((phase_idx >= 0) &&
+                      (phase_idx <= MAX_DQS_PHASE_IDX) &&
+                      !left_phase_bound_found) {
+                       DQS_unit_delay(phy, byte,
+                                      dqs_unit_delay_index);
+                       DQS_phase_delay(phy, byte,
+                                       phase_idx);
+                       BIST_test(phy, byte, &result);
+                       success = result.test_result;
+
+                       /*TODO: Manage the case were at the beginning
+                        * there is already a fail
+                        */
+                       if (!success) {
+                               /* the last pass condition */
+                               left_bound.phase = ++phase_idx;
+                               left_phase_bound_found = 1;
+                       } else if (success) {
+                               phase_idx--;
+                       }
+               }
+               if (!left_phase_bound_found) {
+                       left_bound.phase = 0;
+                       phase_idx = 0;
+               }
+               /* If not found, lets take 0 */
+
+               if (ctrlc()) {
+                       sprintf(string, "interrupted at byte %d/%d, error=%d",
+                               byte + 1, nb_bytes, error);
+                       return TEST_FAILED;
+               }
+               pr_debug("STEP2: Find UNIT left bound\n");
+               /* STEP2: Find UNIT left bound */
+               while ((dqs_unit_delay_index >= 0) &&
+                      !left_unit_bound_found) {
+                       DQS_unit_delay(phy, byte,
+                                      dqs_unit_delay_index);
+                       DQS_phase_delay(phy, byte, phase_idx);
+                       BIST_test(phy, byte, &result);
+                       success = result.test_result;
+                       if (!success) {
+                               left_bound.unit =
+                                       ++dqs_unit_delay_index;
+                               left_unit_bound_found = 1;
+                               left_bound_found = 1;
+                       } else if (success) {
+                               dqs_unit_delay_index--;
+                       }
+               }
+
+               /* If not found, lets take 0 */
+               if (!left_unit_bound_found)
+                       left_bound.unit = 0;
+
+               if (ctrlc()) {
+                       sprintf(string, "interrupted at byte %d/%d, error=%d",
+                               byte + 1, nb_bytes, error);
+                       return TEST_FAILED;
+               }
+               pr_debug("STEP3: Find PHase right bound\n");
+               /* STEP3: Find PHase right bound, start with "pass"
+                * condition
+                */
+
+               /* Set DQS phase delay to the pass value. */
+               phase_idx = phase_idx_pass;
+
+               /* Set DQS unit delay to the pass value. */
+               dqs_unit_delay_index = dqs_unit_delay_index_pass;
+
+               while ((phase_idx <= MAX_DQS_PHASE_IDX) &&
+                      !right_phase_bound_found) {
+                       DQS_unit_delay(phy, byte,
+                                      dqs_unit_delay_index);
+                       DQS_phase_delay(phy, byte, phase_idx);
+                       BIST_test(phy, byte, &result);
+                       success = result.test_result;
+                       if (!success) {
+                               /* the last pass condition */
+                               right_bound.phase = --phase_idx;
+                               right_phase_bound_found = 1;
+                       } else if (success) {
+                               phase_idx++;
+                       }
+               }
+
+               /* If not found, lets take the max value */
+               if (!right_phase_bound_found) {
+                       right_bound.phase = MAX_DQS_PHASE_IDX;
+                       phase_idx = MAX_DQS_PHASE_IDX;
+               }
+
+               if (ctrlc()) {
+                       sprintf(string, "interrupted at byte %d/%d, error=%d",
+                               byte + 1, nb_bytes, error);
+                       return TEST_FAILED;
+               }
+               pr_debug("STEP4: Find UNIT right bound\n");
+               /* STEP4: Find UNIT right bound */
+               while ((dqs_unit_delay_index <= MAX_DQS_UNIT_IDX) &&
+                      !right_unit_bound_found) {
+                       DQS_unit_delay(phy, byte,
+                                      dqs_unit_delay_index);
+                       DQS_phase_delay(phy, byte, phase_idx);
+                       BIST_test(phy, byte, &result);
+                       success = result.test_result;
+                       if (!success) {
+                               right_bound.unit =
+                                       --dqs_unit_delay_index;
+                               right_unit_bound_found = 1;
+                               right_bound_found = 1;
+                       } else if (success) {
+                               dqs_unit_delay_index++;
+                       }
+               }
+               /* If not found, lets take the max value */
+               if (!right_unit_bound_found)
+                       right_bound.unit = MAX_DQS_UNIT_IDX;
+
+               /* If we found a regular FAil Pass FAil pattern
+                * FFPPPPPPFF
+                * OR PPPPPFF  Or FFPPPPP
+                */
+
+               if (left_bound_found || right_bound_found) {
+                       eye_training_val[byte][0] = (right_bound.phase +
+                                                left_bound.phase) / 2;
+                       eye_training_val[byte][1] = (right_bound.unit +
+                                                left_bound.unit) / 2;
+
+                       /* If we already lost 1/2PHASE Tuning,
+                        * let's try to recover by ++ on unit
+                        */
+                       if (((right_bound.phase + left_bound.phase) % 2 == 1) &&
+                           eye_training_val[byte][1] != MAX_DQS_UNIT_IDX)
+                               eye_training_val[byte][1]++;
+                       pr_debug("** found phase : %d -  %d & unit %d - %d\n",
+                                right_bound.phase, left_bound.phase,
+                                right_bound.unit, left_bound.unit);
+                       pr_debug("** calculating mid region: phase: %d  unit: %d (nominal is 3)\n",
+                                eye_training_val[byte][0],
+                                eye_training_val[byte][1]);
+               } else {
+                       /* PPPPPPPPPP, we're already good.
+                        * Set nominal values.
+                        */
+                       eye_training_val[byte][0] = 3;
+                       eye_training_val[byte][1] = 3;
+               }
+               DQS_phase_delay(phy, byte, eye_training_val[byte][0]);
+               DQS_unit_delay(phy, byte, eye_training_val[byte][1]);
+
+               printf("Byte %d, DQS unit = %d, phase = %d\n",
+                      byte,
+                      eye_training_val[byte][1],
+                      eye_training_val[byte][0]);
+       }
+
+       if (error) {
+               sprintf(string, "error = %d", error);
+               return TEST_FAILED;
+       }
+
+       return TEST_PASSED;
+}
+
+static void display_reg_results(struct stm32mp1_ddrphy *phy, u8 byte)
+{
+       u8 i = 0;
+
+       printf("Byte %d Dekew result, bit0 delay, bit1 delay...bit8 delay\n  ",
+              byte);
+
+       for (i = 0; i < 8; i++)
+               printf("%d ", DQ_unit_index(phy, byte, i));
+       printf("\n");
+
+       printf("dxndllcr: [%08x] val:%08x\n",
+              DXNDLLCR(phy, byte),
+              readl(DXNDLLCR(phy, byte)));
+       printf("dxnqdstr: [%08x] val:%08x\n",
+              DXNDQSTR(phy, byte),
+              readl(DXNDQSTR(phy, byte)));
+       printf("dxndqtr: [%08x] val:%08x\n",
+              DXNDQTR(phy, byte),
+              readl(DXNDQTR(phy, byte)));
+}
+
+/* analyse the dgs gating log table, and determine the midpoint.*/
+static u8 set_midpoint_read_dqs_gating(struct stm32mp1_ddrphy *phy, u8 byte,
+                                      u8 dqs_gating[NUM_BYTES]
+                                                   [MAX_GSL_IDX + 1]
+                                                   [MAX_GPS_IDX + 1])
+{
+       /* stores the dqs gate values (gsl index, gps index) */
+       u8 dqs_gate_values[NUM_BYTES][2];
+       u8 gsl_idx, gps_idx = 0;
+       u8 left_bound_idx[2] = {0, 0};
+       u8 right_bound_idx[2] = {0, 0};
+       u8 left_bound_found = 0;
+       u8 right_bound_found = 0;
+       u8 intermittent = 0;
+       u8 value;
+
+       for (gsl_idx = 0; gsl_idx <= MAX_GSL_IDX; gsl_idx++) {
+               for (gps_idx = 0; gps_idx <= MAX_GPS_IDX; gps_idx++) {
+                       value = dqs_gating[byte][gsl_idx][gps_idx];
+                       if (value == 1 && left_bound_found == 0) {
+                               left_bound_idx[0] = gsl_idx;
+                               left_bound_idx[1] = gps_idx;
+                               left_bound_found = 1;
+                       } else if (value == 0 &&
+                                  left_bound_found == 1 &&
+                                  !right_bound_found) {
+                               if (gps_idx == 0) {
+                                       right_bound_idx[0] = gsl_idx - 1;
+                                       right_bound_idx[1] = MAX_GPS_IDX;
+                               } else {
+                                       right_bound_idx[0] = gsl_idx;
+                                       right_bound_idx[1] = gps_idx - 1;
+                               }
+                               right_bound_found = 1;
+                       } else if (value == 1 &&
+                                  right_bound_found == 1) {
+                               intermittent = 1;
+                       }
+               }
+       }
+
+       /* if only ppppppp is found, there is no mid region. */
+       if (left_bound_idx[0] == 0 && left_bound_idx[1] == 0 &&
+           right_bound_idx[0] == 0 && right_bound_idx[1] == 0)
+               intermittent = 1;
+
+       /*if we found a regular fail pass fail pattern ffppppppff
+        * or pppppff  or ffppppp
+        */
+       if (!intermittent) {
+               /*if we found a regular fail pass fail pattern ffppppppff
+                * or pppppff  or ffppppp
+                */
+               if (left_bound_found || right_bound_found) {
+                       pr_debug("idx0(%d): %d %d      idx1(%d) : %d %d\n",
+                                left_bound_found,
+                                right_bound_idx[0], left_bound_idx[0],
+                                right_bound_found,
+                                right_bound_idx[1], left_bound_idx[1]);
+                       dqs_gate_values[byte][0] =
+                               (right_bound_idx[0] + left_bound_idx[0]) / 2;
+                       dqs_gate_values[byte][1] =
+                               (right_bound_idx[1] + left_bound_idx[1]) / 2;
+                       /* if we already lost 1/2gsl tuning,
+                        * let's try to recover by ++ on gps
+                        */
+                       if (((right_bound_idx[0] +
+                             left_bound_idx[0]) % 2 == 1) &&
+                           dqs_gate_values[byte][1] != MAX_GPS_IDX)
+                               dqs_gate_values[byte][1]++;
+                       /* if we already lost 1/2gsl tuning and gps is on max*/
+                       else if (((right_bound_idx[0] +
+                                  left_bound_idx[0]) % 2 == 1) &&
+                                dqs_gate_values[byte][1] == MAX_GPS_IDX) {
+                               dqs_gate_values[byte][1] = 0;
+                               dqs_gate_values[byte][0]++;
+                       }
+                       /* if we have gsl left and write limit too close
+                        * (difference=1)
+                        */
+                       if (((right_bound_idx[0] - left_bound_idx[0]) == 1)) {
+                               dqs_gate_values[byte][1] = (left_bound_idx[1] +
+                                                           right_bound_idx[1] +
+                                                           4) / 2;
+                               if (dqs_gate_values[byte][1] >= 4) {
+                                       dqs_gate_values[byte][0] =
+                                               right_bound_idx[0];
+                                       dqs_gate_values[byte][1] -= 4;
+                               } else {
+                                       dqs_gate_values[byte][0] =
+                                               left_bound_idx[0];
+                               }
+                       }
+                       pr_debug("*******calculating mid region: system latency: %d  phase: %d********\n",
+                                dqs_gate_values[byte][0],
+                                dqs_gate_values[byte][1]);
+                       pr_debug("*******the nominal values were system latency: 0  phase: 2*******\n");
+                       set_r0dgsl_delay(phy, byte, dqs_gate_values[byte][0]);
+                       set_r0dgps_delay(phy, byte, dqs_gate_values[byte][1]);
+               }
+       } else {
+               /* if intermitant, restore defaut values */
+               pr_debug("dqs gating:no regular fail/pass/fail found. defaults values restored.\n");
+               set_r0dgsl_delay(phy, byte, 0);
+               set_r0dgps_delay(phy, byte, 2);
+       }
+
+       /* return 0 if intermittent or if both left_bound
+        * and right_bound are not found
+        */
+       return !(intermittent || (left_bound_found && right_bound_found));
+}
+
+static enum test_result read_dqs_gating(struct stm32mp1_ddrctl *ctl,
+                                       struct stm32mp1_ddrphy *phy,
+                                       char *string)
+{
+       /* stores the log of pass/fail */
+       u8 dqs_gating[NUM_BYTES][MAX_GSL_IDX + 1][MAX_GPS_IDX + 1];
+       u8 byte, gsl_idx, gps_idx = 0;
+       struct BIST_result result;
+       u8 success = 0;
+       u8 nb_bytes = get_nb_bytes(ctl);
+
+       memset(dqs_gating, 0x0, sizeof(dqs_gating));
+
+       /*disable dqs drift compensation*/
+       clrbits_le32(&phy->pgcr, DDRPHYC_PGCR_DFTCMP);
+       /*disable all bytes*/
+       /* disable automatic power down of dll and ios when disabling a byte
+        * (to avoid having to add programming and  delay
+        * for a dll re-lock when later re-enabling a disabled byte lane)
+        */
+       clrbits_le32(&phy->pgcr, DDRPHYC_PGCR_PDDISDX);
+
+       /* disable all data bytes */
+       clrbits_le32(&phy->dx0gcr, DDRPHYC_DXNGCR_DXEN);
+       clrbits_le32(&phy->dx1gcr, DDRPHYC_DXNGCR_DXEN);
+       clrbits_le32(&phy->dx2gcr, DDRPHYC_DXNGCR_DXEN);
+       clrbits_le32(&phy->dx3gcr, DDRPHYC_DXNGCR_DXEN);
+
+       /* config the bist block */
+       config_BIST(phy);
+
+       for (byte = 0; byte < nb_bytes; byte++) {
+               if (ctrlc()) {
+                       sprintf(string, "interrupted at byte %d/%d",
+                               byte + 1, nb_bytes);
+                       return TEST_FAILED;
+               }
+               /* enable byte x (dxngcr, bit dxen) */
+               setbits_le32(DXNGCR(phy, byte), DDRPHYC_DXNGCR_DXEN);
+
+               /* select the byte lane for comparison of read data */
+               BIST_datx8_sel(phy, byte);
+               for (gsl_idx = 0; gsl_idx <= MAX_GSL_IDX; gsl_idx++) {
+                       for (gps_idx = 0; gps_idx <= MAX_GPS_IDX; gps_idx++) {
+                               if (ctrlc()) {
+                                       sprintf(string,
+                                               "interrupted at byte %d/%d",
+                                               byte + 1, nb_bytes);
+                                       return TEST_FAILED;
+                               }
+                               /* write cfg to dxndqstr */
+                               set_r0dgsl_delay(phy, byte, gsl_idx);
+                               set_r0dgps_delay(phy, byte, gps_idx);
+
+                               BIST_test(phy, byte, &result);
+                               success = result.test_result;
+                               if (success)
+                                       dqs_gating[byte][gsl_idx][gps_idx] = 1;
+                               itm_soft_reset(phy);
+                       }
+               }
+               set_midpoint_read_dqs_gating(phy, byte, dqs_gating);
+               /* dummy reads */
+               readl(0xc0000000);
+               readl(0xc0000000);
+       }
+
+       /* re-enable drift compensation */
+       /* setbits_le32(&phy->pgcr, DDRPHYC_PGCR_DFTCMP); */
+       return TEST_PASSED;
+}
+
+/****************************************************************
+ * TEST
+ ****************************************************************
+ */
+static enum test_result do_read_dqs_gating(struct stm32mp1_ddrctl *ctl,
+                                          struct stm32mp1_ddrphy *phy,
+                                          char *string, int argc,
+                                          char *argv[])
+{
+       u32 rfshctl3 = readl(&ctl->rfshctl3);
+       u32 pwrctl = readl(&ctl->pwrctl);
+       enum test_result res;
+
+       stm32mp1_refresh_disable(ctl);
+       res = read_dqs_gating(ctl, phy, string);
+       stm32mp1_refresh_restore(ctl, rfshctl3, pwrctl);
+
+       return res;
+}
+
+static enum test_result do_bit_deskew(struct stm32mp1_ddrctl *ctl,
+                                     struct stm32mp1_ddrphy *phy,
+                                     char *string, int argc, char *argv[])
+{
+       u32 rfshctl3 = readl(&ctl->rfshctl3);
+       u32 pwrctl = readl(&ctl->pwrctl);
+       enum test_result res;
+
+       stm32mp1_refresh_disable(ctl);
+       res = bit_deskew(ctl, phy, string);
+       stm32mp1_refresh_restore(ctl, rfshctl3, pwrctl);
+
+       return res;
+}
+
+static enum test_result do_eye_training(struct stm32mp1_ddrctl *ctl,
+                                       struct stm32mp1_ddrphy *phy,
+                                       char *string, int argc, char *argv[])
+{
+       u32 rfshctl3 = readl(&ctl->rfshctl3);
+       u32 pwrctl = readl(&ctl->pwrctl);
+       enum test_result res;
+
+       stm32mp1_refresh_disable(ctl);
+       res = eye_training(ctl, phy, string);
+       stm32mp1_refresh_restore(ctl, rfshctl3, pwrctl);
+
+       return res;
+}
+
+static enum test_result do_display(struct stm32mp1_ddrctl *ctl,
+                                  struct stm32mp1_ddrphy *phy,
+                                  char *string, int argc, char *argv[])
+{
+       int byte;
+       u8 nb_bytes = get_nb_bytes(ctl);
+
+       for (byte = 0; byte < nb_bytes; byte++)
+               display_reg_results(phy, byte);
+
+       return TEST_PASSED;
+}
+
+static enum test_result do_bist_config(struct stm32mp1_ddrctl *ctl,
+                                      struct stm32mp1_ddrphy *phy,
+                                      char *string, int argc, char *argv[])
+{
+       unsigned long value;
+
+       if (argc > 0) {
+               if (strict_strtoul(argv[0], 0, &value) < 0) {
+                       sprintf(string, "invalid nbErr %s", argv[0]);
+                       return TEST_FAILED;
+               }
+               BIST_error_max = value;
+       }
+       if (argc > 1) {
+               if (strict_strtoul(argv[1], 0, &value) < 0) {
+                       sprintf(string, "invalid Seed %s", argv[1]);
+                       return TEST_FAILED;
+               }
+               BIST_seed = value;
+       }
+       printf("Bist.nbErr = %d\n", BIST_error_max);
+       if (BIST_seed)
+               printf("Bist.Seed = 0x%x\n", BIST_seed);
+       else
+               printf("Bist.Seed = random\n");
+
+       return TEST_PASSED;
+}
+
+/****************************************************************
+ * TEST Description
+ ****************************************************************
+ */
+
+const struct test_desc tuning[] = {
+       {do_read_dqs_gating, "Read DQS gating",
+               "software read DQS Gating", "", 0 },
+       {do_bit_deskew, "Bit de-skew", "", "", 0 },
+       {do_eye_training, "Eye Training", "or DQS training", "", 0 },
+       {do_display, "Display registers", "", "", 0 },
+       {do_bist_config, "Bist config", "[nbErr] [seed]",
+        "configure Bist test", 2},
+};
+
+const int tuning_nb = ARRAY_SIZE(tuning);
index fcbb0a81edde04a959ee8c10c4ffc5dec6bbd292..8a447fd6e30b25ce6ffe74dcb14fef9885bacf97 100644 (file)
@@ -559,6 +559,14 @@ config MVEBU_A3700_UART
          Choose this option to add support for UART driver on the Marvell
          Armada 3700 SoC. The base address is configured via DT.
 
+config MCFUART
+       bool "Freescale ColdFire UART support"
+        help
+          Choose this option to add support for UART driver on the ColdFire
+          SoC's family. The serial communication channel provides a full-duplex
+          asynchronous/synchronous receiver and transmitter deriving an
+          operating frequency from the internal bus clock or an external clock.
+
 config MXC_UART
        bool "IMX serial port support"
        depends on MX5 || MX6
index 1371049de2780b9be907322149e47c524ef2d7ef..066e5a18d8850c8604e8d7f1489e4595e7b20e03 100644 (file)
@@ -5,6 +5,9 @@
  *
  * Modified to add device model (DM) support
  * (C) Copyright 2015  Angelo Dureghello <angelo@sysam.it>
+ *
+ * Modified to add DM and fdt support, removed non DM code
+ * (C) Copyright 2018  Angelo Dureghello <angelo@sysam.it>
  */
 
 /*
@@ -78,83 +81,6 @@ static void mcf_serial_setbrg_common(uart_t *uart, int baudrate)
        writeb(UART_UCR_RX_ENABLED | UART_UCR_TX_ENABLED, &uart->ucr);
 }
 
-#ifndef CONFIG_DM_SERIAL
-
-static int mcf_serial_init(void)
-{
-       uart_t *uart_base;
-       int port_idx;
-
-       uart_base = (uart_t *)CONFIG_SYS_UART_BASE;
-       port_idx = CONFIG_SYS_UART_PORT;
-
-       return mcf_serial_init_common(uart_base, port_idx, gd->baudrate);
-}
-
-static void mcf_serial_putc(const char c)
-{
-       uart_t *uart = (uart_t *)CONFIG_SYS_UART_BASE;
-
-       if (c == '\n')
-               serial_putc('\r');
-
-       /* Wait for last character to go. */
-       while (!(readb(&uart->usr) & UART_USR_TXRDY))
-               ;
-
-       writeb(c, &uart->utb);
-}
-
-static int mcf_serial_getc(void)
-{
-       uart_t *uart = (uart_t *)CONFIG_SYS_UART_BASE;
-
-       /* Wait for a character to arrive. */
-       while (!(readb(&uart->usr) & UART_USR_RXRDY))
-               ;
-
-       return readb(&uart->urb);
-}
-
-static void mcf_serial_setbrg(void)
-{
-       uart_t *uart = (uart_t *)CONFIG_SYS_UART_BASE;
-
-       mcf_serial_setbrg_common(uart, gd->baudrate);
-}
-
-static int mcf_serial_tstc(void)
-{
-       uart_t *uart = (uart_t *)CONFIG_SYS_UART_BASE;
-
-       return readb(&uart->usr) & UART_USR_RXRDY;
-}
-
-static struct serial_device mcf_serial_drv = {
-       .name   = "mcf_serial",
-       .start  = mcf_serial_init,
-       .stop   = NULL,
-       .setbrg = mcf_serial_setbrg,
-       .putc   = mcf_serial_putc,
-       .puts   = default_serial_puts,
-       .getc   = mcf_serial_getc,
-       .tstc   = mcf_serial_tstc,
-};
-
-void mcf_serial_initialize(void)
-{
-       serial_register(&mcf_serial_drv);
-}
-
-__weak struct serial_device *default_serial_console(void)
-{
-       return &mcf_serial_drv;
-}
-
-#endif
-
-#ifdef CONFIG_DM_SERIAL
-
 static int coldfire_serial_probe(struct udevice *dev)
 {
        struct coldfire_serial_platdata *plat = dev->platdata;
@@ -212,6 +138,23 @@ static int coldfire_serial_pending(struct udevice *dev, bool input)
        return 0;
 }
 
+static int coldfire_ofdata_to_platdata(struct udevice *dev)
+{
+       struct coldfire_serial_platdata *plat = dev_get_platdata(dev);
+       fdt_addr_t addr_base;
+
+       addr_base = devfdt_get_addr(dev);
+       if (addr_base == FDT_ADDR_T_NONE)
+               return -ENODEV;
+
+       plat->base = (uint32_t)addr_base;
+
+       plat->port = dev->seq;
+       plat->baudrate = gd->baudrate;
+
+       return 0;
+}
+
 static const struct dm_serial_ops coldfire_serial_ops = {
        .putc = coldfire_serial_putc,
        .pending = coldfire_serial_pending,
@@ -219,11 +162,18 @@ static const struct dm_serial_ops coldfire_serial_ops = {
        .setbrg = coldfire_serial_setbrg,
 };
 
+static const struct udevice_id coldfire_serial_ids[] = {
+       { .compatible = "fsl,mcf-uart" },
+       { }
+};
+
 U_BOOT_DRIVER(serial_coldfire) = {
        .name = "serial_coldfire",
        .id = UCLASS_SERIAL,
+       .of_match = coldfire_serial_ids,
+       .ofdata_to_platdata = coldfire_ofdata_to_platdata,
+       .platdata_auto_alloc_size = sizeof(struct coldfire_serial_platdata),
        .probe = coldfire_serial_probe,
        .ops = &coldfire_serial_ops,
        .flags = DM_FLAG_PRE_RELOC,
 };
-#endif
index e31c87b9ac5ad2eae5a24397ef0f07a08b6e7d7d..cca8b707acc42c8d3d10486a4a359940cdbba290 100644 (file)
@@ -269,7 +269,6 @@ static inline void _debug_uart_init(void)
        _stm32_serial_setbrg(base, uart_info,
                             CONFIG_DEBUG_UART_CLOCK,
                             CONFIG_BAUDRATE);
-       printf("DEBUG done\n");
 }
 
 static inline void _debug_uart_putc(int c)
@@ -278,7 +277,7 @@ static inline void _debug_uart_putc(int c)
        struct stm32_uart_info *uart_info = _debug_uart_info();
 
        while (_stm32_serial_putc(base, uart_info, c) == -EAGAIN)
-               WATCHDOG_RESET();
+               ;
 }
 
 DEBUG_UART_FUNCS
index c3a829deaec61fafe152235a722674e8e60b35c1..7044da35d68e45c771c4ded88c936d28a9e7e33c 100644 (file)
@@ -87,6 +87,12 @@ config CADENCE_QSPI
          used to access the SPI NOR flash on platforms embedding this
          Cadence IP core.
 
+config CF_SPI
+        bool "ColdFire SPI driver"
+        help
+          Enable the ColdFire SPI driver. This driver can be used on
+          some m68k SoCs.
+
 config DESIGNWARE_SPI
        bool "Designware SPI driver"
        help
index 522631cbbf98067de031a7579e308409aa866b81..923ff6f3114e1c08a29f1413249323b151e04bac 100644 (file)
@@ -6,23 +6,28 @@
  *
  * Copyright (C) 2004-2009 Freescale Semiconductor, Inc.
  * TsiChung Liew (Tsi-Chung.Liew@freescale.com)
+ *
+ * Support for DM and DT, non-DM code removed.
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ *
+ * TODO: fsl_dspi.c should work as a driver for the DSPI module.
  */
 
 #include <common.h>
+#include <dm.h>
+#include <dm/platform_data/spi_coldfire.h>
 #include <spi.h>
 #include <malloc.h>
-#include <asm/immap.h>
+#include <asm/coldfire/dspi.h>
+#include <asm/io.h>
 
-struct cf_spi_slave {
-       struct spi_slave slave;
+struct coldfire_spi_priv {
+       struct dspi *regs;
        uint baudrate;
+       int mode;
        int charbit;
 };
 
-extern void cfspi_port_conf(void);
-extern int cfspi_claim_bus(uint bus, uint cs);
-extern void cfspi_release_bus(uint bus, uint cs);
-
 DECLARE_GLOBAL_DATA_PTR;
 
 #ifndef CONFIG_SPI_IDLE_VAL
@@ -33,163 +38,193 @@ DECLARE_GLOBAL_DATA_PTR;
 #endif
 #endif
 
-#if defined(CONFIG_CF_DSPI)
-/* DSPI specific mode */
-#define SPI_MODE_MOD   0x00200000
-#define SPI_DBLRATE    0x00100000
-
-static inline struct cf_spi_slave *to_cf_spi_slave(struct spi_slave *slave)
+/*
+ * DSPI specific mode
+ *
+ * bit 31 - 28: Transfer size 3 to 16 bits
+ *     27 - 26: PCS to SCK delay prescaler
+ *     25 - 24: After SCK delay prescaler
+ *     23 - 22: Delay after transfer prescaler
+ *     21     : Allow overwrite for bit 31-22 and bit 20-8
+ *     20     : Double baud rate
+ *     19 - 16: PCS to SCK delay scaler
+ *     15 - 12: After SCK delay scaler
+ *     11 -  8: Delay after transfer scaler
+ *      7 -  0: SPI_CPHA, SPI_CPOL, SPI_LSB_FIRST
+ */
+#define SPI_MODE_MOD                   0x00200000
+#define SPI_MODE_DBLRATE               0x00100000
+
+#define SPI_MODE_XFER_SZ_MASK          0xf0000000
+#define SPI_MODE_DLY_PRE_MASK          0x0fc00000
+#define SPI_MODE_DLY_SCA_MASK          0x000fff00
+
+#define MCF_FRM_SZ_16BIT               DSPI_CTAR_TRSZ(0xf)
+#define MCF_DSPI_SPEED_BESTMATCH       0x7FFFFFFF
+#define MCF_DSPI_MAX_CTAR_REGS         8
+
+/* Default values */
+#define MCF_DSPI_DEFAULT_SCK_FREQ      10000000
+#define MCF_DSPI_DEFAULT_MAX_CS                4
+#define MCF_DSPI_DEFAULT_MODE          0
+
+#define MCF_DSPI_DEFAULT_CTAR          (DSPI_CTAR_TRSZ(7) | \
+                                       DSPI_CTAR_PCSSCK_1CLK | \
+                                       DSPI_CTAR_PASC(0) | \
+                                       DSPI_CTAR_PDT(0) | \
+                                       DSPI_CTAR_CSSCK(0) | \
+                                       DSPI_CTAR_ASC(0) | \
+                                       DSPI_CTAR_DT(1) | \
+                                       DSPI_CTAR_BR(6))
+
+#define MCF_CTAR_MODE_MASK             (MCF_FRM_SZ_16BIT | \
+                                       DSPI_CTAR_PCSSCK(3) | \
+                                       DSPI_CTAR_PASC_7CLK | \
+                                       DSPI_CTAR_PDT(3) | \
+                                       DSPI_CTAR_CSSCK(0x0f) | \
+                                       DSPI_CTAR_ASC(0x0f) | \
+                                       DSPI_CTAR_DT(0x0f))
+
+#define setup_ctrl(ctrl, cs)   ((ctrl & 0xFF000000) | ((1 << cs) << 16))
+
+static inline void cfspi_tx(struct coldfire_spi_priv *cfspi,
+                           u32 ctrl, u16 data)
 {
-       return container_of(slave, struct cf_spi_slave, slave);
+       /*
+        * Need to check fifo level here
+        */
+       while ((readl(&cfspi->regs->sr) & 0x0000F000) >= 0x4000)
+               ;
+
+       writel(ctrl | data, &cfspi->regs->tfr);
 }
 
-static void cfspi_init(void)
+static inline u16 cfspi_rx(struct coldfire_spi_priv *cfspi)
 {
-       volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
 
-       cfspi_port_conf();      /* port configuration */
-
-       dspi->mcr = DSPI_MCR_MSTR | DSPI_MCR_CSIS7 | DSPI_MCR_CSIS6 |
-           DSPI_MCR_CSIS5 | DSPI_MCR_CSIS4 | DSPI_MCR_CSIS3 |
-           DSPI_MCR_CSIS2 | DSPI_MCR_CSIS1 | DSPI_MCR_CSIS0 |
-           DSPI_MCR_CRXF | DSPI_MCR_CTXF;
+       while ((readl(&cfspi->regs->sr) & 0x000000F0) == 0)
+               ;
 
-       /* Default setting in platform configuration */
-#ifdef CONFIG_SYS_DSPI_CTAR0
-       dspi->ctar[0] = CONFIG_SYS_DSPI_CTAR0;
-#endif
-#ifdef CONFIG_SYS_DSPI_CTAR1
-       dspi->ctar[1] = CONFIG_SYS_DSPI_CTAR1;
-#endif
-#ifdef CONFIG_SYS_DSPI_CTAR2
-       dspi->ctar[2] = CONFIG_SYS_DSPI_CTAR2;
-#endif
-#ifdef CONFIG_SYS_DSPI_CTAR3
-       dspi->ctar[3] = CONFIG_SYS_DSPI_CTAR3;
-#endif
-#ifdef CONFIG_SYS_DSPI_CTAR4
-       dspi->ctar[4] = CONFIG_SYS_DSPI_CTAR4;
-#endif
-#ifdef CONFIG_SYS_DSPI_CTAR5
-       dspi->ctar[5] = CONFIG_SYS_DSPI_CTAR5;
-#endif
-#ifdef CONFIG_SYS_DSPI_CTAR6
-       dspi->ctar[6] = CONFIG_SYS_DSPI_CTAR6;
-#endif
-#ifdef CONFIG_SYS_DSPI_CTAR7
-       dspi->ctar[7] = CONFIG_SYS_DSPI_CTAR7;
-#endif
+       return readw(&cfspi->regs->rfr);
 }
 
-static void cfspi_tx(u32 ctrl, u16 data)
+static int coldfire_spi_claim_bus(struct udevice *dev)
 {
-       volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
+       struct udevice *bus = dev->parent;
+       struct coldfire_spi_priv *cfspi = dev_get_priv(bus);
+       struct dspi *dspi = cfspi->regs;
+       struct dm_spi_slave_platdata *slave_plat =
+               dev_get_parent_platdata(dev);
 
-       while ((dspi->sr & 0x0000F000) >= 4) ;
+       if ((in_be32(&dspi->sr) & DSPI_SR_TXRXS) != DSPI_SR_TXRXS)
+               return -1;
 
-       dspi->tfr = (ctrl | data);
+       /* Clear FIFO and resume transfer */
+       clrbits_be32(&dspi->mcr, DSPI_MCR_CTXF | DSPI_MCR_CRXF);
+
+       dspi_chip_select(slave_plat->cs);
+
+       return 0;
 }
 
-static u16 cfspi_rx(void)
+static int coldfire_spi_release_bus(struct udevice *dev)
 {
-       volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
+       struct udevice *bus = dev->parent;
+       struct coldfire_spi_priv *cfspi = dev_get_priv(bus);
+       struct dspi *dspi = cfspi->regs;
+       struct dm_spi_slave_platdata *slave_plat =
+               dev_get_parent_platdata(dev);
 
-       while ((dspi->sr & 0x000000F0) == 0) ;
+       /* Clear FIFO */
+       clrbits_be32(&dspi->mcr, DSPI_MCR_CTXF | DSPI_MCR_CRXF);
 
-       return (dspi->rfr & 0xFFFF);
+       dspi_chip_unselect(slave_plat->cs);
+
+       return 0;
 }
 
-static int cfspi_xfer(struct spi_slave *slave, uint bitlen, const void *dout,
-                     void *din, ulong flags)
+static int coldfire_spi_xfer(struct udevice *dev, unsigned int bitlen,
+                            const void *dout, void *din,
+                            unsigned long flags)
 {
-       struct cf_spi_slave *cfslave = to_cf_spi_slave(slave);
+       struct udevice *bus = dev_get_parent(dev);
+       struct coldfire_spi_priv *cfspi = dev_get_priv(bus);
+       struct dm_spi_slave_platdata *slave_plat = dev_get_parent_platdata(dev);
        u16 *spi_rd16 = NULL, *spi_wr16 = NULL;
        u8 *spi_rd = NULL, *spi_wr = NULL;
-       static u32 ctrl = 0;
+       static u32 ctrl;
        uint len = bitlen >> 3;
 
-       if (cfslave->charbit == 16) {
+       if (cfspi->charbit == 16) {
                bitlen >>= 1;
-               spi_wr16 = (u16 *) dout;
-               spi_rd16 = (u16 *) din;
+               spi_wr16 = (u16 *)dout;
+               spi_rd16 = (u16 *)din;
        } else {
-               spi_wr = (u8 *) dout;
-               spi_rd = (u8 *) din;
+               spi_wr = (u8 *)dout;
+               spi_rd = (u8 *)din;
        }
 
        if ((flags & SPI_XFER_BEGIN) == SPI_XFER_BEGIN)
                ctrl |= DSPI_TFR_CONT;
 
-       ctrl = (ctrl & 0xFF000000) | ((1 << slave->cs) << 16);
+       ctrl = setup_ctrl(ctrl, slave_plat->cs);
 
        if (len > 1) {
                int tmp_len = len - 1;
+
                while (tmp_len--) {
-                       if (dout != NULL) {
-                               if (cfslave->charbit == 16)
-                                       cfspi_tx(ctrl, *spi_wr16++);
+                       if (dout) {
+                               if (cfspi->charbit == 16)
+                                       cfspi_tx(cfspi, ctrl, *spi_wr16++);
                                else
-                                       cfspi_tx(ctrl, *spi_wr++);
-                               cfspi_rx();
+                                       cfspi_tx(cfspi, ctrl, *spi_wr++);
+                               cfspi_rx(cfspi);
                        }
 
-                       if (din != NULL) {
-                               cfspi_tx(ctrl, CONFIG_SPI_IDLE_VAL);
-                               if (cfslave->charbit == 16)
-                                       *spi_rd16++ = cfspi_rx();
+                       if (din) {
+                               cfspi_tx(cfspi, ctrl, CONFIG_SPI_IDLE_VAL);
+                               if (cfspi->charbit == 16)
+                                       *spi_rd16++ = cfspi_rx(cfspi);
                                else
-                                       *spi_rd++ = cfspi_rx();
+                                       *spi_rd++ = cfspi_rx(cfspi);
                        }
                }
 
                len = 1;        /* remaining byte */
        }
 
-       if ((flags & SPI_XFER_END) == SPI_XFER_END)
+       if (flags & SPI_XFER_END)
                ctrl &= ~DSPI_TFR_CONT;
 
        if (len) {
-               if (dout != NULL) {
-                       if (cfslave->charbit == 16)
-                               cfspi_tx(ctrl, *spi_wr16);
+               if (dout) {
+                       if (cfspi->charbit == 16)
+                               cfspi_tx(cfspi, ctrl, *spi_wr16);
                        else
-                               cfspi_tx(ctrl, *spi_wr);
-                       cfspi_rx();
+                               cfspi_tx(cfspi, ctrl, *spi_wr);
+                       cfspi_rx(cfspi);
                }
 
-               if (din != NULL) {
-                       cfspi_tx(ctrl, CONFIG_SPI_IDLE_VAL);
-                       if (cfslave->charbit == 16)
-                               *spi_rd16 = cfspi_rx();
+               if (din) {
+                       cfspi_tx(cfspi, ctrl, CONFIG_SPI_IDLE_VAL);
+                       if (cfspi->charbit == 16)
+                               *spi_rd16 = cfspi_rx(cfspi);
                        else
-                               *spi_rd = cfspi_rx();
+                               *spi_rd = cfspi_rx(cfspi);
                }
        } else {
                /* dummy read */
-               cfspi_tx(ctrl, CONFIG_SPI_IDLE_VAL);
-               cfspi_rx();
+               cfspi_tx(cfspi, ctrl, CONFIG_SPI_IDLE_VAL);
+               cfspi_rx(cfspi);
        }
 
        return 0;
 }
 
-static struct spi_slave *cfspi_setup_slave(struct cf_spi_slave *cfslave,
-                                          uint mode)
+static int coldfire_spi_set_speed(struct udevice *bus, uint max_hz)
 {
-       /*
-        * bit definition for mode:
-        * bit 31 - 28: Transfer size 3 to 16 bits
-        *     27 - 26: PCS to SCK delay prescaler
-        *     25 - 24: After SCK delay prescaler
-        *     23 - 22: Delay after transfer prescaler
-        *     21     : Allow overwrite for bit 31-22 and bit 20-8
-        *     20     : Double baud rate
-        *     19 - 16: PCS to SCK delay scaler
-        *     15 - 12: After SCK delay scaler
-        *     11 -  8: Delay after transfer scaler
-        *      7 -  0: SPI_CPHA, SPI_CPOL, SPI_LSB_FIRST
-        */
-       volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
+       struct coldfire_spi_priv *cfspi = dev_get_priv(bus);
+       struct dspi *dspi = cfspi->regs;
        int prescaler[] = { 2, 3, 5, 7 };
        int scaler[] = {
                2, 4, 6, 8,
@@ -198,57 +233,41 @@ static struct spi_slave *cfspi_setup_slave(struct cf_spi_slave *cfslave,
                4096, 8192, 16384, 32768
        };
        int i, j, pbrcnt, brcnt, diff, tmp, dbr = 0;
-       int best_i, best_j, bestmatch = 0x7FFFFFFF, baud_speed;
-       u32 bus_setup = 0;
+       int best_i, best_j, bestmatch = MCF_DSPI_SPEED_BESTMATCH, baud_speed;
+       u32 bus_setup;
+
+       cfspi->baudrate = max_hz;
+
+       /* Read current setup */
+       bus_setup = readl(&dspi->ctar[bus->seq]);
 
        tmp = (prescaler[3] * scaler[15]);
        /* Maximum and minimum baudrate it can handle */
-       if ((cfslave->baudrate > (gd->bus_clk >> 1)) ||
-           (cfslave->baudrate < (gd->bus_clk / tmp))) {
+       if ((cfspi->baudrate > (gd->bus_clk >> 1)) ||
+           (cfspi->baudrate < (gd->bus_clk / tmp))) {
                printf("Exceed baudrate limitation: Max %d - Min %d\n",
                       (int)(gd->bus_clk >> 1), (int)(gd->bus_clk / tmp));
-               return NULL;
+               return -1;
        }
 
        /* Activate Double Baud when it exceed 1/4 the bus clk */
-       if ((CONFIG_SYS_DSPI_CTAR0 & DSPI_CTAR_DBR) ||
-           (cfslave->baudrate > (gd->bus_clk / (prescaler[0] * scaler[0])))) {
+       if ((bus_setup & DSPI_CTAR_DBR) ||
+           (cfspi->baudrate > (gd->bus_clk / (prescaler[0] * scaler[0])))) {
                bus_setup |= DSPI_CTAR_DBR;
                dbr = 1;
        }
 
-       if (mode & SPI_CPOL)
-               bus_setup |= DSPI_CTAR_CPOL;
-       if (mode & SPI_CPHA)
-               bus_setup |= DSPI_CTAR_CPHA;
-       if (mode & SPI_LSB_FIRST)
-               bus_setup |= DSPI_CTAR_LSBFE;
-
        /* Overwrite default value set in platform configuration file */
-       if (mode & SPI_MODE_MOD) {
-
-               if ((mode & 0xF0000000) == 0)
-                       bus_setup |=
-                           dspi->ctar[cfslave->slave.bus] & 0x78000000;
-               else
-                       bus_setup |= ((mode & 0xF0000000) >> 1);
-
+       if (cfspi->mode & SPI_MODE_MOD) {
                /*
                 * Check to see if it is enabled by default in platform
                 * config, or manual setting passed by mode parameter
                 */
-               if (mode & SPI_DBLRATE) {
+               if (cfspi->mode & SPI_MODE_DBLRATE) {
                        bus_setup |= DSPI_CTAR_DBR;
                        dbr = 1;
                }
-               bus_setup |= (mode & 0x0FC00000) >> 4;  /* PSCSCK, PASC, PDT */
-               bus_setup |= (mode & 0x000FFF00) >> 4;  /* CSSCK, ASC, DT */
-       } else
-               bus_setup |= (dspi->ctar[cfslave->slave.bus] & 0x78FCFFF0);
-
-       cfslave->charbit =
-           ((dspi->ctar[cfslave->slave.bus] & 0x78000000) ==
-            0x78000000) ? 16 : 8;
+       }
 
        pbrcnt = sizeof(prescaler) / sizeof(int);
        brcnt = sizeof(scaler) / sizeof(int);
@@ -259,10 +278,10 @@ static struct spi_slave *cfspi_setup_slave(struct cf_spi_slave *cfslave,
                for (j = 0; j < brcnt; j++) {
                        tmp = (baud_speed / scaler[j]) * (1 + dbr);
 
-                       if (tmp > cfslave->baudrate)
-                               diff = tmp - cfslave->baudrate;
+                       if (tmp > cfspi->baudrate)
+                               diff = tmp - cfspi->baudrate;
                        else
-                               diff = cfslave->baudrate - tmp;
+                               diff = cfspi->baudrate - tmp;
 
                        if (diff < bestmatch) {
                                bestmatch = diff;
@@ -271,65 +290,174 @@ static struct spi_slave *cfspi_setup_slave(struct cf_spi_slave *cfslave,
                        }
                }
        }
+
+       bus_setup &= ~(DSPI_CTAR_PBR(0x03) | DSPI_CTAR_BR(0x0f));
        bus_setup |= (DSPI_CTAR_PBR(best_i) | DSPI_CTAR_BR(best_j));
-       dspi->ctar[cfslave->slave.bus] = bus_setup;
+       writel(bus_setup, &dspi->ctar[bus->seq]);
 
-       return &cfslave->slave;
+       return 0;
 }
-#endif                         /* CONFIG_CF_DSPI */
 
-#ifdef CONFIG_CMD_SPI
-int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+static int coldfire_spi_set_mode(struct udevice *bus, uint mode)
 {
-       if (((cs >= 0) && (cs < 8)) && ((bus >= 0) && (bus < 8)))
-               return 1;
-       else
-               return 0;
-}
+       struct coldfire_spi_priv *cfspi = dev_get_priv(bus);
+       struct dspi *dspi = cfspi->regs;
+       u32 bus_setup = 0;
 
-void spi_init(void)
-{
-       cfspi_init();
-}
+       cfspi->mode = mode;
 
-struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
-                                 unsigned int max_hz, unsigned int mode)
-{
-       struct cf_spi_slave *cfslave;
+       if (cfspi->mode & SPI_CPOL)
+               bus_setup |= DSPI_CTAR_CPOL;
+       if (cfspi->mode & SPI_CPHA)
+               bus_setup |= DSPI_CTAR_CPHA;
+       if (cfspi->mode & SPI_LSB_FIRST)
+               bus_setup |= DSPI_CTAR_LSBFE;
 
-       if (!spi_cs_is_valid(bus, cs))
-               return NULL;
+       /* Overwrite default value set in platform configuration file */
+       if (cfspi->mode & SPI_MODE_MOD) {
+               if ((cfspi->mode & SPI_MODE_XFER_SZ_MASK) == 0)
+                       bus_setup |=
+                           readl(&dspi->ctar[bus->seq]) & MCF_FRM_SZ_16BIT;
+               else
+                       bus_setup |=
+                           ((cfspi->mode & SPI_MODE_XFER_SZ_MASK) >> 1);
 
-       cfslave = spi_alloc_slave(struct cf_spi_slave, bus, cs);
-       if (!cfslave)
-               return NULL;
+               /* PSCSCK, PASC, PDT */
+               bus_setup |= (cfspi->mode & SPI_MODE_DLY_PRE_MASK) >> 4;
+               /* CSSCK, ASC, DT */
+               bus_setup |= (cfspi->mode & SPI_MODE_DLY_SCA_MASK) >> 4;
+       } else {
+               bus_setup |=
+                       (readl(&dspi->ctar[bus->seq]) & MCF_CTAR_MODE_MASK);
+       }
+
+       cfspi->charbit =
+               ((readl(&dspi->ctar[bus->seq]) & MCF_FRM_SZ_16BIT) ==
+                       MCF_FRM_SZ_16BIT) ? 16 : 8;
 
-       cfslave->baudrate = max_hz;
+       setbits_be32(&dspi->ctar[bus->seq], bus_setup);
 
-       /* specific setup */
-       return cfspi_setup_slave(cfslave, mode);
+       return 0;
 }
 
-void spi_free_slave(struct spi_slave *slave)
+static int coldfire_spi_probe(struct udevice *bus)
 {
-       struct cf_spi_slave *cfslave = to_cf_spi_slave(slave);
+       struct coldfire_spi_platdata *plat = dev_get_platdata(bus);
+       struct coldfire_spi_priv *cfspi = dev_get_priv(bus);
+       struct dspi *dspi = cfspi->regs;
+       int i;
 
-       free(cfslave);
-}
+       cfspi->regs = (struct dspi *)plat->regs_addr;
 
-int spi_claim_bus(struct spi_slave *slave)
-{
-       return cfspi_claim_bus(slave->bus, slave->cs);
+       cfspi->baudrate = plat->speed_hz;
+       cfspi->mode = plat->mode;
+
+       for (i = 0; i < MCF_DSPI_MAX_CTAR_REGS; i++) {
+               unsigned int ctar = 0;
+
+               if (plat->ctar[i][0] == 0)
+                       break;
+
+               ctar = DSPI_CTAR_TRSZ(plat->ctar[i][0]) |
+                       DSPI_CTAR_PCSSCK(plat->ctar[i][1]) |
+                       DSPI_CTAR_PASC(plat->ctar[i][2]) |
+                       DSPI_CTAR_PDT(plat->ctar[i][3]) |
+                       DSPI_CTAR_CSSCK(plat->ctar[i][4]) |
+                       DSPI_CTAR_ASC(plat->ctar[i][5]) |
+                       DSPI_CTAR_DT(plat->ctar[i][6]) |
+                       DSPI_CTAR_BR(plat->ctar[i][7]);
+
+               writel(ctar, &cfspi->regs->ctar[i]);
+       }
+
+       /* Default CTARs */
+       for (i = 0; i < MCF_DSPI_MAX_CTAR_REGS; i++)
+               writel(MCF_DSPI_DEFAULT_CTAR, &dspi->ctar[i]);
+
+       dspi->mcr = DSPI_MCR_MSTR | DSPI_MCR_CSIS7 | DSPI_MCR_CSIS6 |
+           DSPI_MCR_CSIS5 | DSPI_MCR_CSIS4 | DSPI_MCR_CSIS3 |
+           DSPI_MCR_CSIS2 | DSPI_MCR_CSIS1 | DSPI_MCR_CSIS0 |
+           DSPI_MCR_CRXF | DSPI_MCR_CTXF;
+
+       return 0;
 }
 
-void spi_release_bus(struct spi_slave *slave)
+void spi_init(void)
 {
-       cfspi_release_bus(slave->bus, slave->cs);
 }
 
-int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,
-            void *din, unsigned long flags)
+#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
+static int coldfire_dspi_ofdata_to_platdata(struct udevice *bus)
 {
-       return cfspi_xfer(slave, bitlen, dout, din, flags);
+       fdt_addr_t addr;
+       struct coldfire_spi_platdata *plat = bus->platdata;
+       const void *blob = gd->fdt_blob;
+       int node = dev_of_offset(bus);
+       int *ctar, len;
+
+       addr = devfdt_get_addr(bus);
+       if (addr == FDT_ADDR_T_NONE)
+               return -ENOMEM;
+
+       plat->regs_addr = addr;
+
+       plat->num_cs = fdtdec_get_int(blob, node, "num-cs",
+                                     MCF_DSPI_DEFAULT_MAX_CS);
+
+       plat->speed_hz = fdtdec_get_int(blob, node, "spi-max-frequency",
+                                       MCF_DSPI_DEFAULT_SCK_FREQ);
+
+       plat->mode = fdtdec_get_int(blob, node, "spi-mode",
+                                   MCF_DSPI_DEFAULT_MODE);
+
+       memset(plat->ctar, 0, sizeof(plat->ctar));
+
+       ctar = (int *)fdt_getprop(blob, node, "ctar-params", &len);
+
+       if (ctar && len) {
+               int i, q, ctar_regs;
+
+               ctar_regs = len / sizeof(unsigned int) / MAX_CTAR_FIELDS;
+
+               if (ctar_regs > MAX_CTAR_REGS)
+                       ctar_regs = MAX_CTAR_REGS;
+
+               for (i = 0; i < ctar_regs; i++) {
+                       for (q = 0; q < MAX_CTAR_FIELDS; q++)
+                               plat->ctar[i][q] = *ctar++;
+               }
+       }
+
+       debug("DSPI: regs=%pa, max-frequency=%d, num-cs=%d, mode=%d\n",
+             (void *)plat->regs_addr,
+              plat->speed_hz, plat->num_cs, plat->mode);
+
+       return 0;
 }
-#endif                         /* CONFIG_CMD_SPI */
+
+static const struct udevice_id coldfire_spi_ids[] = {
+       { .compatible = "fsl,mcf-dspi" },
+       { }
+};
+#endif
+
+static const struct dm_spi_ops coldfire_spi_ops = {
+       .claim_bus      = coldfire_spi_claim_bus,
+       .release_bus    = coldfire_spi_release_bus,
+       .xfer           = coldfire_spi_xfer,
+       .set_speed      = coldfire_spi_set_speed,
+       .set_mode       = coldfire_spi_set_mode,
+};
+
+U_BOOT_DRIVER(coldfire_spi) = {
+       .name = "spi_coldfire",
+       .id = UCLASS_SPI,
+#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
+       .of_match = coldfire_spi_ids,
+       .ofdata_to_platdata = coldfire_dspi_ofdata_to_platdata,
+       .platdata_auto_alloc_size = sizeof(struct coldfire_spi_platdata),
+#endif
+       .probe = coldfire_spi_probe,
+       .ops = &coldfire_spi_ops,
+       .priv_auto_alloc_size = sizeof(struct coldfire_spi_priv),
+};
index 23e7e7125fd2f2426fc4cc9a75be984f41f9f6d1..b8f8e7a794fcb4b6bf72112028772792a534f1d6 100644 (file)
@@ -75,8 +75,12 @@ static int ehci_fsl_init_after_reset(struct ehci_ctrl *ctrl)
        struct usb_ehci *ehci = NULL;
        struct ehci_fsl_priv *priv = container_of(ctrl, struct ehci_fsl_priv,
                                                   ehci);
-
+#ifdef CONFIG_PPC
+       ehci = (struct usb_ehci *)lower_32_bits(priv->hcd_base);
+#else
        ehci = (struct usb_ehci *)priv->hcd_base;
+#endif
+
        if (ehci_fsl_init(priv, ehci, priv->ehci.hccr, priv->ehci.hcor) < 0)
                return -ENXIO;
 
@@ -103,7 +107,11 @@ static int ehci_fsl_probe(struct udevice *dev)
                debug("Can't get the EHCI register base address\n");
                return -ENXIO;
        }
+#ifdef CONFIG_PPC
+       ehci = (struct usb_ehci *)lower_32_bits(priv->hcd_base);
+#else
        ehci = (struct usb_ehci *)priv->hcd_base;
+#endif
        hccr = (struct ehci_hccr *)(&ehci->caplength);
        hcor = (struct ehci_hcor *)
                ((void *)hccr + HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
index f909d40f45588e27af74f626770268458fafc165..b01dbc446dfa1e351e6b19656efa9c6ed87666a2 100644 (file)
@@ -103,6 +103,13 @@ config WDT_ORION
           Select this to enable Orion watchdog timer, which can be found on some
           Marvell Armada chips.
 
+config WDT_SP805
+       bool "SP805 watchdog timer support"
+       depends on WDT
+       help
+          Select this to enable SP805 watchdog timer, which can be found on some
+          nxp layerscape chips.
+
 config WDT_CDNS
        bool "Cadence watchdog timer support"
        depends on WDT
index 40b2f4bc66c59cad25bb9b04d868828f544fefe8..6f20e73810a273dc5a33cb106793bfc60e787f5c 100644 (file)
@@ -27,3 +27,4 @@ obj-$(CONFIG_WDT_CDNS) += cdns_wdt.o
 obj-$(CONFIG_WDT_MPC8xx) += mpc8xx_wdt.o
 obj-$(CONFIG_WDT_MT7621) += mt7621_wdt.o
 obj-$(CONFIG_WDT_MTK) += mtk_wdt.o
+obj-$(CONFIG_WDT_SP805) += sp805_wdt.o
diff --git a/drivers/watchdog/sp805_wdt.c b/drivers/watchdog/sp805_wdt.c
new file mode 100644 (file)
index 0000000..9661282
--- /dev/null
@@ -0,0 +1,127 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Watchdog driver for SP805 on some Layerscape SoC
+ *
+ * Copyright 2019 NXP
+ */
+
+#include <asm/io.h>
+#include <common.h>
+#include <dm/device.h>
+#include <dm/fdtaddr.h>
+#include <dm/read.h>
+#include <linux/bitops.h>
+#include <watchdog.h>
+#include <wdt.h>
+
+#define WDTLOAD                        0x000
+#define WDTCONTROL             0x008
+#define WDTINTCLR              0x00C
+#define WDTLOCK                        0xC00
+
+#define TIME_OUT_MIN_MSECS     1
+#define TIME_OUT_MAX_MSECS     120000
+#define SYS_FSL_WDT_CLK_DIV    16
+#define INT_ENABLE             BIT(0)
+#define RESET_ENABLE           BIT(1)
+#define DISABLE                        0
+#define UNLOCK                 0x1ACCE551
+#define LOCK                   0x00000001
+#define INT_MASK               BIT(0)
+
+DECLARE_GLOBAL_DATA_PTR;
+
+struct sp805_wdt_priv {
+       void __iomem *reg;
+};
+
+static int sp805_wdt_reset(struct udevice *dev)
+{
+       struct sp805_wdt_priv *priv = dev_get_priv(dev);
+
+       writel(UNLOCK, priv->reg + WDTLOCK);
+       writel(INT_MASK, priv->reg + WDTINTCLR);
+       writel(LOCK, priv->reg + WDTLOCK);
+       readl(priv->reg + WDTLOCK);
+
+       return 0;
+}
+
+static int sp805_wdt_start(struct udevice *dev, u64 timeout, ulong flags)
+{
+       u32 load_value;
+       u32 load_time;
+       struct sp805_wdt_priv *priv = dev_get_priv(dev);
+
+       load_time = (u32)timeout;
+       if (timeout < TIME_OUT_MIN_MSECS)
+               load_time = TIME_OUT_MIN_MSECS;
+       else if (timeout > TIME_OUT_MAX_MSECS)
+               load_time = TIME_OUT_MAX_MSECS;
+       /* sp805 runs counter with given value twice, so when the max timeout is
+        * set 120s, the gd->bus_clk is less than 1145MHz, the load_value will
+        * not overflow.
+        */
+       load_value = (gd->bus_clk) /
+               (2 * 1000 * SYS_FSL_WDT_CLK_DIV) * load_time;
+
+       writel(UNLOCK, priv->reg + WDTLOCK);
+       writel(load_value, priv->reg + WDTLOAD);
+       writel(INT_MASK, priv->reg + WDTINTCLR);
+       writel(INT_ENABLE | RESET_ENABLE, priv->reg + WDTCONTROL);
+       writel(LOCK, priv->reg + WDTLOCK);
+       readl(priv->reg + WDTLOCK);
+
+       return 0;
+}
+
+static int sp805_wdt_stop(struct udevice *dev)
+{
+       struct sp805_wdt_priv *priv = dev_get_priv(dev);
+
+       writel(UNLOCK, priv->reg + WDTLOCK);
+       writel(DISABLE, priv->reg + WDTCONTROL);
+       writel(LOCK, priv->reg + WDTLOCK);
+       readl(priv->reg + WDTLOCK);
+
+       return 0;
+}
+
+static int sp805_wdt_probe(struct udevice *dev)
+{
+       debug("%s: Probing wdt%u\n", __func__, dev->seq);
+
+       return 0;
+}
+
+static int sp805_wdt_ofdata_to_platdata(struct udevice *dev)
+{
+       struct sp805_wdt_priv *priv = dev_get_priv(dev);
+
+       priv->reg = (void __iomem *)dev_read_addr(dev);
+       if (IS_ERR(priv->reg))
+               return PTR_ERR(priv->reg);
+
+       return 0;
+}
+
+static const struct wdt_ops sp805_wdt_ops = {
+       .start = sp805_wdt_start,
+       .reset = sp805_wdt_reset,
+       .stop = sp805_wdt_stop,
+};
+
+static const struct udevice_id sp805_wdt_ids[] = {
+       { .compatible = "arm,sp805-wdt" },
+       {}
+};
+
+U_BOOT_DRIVER(sp805_wdt) = {
+       .name = "sp805_wdt",
+       .id = UCLASS_WDT,
+       .of_match = sp805_wdt_ids,
+       .probe = sp805_wdt_probe,
+       .priv_auto_alloc_size = sizeof(struct sp805_wdt_priv),
+       .ofdata_to_platdata = sp805_wdt_ofdata_to_platdata,
+       .ops = &sp805_wdt_ops,
+};
index 70858d3b40755196495cbcfae38c50dbe3ca0980..1e10c7a4c46b1ea0370d5d8cb5d33d105e91eb15 100644 (file)
@@ -470,7 +470,7 @@ config ENV_EXT4_FILE
          It's a string of the EXT4 file name. This file use to store the
          environment (explicit path to the file)
 
-if ARCH_ROCKCHIP || ARCH_SUNXI || ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL || ARC
+if ARCH_ROCKCHIP || ARCH_SUNXI || ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL || ARC || ARCH_STM32MP
 
 config ENV_OFFSET
        hex "Environment Offset"
index 324502ed82924576c21ebc09e79e6c5c168b3bd2..bd340fe9d52d7bdfb62d68c83ceca6954ccf27ae 100644 (file)
@@ -23,7 +23,10 @@ DECLARE_GLOBAL_DATA_PTR;
 #include <env_default.h>
 
 struct hsearch_data env_htab = {
+#if CONFIG_IS_ENABLED(ENV_SUPPORT)
+       /* defined in flags.c, only compile with ENV_SUPPORT */
        .change_ok = env_flags_validate,
+#endif
 };
 
 /*
@@ -225,7 +228,9 @@ void env_relocate(void)
 #if defined(CONFIG_NEEDS_MANUAL_RELOC)
        env_reloc();
        env_fix_drivers();
-       env_htab.change_ok += gd->reloc_off;
+
+       if (env_htab.change_ok)
+               env_htab.change_ok += gd->reloc_off;
 #endif
        if (gd->env_valid == ENV_INVALID) {
 #if defined(CONFIG_ENV_IS_NOWHERE) || defined(CONFIG_SPL_BUILD)
index 87c88e7432e5ca8f8f6ebc535b7aceee6fe9f773..d5fe053d5a2c08c41269f5f3b7680b2d58586c5a 100644 (file)
@@ -580,7 +580,6 @@ unsigned long get_board_ddr_clk(void);
  * env is stored at 0x100000, sector size is 0x10000, ucode is stored after
  * env, so we got 0x110000.
  */
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR        0x110000
 #elif defined(CONFIG_SDCARD)
 /*
@@ -588,10 +587,8 @@ unsigned long get_board_ddr_clk(void);
  * about 545KB (1089 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 1089 + 16 = 1113, enlarge it to 1130.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR        (512 * 1130)
 #elif defined(CONFIG_NAND)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #define CONFIG_SYS_FMAN_FW_ADDR        (13 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE)
 /*
@@ -601,10 +598,8 @@ unsigned long get_board_ddr_clk(void);
  * slave SRIO or PCIE outbound window->master inbound window->
  * master LAW->the ucode address in master's memory space.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE
 #define CONFIG_SYS_FMAN_FW_ADDR        0xFFE00000
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR                0xEFF00000
 #endif
 #define CONFIG_SYS_QE_FMAN_FW_LENGTH   0x10000
@@ -612,7 +607,6 @@ unsigned long get_board_ddr_clk(void);
 #endif /* CONFIG_NOBQFMAN */
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHYLIB_10G
 #define CONFIG_PHY_VITESSE
 #define CONFIG_PHY_TERANETICS
index 514733eef77c46f3abcc64cecead1505b6557c93..a9c260d5cfcf26962364e7aaf3ac6aed7954b218 100644 (file)
 /* DSPI and Serial Flash */
 #define CONFIG_CF_DSPI
 #define CONFIG_SYS_SBFHDR_SIZE         0x7
-#ifdef CONFIG_CMD_SPI
-#      define CONFIG_SYS_DSPI_CS2
-
-#      define CONFIG_SYS_DSPI_CTAR0    (DSPI_CTAR_TRSZ(7) | \
-                                        DSPI_CTAR_PCSSCK_1CLK | \
-                                        DSPI_CTAR_PASC(0) | \
-                                        DSPI_CTAR_PDT(0) | \
-                                        DSPI_CTAR_CSSCK(0) | \
-                                        DSPI_CTAR_ASC(0) | \
-                                        DSPI_CTAR_DT(1))
-#endif
 
 /* Input, PCI, Flexbus, and VCO */
 #define CONFIG_EXTRA_CLOCK
index f7b0669fc5e654a600a2fcfa435e387279c9c03b..e07684d820345922363fd3855b690179dcb5077b 100644 (file)
 #define CONFIG_CF_DSPI
 #define CONFIG_SERIAL_FLASH
 #define CONFIG_SYS_SBFHDR_SIZE         0x7
-#ifdef CONFIG_CMD_SPI
-
-#      define CONFIG_SYS_DSPI_CTAR0    (DSPI_CTAR_TRSZ(7) | \
-                                        DSPI_CTAR_PCSSCK_1CLK | \
-                                        DSPI_CTAR_PASC(0) | \
-                                        DSPI_CTAR_PDT(0) | \
-                                        DSPI_CTAR_CSSCK(0) | \
-                                        DSPI_CTAR_ASC(0) | \
-                                        DSPI_CTAR_DT(1))
-#      define CONFIG_SYS_DSPI_CTAR1    (CONFIG_SYS_DSPI_CTAR0)
-#      define CONFIG_SYS_DSPI_CTAR2    (CONFIG_SYS_DSPI_CTAR0)
-#endif
 
 /* Input, PCI, Flexbus, and VCO */
 #define CONFIG_EXTRA_CLOCK
index 57c8572aba25b0b0501cc4f2c0835d23b0ba4fd3..2bd0e6223172aad6ab7de211f405278bde6cf4f9 100644 (file)
 #define CONFIG_CF_DSPI
 #define CONFIG_SERIAL_FLASH
 #define CONFIG_SYS_SBFHDR_SIZE         0x7
-#ifdef CONFIG_CMD_SPI
-
-#      define CONFIG_SYS_DSPI_CTAR0    (DSPI_CTAR_TRSZ(7) | \
-                                        DSPI_CTAR_PCSSCK_1CLK | \
-                                        DSPI_CTAR_PASC(0) | \
-                                        DSPI_CTAR_PDT(0) | \
-                                        DSPI_CTAR_CSSCK(0) | \
-                                        DSPI_CTAR_ASC(0) | \
-                                        DSPI_CTAR_DT(1))
-#      define CONFIG_SYS_DSPI_CTAR1    (CONFIG_SYS_DSPI_CTAR0)
-#      define CONFIG_SYS_DSPI_CTAR2    (CONFIG_SYS_DSPI_CTAR0)
-#endif
 
 /* Input, PCI, Flexbus, and VCO */
 #define CONFIG_EXTRA_CLOCK
index 448dfc98a95285071bc0c1dd31bdafb05678482b..d73101f96c5e1a4f6b011a781f2802c4c9e0845d 100644 (file)
 /* DSPI and Serial Flash */
 #define CONFIG_CF_DSPI
 #define CONFIG_SYS_SBFHDR_SIZE         0x13
-#ifdef CONFIG_CMD_SPI
-
-#      define CONFIG_SYS_DSPI_CTAR0            (DSPI_CTAR_TRSZ(7) | \
-                                        DSPI_CTAR_PCSSCK_1CLK | \
-                                        DSPI_CTAR_PASC(0) | \
-                                        DSPI_CTAR_PDT(0) | \
-                                        DSPI_CTAR_CSSCK(0) | \
-                                        DSPI_CTAR_ASC(0) | \
-                                        DSPI_CTAR_DT(1))
-#endif
 
 /* PCI */
 #ifdef CONFIG_CMD_PCI
index 418c6729e199c4495eb4d0baf6d15d19f7413238..94c2a6170f6122e53f84478c76c66d6ca8718b2e 100644 (file)
@@ -13,7 +13,6 @@
  * High Level Configuration Options
  */
 #define CONFIG_E300            1       /* E300 family */
-#define CONFIG_QE              1       /* Has QE */
 
 /*
  * System IO Config
index df9cc48417f1cdb05ddc960d9c61029dc8a888a6..26a44071efd51242c5ec7187397747e5181541c6 100644 (file)
@@ -10,7 +10,6 @@
  * High Level Configuration Options
  */
 #define CONFIG_E300            1       /* E300 family */
-#define CONFIG_QE              1       /* Has QE */
 
 /*
  * System IO Config
index 9b3485ed4b7f8f46f31811b9130e91c22a02c0c6..5515b9232c8be4a68d0a878252fe3bd6dfe05e7e 100644 (file)
@@ -18,7 +18,6 @@
 #define CONFIG_PCI_INDIRECT_BRIDGE 1   /* indirect PCI bridge support */
 #define CONFIG_FSL_PCIE_RESET  1       /* need PCIe reset errata */
 #define CONFIG_SYS_PCI_64BIT   1       /* enable 64-bit PCI resources */
-#define CONFIG_QE                      /* Enable QE */
 #define CONFIG_ENV_OVERWRITE
 
 #ifndef __ASSEMBLY__
index de5a7ca959e4a7eef2488067677f1ca2a55a1702..3c6661fc836daaf75cacae5e85893e200f2e5996 100644 (file)
@@ -17,7 +17,6 @@
 #define CONFIG_PCI_INDIRECT_BRIDGE 1   /* indirect PCI bridge support */
 #define CONFIG_FSL_PCIE_RESET  1       /* need PCIe reset errata */
 #define CONFIG_SYS_PCI_64BIT   1       /* enable 64-bit PCI resources */
-#define CONFIG_QE                      /* Enable QE */
 #define CONFIG_ENV_OVERWRITE
 
 #ifndef __ASSEMBLY__
@@ -422,7 +421,6 @@ extern unsigned long get_clock_freq(void);
 #define CONFIG_SYS_LOADS_BAUD_CHANGE   1       /* allow baudrate change */
 
 /* QE microcode/firmware address */
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_QE_FW_ADDR  0xfff00000
 
 /*
index 4f6ee223853770714a83ee01a83ee2721b7fc50c..7fe34c332ec95606a2ec8cc2353204755d631d55 100644 (file)
@@ -283,13 +283,11 @@ extern unsigned long get_clock_freq(void);
 #define CONFIG_SYS_DPAA_FMAN
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHY_ATHEROS
 #endif
 
 /* Default address of microcode for the Linux Fman driver */
 /* QE microcode/firmware address */
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR        0xEFF00000
 #define CONFIG_SYS_QE_FMAN_FW_LENGTH   0x10000
 #define CONFIG_SYS_FDT_PAD             (0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH)
index b433308fff39651dd86ea31c26a5cb318818396c..e196f3ce33ab32cbc97fbf0104eb2f2ca749960a 100644 (file)
@@ -451,7 +451,6 @@ unsigned long get_board_sys_clk(unsigned long dummy);
  * env is stored at 0x100000, sector size is 0x10000, ucode is stored after
  * env, so we got 0x110000.
  */
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR        0x110000
 #elif defined(CONFIG_SDCARD)
 /*
@@ -459,10 +458,8 @@ unsigned long get_board_sys_clk(unsigned long dummy);
  * about 825KB (1650 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 1650 + 16 = 1674, enlarge it to 1680.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR        (512 * 1680)
 #elif defined(CONFIG_NAND)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #define CONFIG_SYS_FMAN_FW_ADDR        (8 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE)
 /*
@@ -472,17 +469,14 @@ unsigned long get_board_sys_clk(unsigned long dummy);
  * slave SRIO or PCIE outbound window->master inbound window->
  * master LAW->the ucode address in master's memory space.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE
 #define CONFIG_SYS_FMAN_FW_ADDR        0xFFE00000
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR        0xEFF00000
 #endif
 #define CONFIG_SYS_QE_FMAN_FW_LENGTH   0x10000
 #define CONFIG_SYS_FDT_PAD             (0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH)
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHYLIB_10G
 #define CONFIG_PHY_VITESSE
 #define CONFIG_PHY_TERANETICS
index 58c1c803f75332becf4fa0f319e1f28bb49e5f2c..c43cdd82e0eb95d440992bad054a7cdcacf6cfca 100644 (file)
@@ -641,14 +641,12 @@ unsigned long get_board_ddr_clk(void);
 
 #define CONFIG_SYS_DPAA_FMAN
 
-#define CONFIG_QE
 /* Default address of microcode for the Linux FMan driver */
 #if defined(CONFIG_SPIFLASH)
 /*
  * env is stored at 0x100000, sector size is 0x10000, ucode is stored after
  * env, so we got 0x110000.
  */
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR        0x110000
 #define CONFIG_SYS_QE_FW_ADDR  0x130000
 #elif defined(CONFIG_SDCARD)
@@ -657,11 +655,9 @@ unsigned long get_board_ddr_clk(void);
  * about 1MB (2048 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 2048 + 16 = 2072, enlarge it to 2080(0x820).
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR                (512 * 0x820)
 #define CONFIG_SYS_QE_FW_ADDR          (512 * 0x920)
 #elif defined(CONFIG_NAND)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #define CONFIG_SYS_FMAN_FW_ADDR                (11 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #define CONFIG_SYS_QE_FW_ADDR          (12 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE)
@@ -672,10 +668,8 @@ unsigned long get_board_ddr_clk(void);
  * slave SRIO or PCIE outbound window->master inbound window->
  * master LAW->the ucode address in master's memory space.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE
 #define CONFIG_SYS_FMAN_FW_ADDR 0xFFE00000
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR                0xEFF00000
 #define CONFIG_SYS_QE_FW_ADDR          0xEFE00000
 #endif
@@ -684,7 +678,6 @@ unsigned long get_board_ddr_clk(void);
 #endif /* CONFIG_NOBQFMAN */
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHYLIB_10G
 #define CONFIG_PHY_VITESSE
 #define CONFIG_PHY_REALTEK
index cce65f531e72930e37f2596d5f353e63bad0f3be..d90181f12ae77462215c0faee07eb8b8ef1c9ca2 100644 (file)
@@ -649,16 +649,12 @@ unsigned long get_board_ddr_clk(void);
 
 #define CONFIG_SYS_DPAA_FMAN
 
-#ifdef CONFIG_TARGET_T1024RDB
-#define CONFIG_QE
-#endif
 /* Default address of microcode for the Linux FMan driver */
 #if defined(CONFIG_SPIFLASH)
 /*
  * env is stored at 0x100000, sector size is 0x10000, ucode is stored after
  * env, so we got 0x110000.
  */
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR        0x110000
 #define CONFIG_SYS_QE_FW_ADDR  0x130000
 #elif defined(CONFIG_SDCARD)
@@ -667,11 +663,9 @@ unsigned long get_board_ddr_clk(void);
  * about 1MB (2048 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 2048 + 16 = 2072, enlarge it to 2080(0x820).
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR                (512 * 0x820)
 #define CONFIG_SYS_QE_FW_ADDR          (512 * 0x920)
 #elif defined(CONFIG_NAND)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #if defined(CONFIG_TARGET_T1024RDB)
 #define CONFIG_SYS_FMAN_FW_ADDR                (3 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #define CONFIG_SYS_QE_FW_ADDR          (4 * CONFIG_SYS_NAND_BLOCK_SIZE)
@@ -687,10 +681,8 @@ unsigned long get_board_ddr_clk(void);
  * slave SRIO or PCIE outbound window->master inbound window->
  * master LAW->the ucode address in master's memory space.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE
 #define CONFIG_SYS_FMAN_FW_ADDR                0xFFE00000
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR                0xEFF00000
 #define CONFIG_SYS_QE_FW_ADDR          0xEFE00000
 #endif
@@ -699,7 +691,6 @@ unsigned long get_board_ddr_clk(void);
 #endif /* CONFIG_NOBQFMAN */
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHY_REALTEK
 #if defined(CONFIG_TARGET_T1024RDB)
 #define RGMII_PHY1_ADDR                0x2
index 417383c7f07824319c7bd3db67187122e608aa80..d8b65e699c935fb25ce14e6d3927f1dd81d66e66 100644 (file)
@@ -531,14 +531,12 @@ unsigned long get_board_ddr_clk(void);
 #define CONFIG_SYS_DPAA_FMAN
 #define CONFIG_SYS_DPAA_PME
 
-#define CONFIG_QE
 /* Default address of microcode for the Linux Fman driver */
 #if defined(CONFIG_SPIFLASH)
 /*
  * env is stored at 0x100000, sector size is 0x10000, ucode is stored after
  * env, so we got 0x110000.
  */
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR        0x110000
 #elif defined(CONFIG_SDCARD)
 /*
@@ -546,13 +544,10 @@ unsigned long get_board_ddr_clk(void);
  * about 825KB (1650 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 1650 + 16 = 1674, enlarge it to 1680.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR        (512 * 1680)
 #elif defined(CONFIG_NAND)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #define CONFIG_SYS_FMAN_FW_ADDR        (8 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR                0xEFF00000
 #define CONFIG_SYS_QE_FW_ADDR          0xEFF10000
 #endif
@@ -561,7 +556,6 @@ unsigned long get_board_ddr_clk(void);
 #endif /* CONFIG_NOBQFMAN */
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHYLIB_10G
 #define CONFIG_PHY_VITESSE
 #define CONFIG_PHY_REALTEK
index 470f60acbeab4b616dd32f03e463f4217ca6727d..eeb09d26cca08c3ab1c01557d392c0f3f7e1bbca 100644 (file)
@@ -635,7 +635,6 @@ $(SRCTREE)/board/freescale/t104xrdb/t1042d4_sd_rcw.cfg
 #define CONFIG_SYS_DPAA_FMAN
 #define CONFIG_SYS_DPAA_PME
 
-#define CONFIG_QE
 #define CONFIG_U_QE
 
 /* Default address of microcode for the Linux Fman driver */
@@ -644,7 +643,6 @@ $(SRCTREE)/board/freescale/t104xrdb/t1042d4_sd_rcw.cfg
  * env is stored at 0x100000, sector size is 0x10000, ucode is stored after
  * env, so we got 0x110000.
  */
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR        0x110000
 #elif defined(CONFIG_SDCARD)
 /*
@@ -652,13 +650,10 @@ $(SRCTREE)/board/freescale/t104xrdb/t1042d4_sd_rcw.cfg
  * about 1MB (2048 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 2048 + 16 = 2072, enlarge it to 2080.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR        (512 * 0x820)
 #elif defined(CONFIG_NAND)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #define CONFIG_SYS_FMAN_FW_ADDR        (5 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR                0xEFF00000
 #endif
 
@@ -677,7 +672,6 @@ $(SRCTREE)/board/freescale/t104xrdb/t1042d4_sd_rcw.cfg
 #endif /* CONFIG_NOBQFMAN */
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHY_VITESSE
 #define CONFIG_PHY_REALTEK
 #endif
index 8d909deaf20863f739ddf4f0d82756730a45d46e..b8cc9cc3d063d89446578188799f0bb1642a49b3 100644 (file)
@@ -584,7 +584,6 @@ unsigned long get_board_ddr_clk(void);
  * env is stored at 0x100000, sector size is 0x10000, ucode is stored after
  * env, so we got 0x110000.
  */
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR        0x110000
 #elif defined(CONFIG_SDCARD)
 /*
@@ -592,10 +591,8 @@ unsigned long get_board_ddr_clk(void);
  * about 1MB (2048 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 2048 + 16 = 2072, enlarge it to 2080.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR        (512 * 0x820)
 #elif defined(CONFIG_NAND)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #define CONFIG_SYS_FMAN_FW_ADDR        (11 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE)
 /*
@@ -605,10 +602,8 @@ unsigned long get_board_ddr_clk(void);
  * slave SRIO or PCIE outbound window->master inbound window->
  * master LAW->the ucode address in master's memory space.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE
 #define CONFIG_SYS_FMAN_FW_ADDR        0xFFE00000
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR        0xEFF00000
 #endif
 #define CONFIG_SYS_QE_FMAN_FW_LENGTH   0x10000
@@ -616,7 +611,6 @@ unsigned long get_board_ddr_clk(void);
 #endif /* CONFIG_NOBQFMAN */
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHY_VITESSE
 #define CONFIG_PHY_REALTEK
 #define CONFIG_PHY_TERANETICS
index fc0007d1ac83ce3b8ad4dd485b0300aab618382e..84b3e00e89650373cbd882f05570d09b99f12c53 100644 (file)
@@ -526,7 +526,6 @@ unsigned long get_board_ddr_clk(void);
  * env is stored at 0x100000, sector size is 0x10000, ucode is stored after
  * env, so we got 0x110000.
  */
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_CORTINA_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR                0x110000
 #define CONFIG_CORTINA_FW_ADDR         0x120000
@@ -537,13 +536,11 @@ unsigned long get_board_ddr_clk(void);
  * about 1MB (2048 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 2048 + 16 = 2072, enlarge it to 2080.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_CORTINA_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR                (512 * 0x820)
 #define CONFIG_CORTINA_FW_ADDR         (512 * 0x8a0)
 
 #elif defined(CONFIG_NAND)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #define CONFIG_SYS_CORTINA_FW_IN_NAND
 #define CONFIG_SYS_FMAN_FW_ADDR                (3 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #define CONFIG_CORTINA_FW_ADDR         (4 * CONFIG_SYS_NAND_BLOCK_SIZE)
@@ -555,12 +552,10 @@ unsigned long get_board_ddr_clk(void);
  * slave SRIO or PCIE outbound window->master inbound window->
  * master LAW->the ucode address in master's memory space.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE
 #define CONFIG_SYS_CORTINA_FW_IN_REMOTE
 #define CONFIG_SYS_FMAN_FW_ADDR                0xFFE00000
 #define CONFIG_CORTINA_FW_ADDR         0xFFE10000
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_CORTINA_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR                0xEFF00000
 #define CONFIG_CORTINA_FW_ADDR         0xEFE00000
@@ -570,7 +565,6 @@ unsigned long get_board_ddr_clk(void);
 #endif /* CONFIG_NOBQFMAN */
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHY_CORTINA
 #define CONFIG_PHY_REALTEK
 #define CONFIG_CORTINA_FW_LENGTH       0x40000
index ff2ba7b9d5affbf1f6a1ca63142e980b11a413c3..ec31116a12cffae2aa514d30ab2cf1044cd81aa5 100644 (file)
@@ -398,7 +398,6 @@ unsigned long get_board_ddr_clk(void);
  * env is stored at 0x100000, sector size is 0x10000, ucode is stored after
  * env, so we got 0x110000.
  */
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR        0x110000
 #elif defined(CONFIG_SDCARD)
 /*
@@ -406,10 +405,8 @@ unsigned long get_board_ddr_clk(void);
  * about 1MB (2048 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 2048 + 16 = 2072, enlarge it to 2080.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR        (512 * 0x820)
 #elif defined(CONFIG_NAND)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #define CONFIG_SYS_FMAN_FW_ADDR        (11 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE)
 /*
@@ -419,10 +416,8 @@ unsigned long get_board_ddr_clk(void);
  * slave SRIO or PCIE outbound window->master inbound window->
  * master LAW->the ucode address in master's memory space.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE
 #define CONFIG_SYS_FMAN_FW_ADDR        0xFFE00000
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR                0xEFF00000
 #endif
 #define CONFIG_SYS_QE_FMAN_FW_LENGTH   0x10000
@@ -430,7 +425,6 @@ unsigned long get_board_ddr_clk(void);
 #endif /* CONFIG_NOBQFMAN */
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHYLIB_10G
 #define CONFIG_PHY_VITESSE
 #define CONFIG_PHY_TERANETICS
index a818f0cf57f5f3cfaa8ec8a11fd146da845d50b5..ecdd0777c55cd6d8a0855652720022f1d4d6deec 100644 (file)
@@ -543,7 +543,6 @@ unsigned long get_board_ddr_clk(void);
  * env is stored at 0x100000, sector size is 0x10000, ucode is stored after
  * env, so we got 0x110000.
  */
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR        0x110000
 #elif defined(CONFIG_SDCARD)
 /*
@@ -551,13 +550,10 @@ unsigned long get_board_ddr_clk(void);
  * about 1MB (2048 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 2048 + 16 = 2072, enlarge it to 2080.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR        (512 * 0x820)
 #elif defined(CONFIG_NAND)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #define CONFIG_SYS_FMAN_FW_ADDR        (8 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR        0xEFF00000
 #endif
 #define CONFIG_SYS_QE_FMAN_FW_LENGTH   0x10000
@@ -565,7 +561,6 @@ unsigned long get_board_ddr_clk(void);
 #endif /* CONFIG_NOBQFMAN */
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHYLIB_10G
 #define CONFIG_PHY_VITESSE
 #define CONFIG_PHY_CORTINA
index f974291eac1f51b70d868685d9bd67350518cac1..e5c3a0c3f21f466ed90d8a40e1587288a46c4b3a 100644 (file)
  * env is stored at 0x100000, sector size is 0x10000, ucode is stored after
  * env, so we got 0x110000.
  */
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR        0x110000
 #elif defined(CONFIG_SDCARD)
 /*
  * about 825KB (1650 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 1650 + 16 = 1674, enlarge it to 1680.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR        (512 * 1680)
 #elif defined(CONFIG_NAND)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #define CONFIG_SYS_FMAN_FW_ADDR        (8 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE)
 /*
  * slave SRIO or PCIE outbound window->master inbound window->
  * master LAW->the ucode address in master's memory space.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE
 #define CONFIG_SYS_FMAN_FW_ADDR        0xFFE00000
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR                0xEFF00000
 #endif
 #define CONFIG_SYS_QE_FMAN_FW_LENGTH   0x10000
 #define CONFIG_SYS_FDT_PAD             (0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH)
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHYLIB_10G
 #define CONFIG_PHY_VITESSE
 #define CONFIG_PHY_TERANETICS
index 007356bad9b4d7113bcb4f91fa6e990f719a5d5d..d152f23e7c2845830b4288190d53a533822a9b5b 100644 (file)
  * about 825KB (1650 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 1650 + 16 = 1674, enlarge it to 1680.
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR        (512 * 1680)
 
 #define CONFIG_SYS_QE_FMAN_FW_LENGTH   0x10000
 #define CONFIG_SYS_FDT_PAD             (0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH)
 
-#ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
-#endif
-
 #ifdef CONFIG_PCI
 #define CONFIG_PCI_INDIRECT_BRIDGE
 
index e89b7af061062d2233e1faa101a585e35ea88bbf..9aaea273e0794b1b9a35a41d9c156d6ed761bd9e 100644 (file)
@@ -2,7 +2,6 @@
  * High Level Configuration Options
  */
 #define CONFIG_E300            1       /* E300 family */
-#define CONFIG_QE              1       /* Has QE */
 
 #define CONFIG_KM_DEF_ARCH     "arch=ppc_82xx\0"
 
@@ -14,7 +13,6 @@
 #define CONFIG_83XX_PCICLK             66000000
 
 /* QE microcode/firmware address */
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 /* between the u-boot partition and env */
 #ifndef CONFIG_SYS_QE_FW_ADDR
 #define CONFIG_SYS_QE_FW_ADDR   0xF00C0000
index 3c2173d36429273596ab07abb8be3be345e7cc0d..d7186ab9198be7a019eda7d75d0e114bf19f8661 100644 (file)
@@ -1,7 +1,6 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_QE      /* Has QE */
 #define CONFIG_KM8321  /* Keymile PBEC8321 board specific */
 
 /*
index 8f26e059e98458970f5246acdf8218b6818b58ac..bdbb8bf6b5902b6f281915fc8e9a07248f74d5e2 100644 (file)
@@ -5,7 +5,6 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_QE                      /* Has QE */
 
 /*
  * QE UEC ethernet configuration
index a52d1df120ccc55a165b61f5f1a3b82d77e2c1aa..3eff38017fa3f2ce804ba7005bebecd67e270cd7 100644 (file)
@@ -306,12 +306,10 @@ int get_scl(void);
  * env is stored at 0x100000, sector size is 0x10000, x2 (redundant)
  * ucode is stored after env, so we got 0x120000.
  */
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR        0x120000
 #define CONFIG_SYS_QE_FMAN_FW_LENGTH   0x10000
 #define CONFIG_SYS_FDT_PAD             (0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH)
 
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHYLIB_10G
 
 #define CONFIG_PCI_INDIRECT_BRIDGE
index 3a42210c6e59d2cd02d797e3facf8a5c4ab1bbd2..5581cfd1c9295e731359ec8c9376a558f4932c3a 100644 (file)
@@ -38,7 +38,6 @@
 
 /*SPI device */
 #if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_TFABOOT)
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR                0x400d0000
 #define CONFIG_SPI_FLASH_SPANSION
 #define CONFIG_FSL_SPI_INTERFACE
index ebb1df41c728774e868931f526c3ca4fb93a2070..12e6437a0555ccae88220a47a747f1071216d110 100644 (file)
@@ -98,7 +98,8 @@
                        "${scriptaddr} ${prefix}${script}; "    \
                "env exists secureboot && load ${devtype} "     \
                        "${devnum}:${distro_bootpart} "         \
-                       "${scripthdraddr} ${prefix}${boot_script_hdr} " \
+                       "${scripthdraddr} ${prefix}${boot_script_hdr}; " \
+                       "env exists secureboot "        \
                        "&& esbc_validate ${scripthdraddr};"    \
                "source ${scriptaddr}\0"          \
        "installer=load mmc 0:2 $load_addr "    \
index f149a604cfcc3eb76793339d21ebf274fd38ba48..f6640fa4994a180e55a71e5f23c3bb8451e2cfc7 100644 (file)
@@ -98,7 +98,8 @@
                        "${scriptaddr} ${prefix}${script}; "    \
                "env exists secureboot && load ${devtype} "     \
                        "${devnum}:${distro_bootpart} "         \
-                       "${scripthdraddr} ${prefix}${boot_script_hdr} " \
+                       "${scripthdraddr} ${prefix}${boot_script_hdr}; " \
+                       "env exists secureboot "        \
                        "&& esbc_validate ${scripthdraddr};"    \
                "source ${scriptaddr}\0"          \
        "installer=load mmc 0:2 $load_addr "    \
index 3cbbd73920290dbe28e66cd24afcc34ce732806d..66771e279beb40e53e29761c2f377111ad278517 100644 (file)
@@ -102,11 +102,6 @@ unsigned long get_board_ddr_clk(void);
 #define CONFIG_MEM_INIT_VALUE           0xdeadbeef
 #endif
 
-#if !defined(CONFIG_SD_BOOT) && !defined(CONFIG_NAND_BOOT) && \
-       !defined(CONFIG_QSPI_BOOT)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
-#endif
-
 /*
  * IFC Definitions
  */
index 7fe7bab8e41ad20d11650a31aeff86bd99d7ab3f..de0c9c7f26af03dcc0b3703cf9767724713fb265 100644 (file)
 
 #define CONFIG_CHIP_SELECTS_PER_CTRL   4
 
-#if !defined(CONFIG_SD_BOOT) && !defined(CONFIG_NAND_BOOT) && \
-       !defined(CONFIG_QSPI_BOOT)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
-#endif
-
 /*
  * IFC Definitions
  */
                        "${scriptaddr} ${prefix}${script}; "    \
                "env exists secureboot && load ${devtype} "     \
                        "${devnum}:${distro_bootpart} "         \
-                       "${scripthdraddr} ${prefix}${boot_script_hdr} " \
+                       "${scripthdraddr} ${prefix}${boot_script_hdr}; " \
+                       "env exists secureboot "        \
                        "&& esbc_validate ${scripthdraddr};"    \
                "source ${scriptaddr}\0"          \
        "installer=load mmc 0:2 $load_addr "    \
diff --git a/include/configs/ls1028a_common.h b/include/configs/ls1028a_common.h
new file mode 100644 (file)
index 0000000..0db8639
--- /dev/null
@@ -0,0 +1,200 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019 NXP
+ */
+
+#ifndef __L1028A_COMMON_H
+#define __L1028A_COMMON_H
+
+#define CONFIG_REMAKE_ELF
+#define CONFIG_FSL_LAYERSCAPE
+#define CONFIG_MP
+
+#include <asm/arch/stream_id_lsch3.h>
+#include <asm/arch/config.h>
+#include <asm/arch/soc.h>
+
+/* Link Definitions */
+#define CONFIG_SYS_INIT_SP_ADDR                CONFIG_SYS_TEXT_BASE
+
+#define CONFIG_SKIP_LOWLEVEL_INIT
+
+#define CONFIG_VERY_BIG_RAM
+#define CONFIG_SYS_DDR_SDRAM_BASE      0x80000000UL
+#define CONFIG_SYS_FSL_DDR_SDRAM_BASE_PHY      0
+#define CONFIG_SYS_SDRAM_BASE          CONFIG_SYS_DDR_SDRAM_BASE
+#define CONFIG_SYS_DDR_BLOCK2_BASE     0x2080000000ULL
+#define CONFIG_SYS_FSL_DDR_MAIN_NUM_CTRLS      1
+
+#define CONFIG_CMD_MEMTEST
+#define CONFIG_SYS_MEMTEST_START        0x80000000
+#define CONFIG_SYS_MEMTEST_END          0x9fffffff
+
+/*
+ * SMP Definitinos
+ */
+#define CPU_RELEASE_ADDR               secondary_boot_func
+
+/* Generic Timer Definitions */
+#define COUNTER_FREQUENCY              25000000        /* 25MHz */
+
+/* Size of malloc() pool */
+#define CONFIG_SYS_MALLOC_LEN          (CONFIG_ENV_SIZE + 2048 * 1024)
+
+/* I2C */
+#define CONFIG_SYS_I2C
+
+/* Serial Port */
+#define CONFIG_CONS_INDEX       1
+#define CONFIG_SYS_NS16550_SERIAL
+#define CONFIG_SYS_NS16550_REG_SIZE     1
+#define CONFIG_SYS_NS16550_CLK          (get_bus_freq(0) / 2)
+
+#define CONFIG_BAUDRATE                        115200
+#define CONFIG_SYS_BAUDRATE_TABLE      { 9600, 19200, 38400, 57600, 115200 }
+
+/* Miscellaneous configurable options */
+#define CONFIG_SYS_LOAD_ADDR   (CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000)
+
+/* Physical Memory Map */
+#define CONFIG_CHIP_SELECTS_PER_CTRL   4
+
+#define CONFIG_HWCONFIG
+#define HWCONFIG_BUFFER_SIZE           128
+
+/* Allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+#define BOOT_TARGET_DEVICES(func) \
+       func(MMC, mmc, 0) \
+       func(USB, usb, 0)
+#include <config_distro_bootcmd.h>
+
+/* Initial environment variables */
+#define CONFIG_EXTRA_ENV_SETTINGS              \
+       "board=ls1028ardb\0"                    \
+       "hwconfig=fsl_ddr:bank_intlv=auto\0"    \
+       "ramdisk_addr=0x800000\0"               \
+       "ramdisk_size=0x2000000\0"              \
+       "fdt_high=0xffffffffffffffff\0"         \
+       "initrd_high=0xffffffffffffffff\0"      \
+       "fdt_addr=0x00f00000\0"                 \
+       "kernel_addr=0x01000000\0"              \
+       "scriptaddr=0x80000000\0"               \
+       "scripthdraddr=0x80080000\0"            \
+       "fdtheader_addr_r=0x80100000\0"         \
+       "kernelheader_addr_r=0x80200000\0"      \
+       "load_addr=0xa0000000\0"            \
+       "kernel_addr_r=0x81000000\0"            \
+       "fdt_addr_r=0x90000000\0"               \
+       "ramdisk_addr_r=0xa0000000\0"           \
+       "kernel_start=0x1000000\0"              \
+       "kernelheader_start=0x800000\0"         \
+       "kernel_load=0xa0000000\0"              \
+       "kernel_size=0x2800000\0"               \
+       "kernelheader_size=0x40000\0"           \
+       "kernel_addr_sd=0x8000\0"               \
+       "kernel_size_sd=0x14000\0"              \
+       "kernelhdr_addr_sd=0x4000\0"            \
+       "kernelhdr_size_sd=0x10\0"              \
+       "console=ttyS0,115200\0"                \
+       "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0"        \
+       BOOTENV                                 \
+       "boot_scripts=ls1028ardb_boot.scr\0"    \
+       "boot_script_hdr=hdr_ls1028ardb_bs.out\0"       \
+       "scan_dev_for_boot_part="               \
+               "part list ${devtype} ${devnum} devplist; "   \
+               "env exists devplist || setenv devplist 1; "  \
+               "for distro_bootpart in ${devplist}; do "     \
+                 "if fstype ${devtype} "                  \
+                       "${devnum}:${distro_bootpart} "      \
+                       "bootfstype; then "                  \
+                       "run scan_dev_for_boot; "            \
+                 "fi; "                                   \
+               "done\0"                                   \
+       "scan_dev_for_boot="                              \
+               "echo Scanning ${devtype} "               \
+                               "${devnum}:${distro_bootpart}...; "  \
+               "for prefix in ${boot_prefixes}; do "     \
+                       "run scan_dev_for_scripts; "      \
+               "done;"                                   \
+               "\0"                                      \
+       "boot_a_script="                                  \
+               "load ${devtype} ${devnum}:${distro_bootpart} "  \
+                       "${scriptaddr} ${prefix}${script}; "    \
+               "env exists secureboot && load ${devtype} "     \
+                       "${devnum}:${distro_bootpart} "         \
+                       "${scripthdraddr} ${prefix}${boot_script_hdr} " \
+                       "&& esbc_validate ${scripthdraddr};"    \
+               "source ${scriptaddr}\0"          \
+       "sd_bootcmd=echo Trying load from SD ..;"       \
+               "mmcinfo; mmc read $load_addr "         \
+               "$kernel_addr_sd $kernel_size_sd && "   \
+               "env exists secureboot && mmc read $kernelheader_addr_r " \
+               "$kernelhdr_addr_sd $kernelhdr_size_sd "                \
+               " && esbc_validate ${kernelheader_addr_r};"     \
+               "bootm $load_addr#$board\0"             \
+       "emmc_bootcmd=echo Trying load from EMMC ..;"   \
+               "mmcinfo; mmc dev 1; mmc read $load_addr "              \
+               "$kernel_addr_sd $kernel_size_sd && "   \
+               "env exists secureboot && mmc read $kernelheader_addr_r " \
+               "$kernelhdr_addr_sd $kernelhdr_size_sd "                \
+               " && esbc_validate ${kernelheader_addr_r};"     \
+               "bootm $load_addr#$board\0"
+
+#undef CONFIG_BOOTCOMMAND
+
+#define SD_BOOTCOMMAND \
+       "run distro_bootcmd;run sd_bootcmd; " \
+       "env exists secureboot && esbc_halt;"
+
+/* Monitor Command Prompt */
+#define CONFIG_SYS_CBSIZE              512     /* Console I/O Buffer Size */
+#define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE + \
+                                       sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_BARGSIZE            CONFIG_SYS_CBSIZE /* Boot args buffer */
+
+#ifndef CONFIG_CMDLINE_EDITING
+#define CONFIG_CMDLINE_EDITING         1
+#endif
+
+#define CONFIG_SYS_MAXARGS             64      /* max command args */
+
+#define CONFIG_SYS_BOOTM_LEN   (64 << 20)      /* Increase max gunzip size */
+
+/*  MMC  */
+#ifdef CONFIG_MMC
+#define CONFIG_FSL_ESDHC
+#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
+#endif
+
+#define CONFIG_SYS_MMC_ENV_DEV         0
+#define OCRAM_NONSECURE_SIZE           0x00010000
+#define CONFIG_ENV_OFFSET              0x500000        /* 5MB */
+#define CONFIG_SYS_FSL_QSPI_BASE       0x20000000
+#define CONFIG_ENV_ADDR        CONFIG_SYS_FSL_QSPI_BASE + CONFIG_ENV_OFFSET
+#define CONFIG_ENV_SIZE                        0x2000          /* 8KB */
+#define CONFIG_ENV_SECT_SIZE           0x40000
+
+#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
+
+/*  MMC  */
+#ifdef CONFIG_MMC
+#define CONFIG_FSL_ESDHC
+#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
+#endif
+
+/* I2C bus multiplexer */
+#define I2C_MUX_PCA_ADDR_PRI            0x77 /* Primary Mux*/
+#define I2C_MUX_CH_DEFAULT              0x8
+
+/* EEPROM */
+#define CONFIG_ID_EEPROM
+#define CONFIG_SYS_I2C_EEPROM_NXID
+#define CONFIG_SYS_EEPROM_BUS_NUM              0
+#define CONFIG_SYS_I2C_EEPROM_ADDR             0x57
+#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN         1
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS      3
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS  5
+
+#endif /* __L1028A_COMMON_H */
diff --git a/include/configs/ls1028aqds.h b/include/configs/ls1028aqds.h
new file mode 100644 (file)
index 0000000..be018ef
--- /dev/null
@@ -0,0 +1,161 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019 NXP
+ */
+
+#ifndef __LS1028A_QDS_H
+#define __LS1028A_QDS_H
+
+#include "ls1028a_common.h"
+
+#define CONFIG_SYS_CLK_FREQ            100000000
+#define CONFIG_DDR_CLK_FREQ            100000000
+#define COUNTER_FREQUENCY_REAL         (CONFIG_SYS_CLK_FREQ / 4)
+
+/* DDR */
+#define CONFIG_DIMM_SLOTS_PER_CTLR             2
+
+#define CONFIG_QIXIS_I2C_ACCESS
+#define CONFIG_SYS_I2C_EARLY_INIT
+
+/*
+ * QIXIS Definitions
+ */
+#define CONFIG_FSL_QIXIS
+
+#ifdef CONFIG_FSL_QIXIS
+#define QIXIS_BASE                     0x7fb00000
+#define QIXIS_BASE_PHYS                        QIXIS_BASE
+#define CONFIG_SYS_I2C_FPGA_ADDR       0x66
+#define QIXIS_LBMAP_SWITCH             1
+#define QIXIS_LBMAP_MASK               0x0f
+#define QIXIS_LBMAP_SHIFT              5
+#define QIXIS_LBMAP_DFLTBANK           0x00
+#define QIXIS_LBMAP_ALTBANK            0x00
+#define QIXIS_LBMAP_SD                 0x00
+#define QIXIS_LBMAP_EMMC               0x00
+#define QIXIS_LBMAP_QSPI               0x00
+#define QIXIS_RCW_SRC_SD               0x8
+#define QIXIS_RCW_SRC_EMMC             0x9
+#define QIXIS_RCW_SRC_QSPI             0xf
+#define QIXIS_RST_CTL_RESET            0x31
+#define QIXIS_RCFG_CTL_RECONFIG_IDLE   0x20
+#define QIXIS_RCFG_CTL_RECONFIG_START  0x21
+#define QIXIS_RCFG_CTL_WATCHDOG_ENBLE  0x08
+#define QIXIS_RST_FORCE_MEM            0x01
+
+#define CONFIG_SYS_FPGA_CSPR_EXT       (0x0)
+#define CONFIG_SYS_FPGA_CSPR           (CSPR_PHYS_ADDR(QIXIS_BASE_PHYS) | \
+                                       CSPR_PORT_SIZE_8 | \
+                                       CSPR_MSEL_GPCM | \
+                                       CSPR_V)
+#define CONFIG_SYS_FPGA_AMASK          IFC_AMASK(64 * 1024)
+#define CONFIG_SYS_FPGA_CSOR           (CSOR_NOR_ADM_SHIFT(4) | \
+                                       CSOR_NOR_NOR_MODE_AVD_NOR | \
+                                       CSOR_NOR_TRHZ_80)
+#endif
+
+/* RTC */
+#define CONFIG_SYS_RTC_BUS_NUM         1
+#define I2C_MUX_CH_RTC                 0xB
+
+/* Store environment at top of flash */
+#define CONFIG_ENV_SIZE                        0x2000
+
+#ifdef CONFIG_SPL_BUILD
+#define CONFIG_SYS_MONITOR_BASE CONFIG_SPL_TEXT_BASE
+#else
+#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
+#endif
+
+/* SATA */
+#define CONFIG_SCSI_AHCI_PLAT
+
+#define CONFIG_SYS_SATA1                       AHCI_BASE_ADDR1
+#ifndef CONFIG_CMD_EXT2
+#define CONFIG_CMD_EXT2
+#endif
+#define CONFIG_SYS_SCSI_MAX_SCSI_ID            1
+#define CONFIG_SYS_SCSI_MAX_LUN                        1
+#define CONFIG_SYS_SCSI_MAX_DEVICE             (CONFIG_SYS_SCSI_MAX_SCSI_ID * \
+                                               CONFIG_SYS_SCSI_MAX_LUN)
+/* DSPI */
+#ifdef CONFIG_FSL_DSPI
+#define CONFIG_SPI_FLASH_SST
+#define CONFIG_SPI_FLASH_EON
+#endif
+
+#ifndef SPL_NO_ENV
+#undef CONFIG_EXTRA_ENV_SETTINGS
+#define CONFIG_EXTRA_ENV_SETTINGS \
+       "board=ls1028aqds\0" \
+       "hwconfig=fsl_ddr:bank_intlv=auto\0" \
+       "ramdisk_addr=0x800000\0" \
+       "ramdisk_size=0x2000000\0" \
+       "fdt_high=0xffffffffffffffff\0" \
+       "initrd_high=0xffffffffffffffff\0" \
+       "fdt_addr=0x00f00000\0" \
+       "kernel_addr=0x01000000\0" \
+       "scriptaddr=0x80000000\0" \
+       "scripthdraddr=0x80080000\0" \
+       "fdtheader_addr_r=0x80100000\0" \
+       "kernelheader_addr_r=0x80200000\0" \
+       "load_addr=0xa0000000\0" \
+       "kernel_addr_r=0x81000000\0" \
+       "fdt_addr_r=0x90000000\0" \
+       "ramdisk_addr_r=0xa0000000\0" \
+       "kernel_start=0x1000000\0" \
+       "kernelheader_start=0x800000\0" \
+       "kernel_load=0xa0000000\0" \
+       "kernel_size=0x2800000\0" \
+       "kernelheader_size=0x40000\0" \
+       "kernel_addr_sd=0x8000\0" \
+       "kernel_size_sd=0x14000\0" \
+       "kernelhdr_addr_sd=0x4000\0" \
+       "kernelhdr_size_sd=0x10\0" \
+       "console=ttyS0,115200\0" \
+       "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
+       BOOTENV \
+       "boot_scripts=ls1028aqds_boot.scr\0" \
+       "boot_script_hdr=hdr_ls1028aqds_bs.out\0" \
+       "scan_dev_for_boot_part=" \
+               "part list ${devtype} ${devnum} devplist; " \
+               "env exists devplist || setenv devplist 1; " \
+               "for distro_bootpart in ${devplist}; do " \
+                 "if fstype ${devtype} " \
+                       "${devnum}:${distro_bootpart} " \
+                       "bootfstype; then " \
+                       "run scan_dev_for_boot; " \
+                 "fi; " \
+               "done\0" \
+       "scan_dev_for_boot=" \
+               "echo Scanning ${devtype} " \
+                               "${devnum}:${distro_bootpart}...; " \
+               "for prefix in ${boot_prefixes}; do " \
+                       "run scan_dev_for_scripts; " \
+               "done;" \
+               "\0" \
+       "boot_a_script=" \
+               "load ${devtype} ${devnum}:${distro_bootpart} " \
+                       "${scriptaddr} ${prefix}${script}; " \
+               "env exists secureboot && load ${devtype} " \
+                       "${devnum}:${distro_bootpart} " \
+                       "${scripthdraddr} ${prefix}${boot_script_hdr} " \
+                       "&& esbc_validate ${scripthdraddr};" \
+               "source ${scriptaddr}\0" \
+       "sd_bootcmd=echo Trying load from SD ..;" \
+               "mmcinfo; mmc read $load_addr " \
+               "$kernel_addr_sd $kernel_size_sd && " \
+               "env exists secureboot && mmc read $kernelheader_addr_r " \
+               "$kernelhdr_addr_sd $kernelhdr_size_sd " \
+               " && esbc_validate ${kernelheader_addr_r};" \
+               "bootm $load_addr#$board\0" \
+       "emmc_bootcmd=echo Trying load from EMMC ..;" \
+               "mmcinfo; mmc dev 1; mmc read $load_addr " \
+               "$kernel_addr_sd $kernel_size_sd && " \
+               "env exists secureboot && mmc read $kernelheader_addr_r " \
+               "$kernelhdr_addr_sd $kernelhdr_size_sd " \
+               " && esbc_validate ${kernelheader_addr_r};"     \
+               "bootm $load_addr#$board\0"
+#endif
+#endif /* __LS1028A_QDS_H */
diff --git a/include/configs/ls1028ardb.h b/include/configs/ls1028ardb.h
new file mode 100644 (file)
index 0000000..10791be
--- /dev/null
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019 NXP
+ */
+
+#ifndef __LS1028A_RDB_H
+#define __LS1028A_RDB_H
+
+#include "ls1028a_common.h"
+
+#define CONFIG_SYS_CLK_FREQ            100000000
+#define CONFIG_DDR_CLK_FREQ            100000000
+#define COUNTER_FREQUENCY_REAL         (CONFIG_SYS_CLK_FREQ / 4)
+
+#define CONFIG_SYS_RTC_BUS_NUM         0
+
+/* Store environment at top of flash */
+#define CONFIG_ENV_SIZE                        0x2000
+
+#define CONFIG_DIMM_SLOTS_PER_CTLR          1
+
+#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
+
+#define CONFIG_QIXIS_I2C_ACCESS
+#define CONFIG_SYS_I2C_EARLY_INIT
+
+/*
+ * QIXIS Definitions
+ */
+#define CONFIG_FSL_QIXIS
+
+#ifdef CONFIG_FSL_QIXIS
+#define QIXIS_BASE                     0x7fb00000
+#define QIXIS_BASE_PHYS                        QIXIS_BASE
+#define CONFIG_SYS_I2C_FPGA_ADDR       0x66
+#define QIXIS_LBMAP_SWITCH             2
+#define QIXIS_LBMAP_MASK               0xe0
+#define QIXIS_LBMAP_SHIFT              0x5
+#define QIXIS_LBMAP_DFLTBANK           0x00
+#define QIXIS_LBMAP_ALTBANK            0x00
+#define QIXIS_LBMAP_SD                 0x00
+#define QIXIS_LBMAP_EMMC               0x00
+#define QIXIS_LBMAP_QSPI               0x00
+#define QIXIS_RCW_SRC_SD               0xf8
+#define QIXIS_RCW_SRC_EMMC             0xf9
+#define QIXIS_RCW_SRC_QSPI             0xff
+#define QIXIS_RST_CTL_RESET            0x31
+#define QIXIS_RCFG_CTL_RECONFIG_IDLE   0x10
+#define QIXIS_RCFG_CTL_RECONFIG_START  0x11
+#define QIXIS_RCFG_CTL_WATCHDOG_ENBLE  0x08
+#define QIXIS_RST_FORCE_MEM            0x01
+
+#define CONFIG_SYS_FPGA_CSPR_EXT       (0x0)
+#define CONFIG_SYS_FPGA_CSPR           (CSPR_PHYS_ADDR(QIXIS_BASE_PHYS) | \
+                                       CSPR_PORT_SIZE_8 | \
+                                       CSPR_MSEL_GPCM | \
+                                       CSPR_V)
+#define CONFIG_SYS_FPGA_CSOR           (CSOR_NOR_ADM_SHIFT(4) | \
+                                       CSOR_NOR_NOR_MODE_AVD_NOR | \
+                                       CSOR_NOR_TRHZ_80)
+#endif
+
+/* SATA */
+#ifndef CONFIG_CMD_EXT2
+#define CONFIG_CMD_EXT2
+#endif
+#define CONFIG_SYS_SCSI_MAX_SCSI_ID            1
+#define CONFIG_SYS_SCSI_MAX_LUN                        1
+#define CONFIG_SYS_SCSI_MAX_DEVICE             (CONFIG_SYS_SCSI_MAX_SCSI_ID * \
+                                               CONFIG_SYS_SCSI_MAX_LUN)
+#define SCSI_VEND_ID 0x1b4b
+#define SCSI_DEV_ID  0x9170
+#define CONFIG_SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID}
+#define CONFIG_SCSI_AHCI_PLAT
+#define CONFIG_SYS_SATA1                        AHCI_BASE_ADDR1
+
+#endif /* __LS1028A_RDB_H */
index dc688f3af51c069f9c62576490c8ca3826cadd4d..70447a2183eecc6031358af3af833ec7ae58b946 100644 (file)
 #else
 #ifdef CONFIG_NAND_BOOT
 /* Store Fman ucode at offeset 0x900000(72 blocks). */
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #define CONFIG_SYS_FMAN_FW_ADDR                (72 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #elif defined(CONFIG_SD_BOOT)
 /*
  * about 1MB (2040 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 2040 + 16 = 2064, enlarge it to 18432(0x4800).
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR                (512 * 0x4800)
 #define CONFIG_SYS_QE_FW_ADDR          (512 * 0x4A00)
 #elif defined(CONFIG_QSPI_BOOT)
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR                0x40900000
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 /* FMan fireware Pre-load address */
 #define CONFIG_SYS_FMAN_FW_ADDR                0x60900000
 #define CONFIG_SYS_QE_FW_ADDR          0x60940000
                        "${scriptaddr} ${prefix}${script}; "    \
                "env exists secureboot && load ${devtype} "     \
                        "${devnum}:${distro_bootpart} "         \
-                       "${scripthdraddr} ${prefix}${boot_script_hdr} " \
+                       "${scripthdraddr} ${prefix}${boot_script_hdr}; " \
+                       "env exists secureboot "        \
                        "&& esbc_validate ${scripthdraddr};"    \
                "source ${scriptaddr}\0"                        \
        "qspi_bootcmd=echo Trying load from qspi..;"    \
index 52b47ad6704e4f7c29a042714b4411309b7d0a16..0e4e370109fdd07de2bd562557af0918f10a5d54 100644 (file)
@@ -35,7 +35,6 @@ unsigned long get_board_ddr_clk(void);
 #endif
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHY_VITESSE
 #define CONFIG_PHY_REALTEK
 #define CONFIG_PHYLIB_10G
index 6ab83d02a41ab2571ccfc59bcc3adab7cf074e81..d2979efcdf95ad0b8986aa009c77596f6ba2b717 100644 (file)
 #endif
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
-
 #define RGMII_PHY1_ADDR                        0x1
 #define RGMII_PHY2_ADDR                        0x2
 
index ea6209ad2ef17c3572c5baedff4c199c309a4f13..34b4756ed8374b3b8d850bf405f0e73b96f85a31 100644 (file)
  * about 1MB (2048 blocks), Env is stored after the image, and the env size is
  * 0x2000 (16 blocks), 8 + 2048 + 16 = 2072, enlarge it to 18432(0x4800).
  */
-#define CONFIG_SYS_QE_FMAN_FW_IN_MMC
 #define CONFIG_SYS_FMAN_FW_ADDR                (512 * 0x4800)
 #elif defined(CONFIG_QSPI_BOOT)
-#define CONFIG_SYS_QE_FW_IN_SPIFLASH
 #define CONFIG_SYS_FMAN_FW_ADDR                0x40900000
 #elif defined(CONFIG_NAND_BOOT)
-#define CONFIG_SYS_QE_FMAN_FW_IN_NAND
 #define CONFIG_SYS_FMAN_FW_ADDR                (36 * CONFIG_SYS_NAND_BLOCK_SIZE)
 #else
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_FMAN_FW_ADDR                0x60900000
 #endif
 #endif
                        "${scriptaddr} ${prefix}${script}; "    \
                "env exists secureboot && load ${devtype} "     \
                        "${devnum}:${distro_bootpart} "         \
-                       "${scripthdraddr} ${prefix}${boot_script_hdr} " \
-                       "&& esbc_validate ${scripthdraddr};"    \
+                       "${scripthdraddr} ${prefix}${boot_script_hdr}; " \
+                       "env exists secureboot "        \
+                       "&& esbc_validate ${scripthdraddr};"    \
                "source ${scriptaddr}\0"          \
        "qspi_bootcmd=echo Trying load from qspi..;"      \
                "sf probe && sf read $load_addr "         \
index 58dd9fb1a17b8668190947cb2b5c58d142c19086..eea738e6021fd06d439bdbc8de99a5526d6d9eef 100644 (file)
@@ -52,7 +52,6 @@ unsigned long get_board_ddr_clk(void);
 #endif
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define CONFIG_PHY_VITESSE
 #define CONFIG_PHY_REALTEK
 #define CONFIG_PHYLIB_10G
index f22e863749b0ae6f6577e0ad5ffbbae844c88e9f..831767235e67be6affb50c032f099821b139c8c5 100644 (file)
 #endif
 
 #ifdef CONFIG_SYS_DPAA_FMAN
-#define CONFIG_FMAN_ENET
 #define RGMII_PHY1_ADDR                        0x1
 #define RGMII_PHY2_ADDR                        0x2
 
index 45af087dc6dee37d9ba4747babddacd6f9e469e7..322adb530a343a096e695dfdb8f449d82a565da6 100644 (file)
                "${scriptaddr} ${prefix}${script}; "            \
        "env exists secureboot && load ${devtype} "             \
                "${devnum}:${distro_bootpart} "                 \
-               "${scripthdraddr} ${prefix}${boot_script_hdr} " \
+               "${scripthdraddr} ${prefix}${boot_script_hdr}; "\
+               "env exists secureboot "                        \
                "&& esbc_validate ${scripthdraddr};"            \
                "source ${scriptaddr}\0"                        \
        "installer=load mmc 0:2 $load_addr "                    \
index e41ace668594892f502102da5705035dbc1928f2..2e8a8bbdb7491294429e72a30905b81ec2dbe4a9 100644 (file)
@@ -495,7 +495,8 @@ unsigned long get_board_sys_clk(void);
                        "${scriptaddr} ${prefix}${script}; "    \
                "env exists secureboot && load ${devtype} "     \
                        "${devnum}:${distro_bootpart} "         \
-                       "${scripthdraddr} ${prefix}${boot_script_hdr} " \
+                       "${scripthdraddr} ${prefix}${boot_script_hdr}; " \
+                       "env exists secureboot "        \
                        "&& esbc_validate ${scripthdraddr};"    \
                "source ${scriptaddr}\0"                        \
        "qspi_bootcmd=echo Trying load from qspi..;"            \
index 637619cb555d20ae8e73fe81cb676923c06244ae..eb0b1766aa717b7e9f813f730d70de0fd99eaced 100644 (file)
@@ -187,7 +187,6 @@ unsigned long get_board_ddr_clk(void);
 #define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE + \
                                        sizeof(CONFIG_SYS_PROMPT) + 16)
 #define CONFIG_SYS_BARGSIZE            CONFIG_SYS_CBSIZE /* Boot args buffer */
-#define CONFIG_CMDLINE_EDITING         1
 #define CONFIG_SYS_MAXARGS             64      /* max command args */
 
 #define CONFIG_SYS_BOOTM_LEN   (64 << 20)      /* Increase max gunzip size */
index 972bb5e102bcbb2c26ef3c09dfd3c702ba4f67d5..c6bacb65ec0864d23c77e2635d2339462a88abda 100644 (file)
@@ -60,6 +60,7 @@
 
 #define AQR107_PHY_ADDR1       0x04
 #define AQR107_PHY_ADDR2       0x05
+#define AQR107_IRQ_MASK                0x0C
 
 #define CORTINA_NO_FW_UPLOAD
 #define CORTINA_PHY_ADDR1      0x0
index 8c870b00e807f89b17c51ad29b1be6e27ad4726c..19ba022ec55444d81c098b48bd512ab219e5cff8 100644 (file)
@@ -74,7 +74,6 @@
 #if defined(CONFIG_TARGET_P1021RDB)
 #define CONFIG_BOARDNAME "P1021RDB-PC"
 #define CONFIG_NAND_FSL_ELBC
-#define CONFIG_QE
 #define CONFIG_VSC7385_ENET
 #define CONFIG_SYS_LBC_LBCR    0x00080000      /* Implement conversion of
                                                addresses in the LBC */
 #if defined(CONFIG_TARGET_P1025RDB)
 #define CONFIG_BOARDNAME "P1025RDB"
 #define CONFIG_NAND_FSL_ELBC
-#define CONFIG_QE
 #define CONFIG_SLIC
 
 #define CONFIG_SYS_LBC_LBCR    0x00080000      /* Implement conversion of
 
 #ifdef CONFIG_QE
 /* QE microcode/firmware address */
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_QE_FW_ADDR  0xefec0000
 #define CONFIG_SYS_QE_FMAN_FW_LENGTH   0x10000
 #endif /* CONFIG_QE */
index 4f48370648807e11024dc08a0e8584a204a43a9a..e42b9b0cb9cc8a7588afd9c03fdecb3acc148281 100644 (file)
@@ -12,7 +12,6 @@
 #if defined(CONFIG_TWR_P1025)
 #define CONFIG_BOARDNAME "TWR-P1025"
 #define CONFIG_PHY_ATHEROS
-#define CONFIG_QE
 #define CONFIG_SYS_LBC_LBCR    0x00080000      /* Conversion of LBC addr */
 #define CONFIG_SYS_LBC_LCRR    0x80000002      /* LB clock ratio reg */
 #endif
@@ -275,7 +274,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
 
 #ifdef CONFIG_QE
 /* QE microcode/firmware address */
-#define CONFIG_SYS_QE_FMAN_FW_IN_NOR
 #define CONFIG_SYS_QE_FW_ADDR  0xefec0000
 #define CONFIG_SYS_QE_FMAN_FW_LENGTH   0x10000
 #endif /* CONFIG_QE */
index fd6c97a0c619dbfea5e70fe1fd6047a947424b6f..e8be51a1559d94c3de2e1f4feb71aa5cf5e7382a 100644 (file)
 #define CONFIG_ARMV7_SECURE_MAX_SIZE           STM32_SYSRAM_SIZE
 #endif
 
-/*
- * malloc() pool size
- */
-#define CONFIG_SYS_MALLOC_LEN                  SZ_32M
-
 /*
  * Configuration of the external SRAM memory used by U-Boot
  */
  */
 #define CONFIG_SYS_LOAD_ADDR                   STM32_DDR_BASE
 
-/*
- * Env parameters
- */
-#define CONFIG_ENV_SIZE                                SZ_4K
-
 /* ATAGs */
 #define CONFIG_CMDLINE_TAG
 #define CONFIG_SETUP_MEMORY_TAGS
@@ -95,8 +85,6 @@
  * for nand boot, boot with on ubifs partition on nand
  * for nor boot, use the default order
  */
-#define CONFIG_PREBOOT
-
 #define STM32MP_BOOTCMD "bootcmd_stm32mp=" \
        "echo \"Boot over ${boot_device}${boot_instance}!\";" \
        "if test ${boot_device} = serial || test ${boot_device} = usb;" \
index 17f92d89c96825a35afcbd24245cdd8fdf63cf07..35966580a91866568efda88ae60bf4890710c918 100644 (file)
 
 #define CONFIG_SYS_SBFHDR_SIZE         0x7
 
-#define CONFIG_SYS_DSPI_CTAR0          (DSPI_CTAR_TRSZ(7) | \
-                                       DSPI_CTAR_PCSSCK_1CLK | \
-                                       DSPI_CTAR_PASC(0) | \
-                                       DSPI_CTAR_PDT(0) | \
-                                       DSPI_CTAR_CSSCK(0) | \
-                                       DSPI_CTAR_ASC(0) | \
-                                       DSPI_CTAR_DT(1) | \
-                                       DSPI_CTAR_BR(6))
-#define CONFIG_SYS_DSPI_CTAR1          (CONFIG_SYS_DSPI_CTAR0)
-#define CONFIG_SYS_DSPI_CTAR2          (CONFIG_SYS_DSPI_CTAR0)
-
 /* Input, PCI, Flexbus, and VCO */
 #define CONFIG_EXTRA_CLOCK
 
index d206ee2caab72a07f5fdebdb3643b0b17a7219d5..4ab2ae1ba5cd8697800528943deb70bff5b98c4e 100644 (file)
@@ -224,7 +224,7 @@ static inline int ofnode_read_s32(ofnode node, const char *propname,
  * @def:       default value to return if the property has no value
  * @return property value, or @def if not found
  */
-int ofnode_read_u32_default(ofnode ref, const char *propname, u32 def);
+u32 ofnode_read_u32_default(ofnode ref, const char *propname, u32 def);
 
 /**
  * ofnode_read_s32_default() - Read a 32-bit integer from a property
@@ -354,6 +354,20 @@ ofnode ofnode_get_by_phandle(uint phandle);
  */
 int ofnode_read_size(ofnode node, const char *propname);
 
+/**
+ * ofnode_get_addr_size_index() - get an address/size from a node
+ *                               based on index
+ *
+ * This reads the register address/size from a node based on index
+ *
+ * @node: node to read from
+ * @index: Index of address to read (0 for first)
+ * @size: Pointer to size of the address
+ * @return address, or FDT_ADDR_T_NONE if not present or invalid
+ */
+phys_addr_t ofnode_get_addr_size_index(ofnode node, int index,
+                                      fdt_size_t *size);
+
 /**
  * ofnode_get_addr_index() - get an address from a node
  *
diff --git a/include/dm/platform_data/spi_coldfire.h b/include/dm/platform_data/spi_coldfire.h
new file mode 100644 (file)
index 0000000..8ad8eae
--- /dev/null
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (c) 2018  Angelo Dureghello <angelo@sysam.it>
+ */
+
+#ifndef __spi_coldfire_h
+#define __spi_coldfire_h
+
+#define MAX_CTAR_REGS          8
+#define MAX_CTAR_FIELDS                8
+
+/*
+ * struct coldfire_spi_platdata - information about a coldfire spi module
+ *
+ * @regs_addr: base address for module registers
+ * @speed_hz: default SCK frequency
+ * @mode: default SPI mode
+ * @num_cs: number of DSPI chipselect signals
+ */
+struct coldfire_spi_platdata {
+       fdt_addr_t regs_addr;
+       uint speed_hz;
+       uint mode;
+       uint num_cs;
+       uint ctar[MAX_CTAR_REGS][MAX_CTAR_FIELDS];
+};
+
+#endif /* __spi_coldfire_h */
+
index 8167e6ffcbb26e839f285e7de913d438756b189c..43d3a084282362bb55d36c23d91890d5f50b6f23 100644 (file)
@@ -160,27 +160,36 @@ extern const efi_guid_t efi_guid_hii_string_protocol;
 extern unsigned int __efi_runtime_start, __efi_runtime_stop;
 extern unsigned int __efi_runtime_rel_start, __efi_runtime_rel_stop;
 
-/*
+/**
+ * struct efi_open_protocol_info_item - open protocol info item
+ *
  * When a protocol is opened a open protocol info entry is created.
  * These are maintained in a list.
+ *
+ * @link:      link to the list of open protocol info entries of a protocol
+ * @info:      information about the opening of a protocol
  */
 struct efi_open_protocol_info_item {
-       /* Link to the list of open protocol info entries of a protocol */
        struct list_head link;
        struct efi_open_protocol_info_entry info;
 };
 
-/*
+/**
+ * struct efi_handler - single protocol interface of a handle
+ *
  * When the UEFI payload wants to open a protocol on an object to get its
  * interface (usually a struct with callback functions), this struct maps the
  * protocol GUID to the respective protocol interface
+ *
+ * @link:              link to the list of protocols of a handle
+ * @guid:              GUID of the protocol
+ * @protocol_interface:        protocol interface
+ * @open_infos         link to the list of open protocol info items
  */
 struct efi_handler {
-       /* Link to the list of protocols of a handle */
        struct list_head link;
        const efi_guid_t *guid;
        void *protocol_interface;
-       /* Link to the list of open protocol info items */
        struct list_head open_infos;
 };
 
index 110aa6ab6dea81b8a036c13c65c2d55f66c6159f..fa8e34f6f9608e48e380c8c4e0011d342832f5e7 100644 (file)
 typedef phys_addr_t fdt_addr_t;
 typedef phys_size_t fdt_size_t;
 
-static inline fdt32_t fdt_addr_unpack(fdt_addr_t addr, fdt32_t *upper)
-{
-       if (upper)
-#ifdef CONFIG_PHYS_64BIT
-               *upper = addr >> 32;
-#else
-               *upper = 0;
-#endif
-
-       return addr;
-}
-
-static inline fdt32_t fdt_size_unpack(fdt_size_t size, fdt32_t *upper)
-{
-       if (upper)
-#ifdef CONFIG_PHYS_64BIT
-               *upper = size >> 32;
-#else
-               *upper = 0;
-#endif
-
-       return size;
-}
-
 #ifdef CONFIG_PHYS_64BIT
 #define FDT_ADDR_T_NONE (-1U)
 #define fdt_addr_to_cpu(reg) be64_to_cpu(reg)
diff --git a/include/stdint.h b/include/stdint.h
new file mode 100644 (file)
index 0000000..2e126d1
--- /dev/null
@@ -0,0 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Dummy file to allow libraries linked with U-Boot to include stdint.h without
+ * getting the system version.
+ *
+ * U-Boot uses linux types (linux/types.h) so does not make use of stdint.h
+ */
index 971bd5ffa3e96f19beef17e2bb758dadfb197250..54fff85e64efff2e0dc49160331aa8e689b352bc 100644 (file)
@@ -2360,7 +2360,10 @@ efi_status_t EFIAPI efi_install_multiple_protocol_interfaces
 
                        r = EFI_CALL(efi_locate_device_path(protocol, &dp,
                                                            &old_handle));
-                       if (r == EFI_SUCCESS) {
+                       if (r == EFI_SUCCESS &&
+                           dp->type == DEVICE_PATH_TYPE_END) {
+                               EFI_PRINT("Path %pD already installed\n",
+                                         protocol_interface);
                                r = EFI_ALREADY_STARTED;
                                break;
                        }
index 636dfdab39d34b9dc51f2b798bca776cd381a2af..058b40a88768dc394dac1fd933ab8abf6d27902a 100644 (file)
@@ -169,7 +169,6 @@ static efi_status_t EFIAPI efi_get_time_boottime(
 {
 #ifdef CONFIG_DM_RTC
        efi_status_t ret = EFI_SUCCESS;
-       int r;
        struct rtc_time tm;
        struct udevice *dev;
 
@@ -179,11 +178,12 @@ static efi_status_t EFIAPI efi_get_time_boottime(
                ret = EFI_INVALID_PARAMETER;
                goto out;
        }
-
-       r = uclass_get_device(UCLASS_RTC, 0, &dev);
-       if (!r)
-               r = dm_rtc_get(dev, &tm);
-       if (r) {
+       if (uclass_get_device(UCLASS_RTC, 0, &dev) ||
+           dm_rtc_get(dev, &tm)) {
+               ret = EFI_UNSUPPORTED;
+               goto out;
+       }
+       if (dm_rtc_get(dev, &tm)) {
                ret = EFI_DEVICE_ERROR;
                goto out;
        }
@@ -210,11 +210,61 @@ out:
        return EFI_EXIT(ret);
 #else
        EFI_ENTRY("%p %p", time, capabilities);
-       return EFI_EXIT(EFI_DEVICE_ERROR);
+       return EFI_EXIT(EFI_UNSUPPORTED);
 #endif
 }
 
+/**
+ * efi_set_time_boottime() - set current time
+ *
+ * This function implements the SetTime() runtime service before
+ * SetVirtualAddressMap() is called.
+ *
+ * See the Unified Extensible Firmware Interface (UEFI) specification
+ * for details.
+ *
+ * @time:              pointer to structure to with current time
+ * Returns:            status code
+ */
+static efi_status_t EFIAPI efi_set_time_boottime(struct efi_time *time)
+{
+#ifdef CONFIG_DM_RTC
+       efi_status_t ret = EFI_SUCCESS;
+       struct rtc_time tm;
+       struct udevice *dev;
+
+       EFI_ENTRY("%p", time);
 
+       if (!time) {
+               ret = EFI_INVALID_PARAMETER;
+               goto out;
+       }
+
+       if (uclass_get_device(UCLASS_RTC, 0, &dev)) {
+               ret = EFI_UNSUPPORTED;
+               goto out;
+       }
+
+       memset(&tm, 0, sizeof(tm));
+       tm.tm_year = time->year;
+       tm.tm_mon = time->month;
+       tm.tm_mday = time->day;
+       tm.tm_hour = time->hour;
+       tm.tm_min = time->minute;
+       tm.tm_sec = time->second;
+       tm.tm_isdst = time->daylight == EFI_TIME_IN_DAYLIGHT;
+       /* Calculate day of week */
+       rtc_calc_weekday(&tm);
+
+       if (dm_rtc_set(dev, &tm))
+               ret = EFI_DEVICE_ERROR;
+out:
+       return EFI_EXIT(ret);
+#else
+       EFI_ENTRY("%p", time);
+       return EFI_EXIT(EFI_UNSUPPORTED);
+#endif
+}
 /**
  * efi_reset_system() - reset system
  *
@@ -271,6 +321,24 @@ efi_status_t __weak __efi_runtime EFIAPI efi_get_time(
        return EFI_DEVICE_ERROR;
 }
 
+/**
+ * efi_set_time() - set current time
+ *
+ * This function implements the SetTime runtime service after
+ * SetVirtualAddressMap() is called. As the U-Boot driver are not available
+ * anymore only an error code is returned.
+ *
+ * See the Unified Extensible Firmware Interface (UEFI) specification
+ * for details.
+ *
+ * @time:              pointer to structure to with current time
+ * Returns:            status code
+ */
+efi_status_t __weak __efi_runtime EFIAPI efi_set_time(struct efi_time *time)
+{
+       return EFI_UNSUPPORTED;
+}
+
 struct efi_runtime_detach_list_struct {
        void *ptr;
        void *patchto;
@@ -289,6 +357,9 @@ static const struct efi_runtime_detach_list_struct efi_runtime_detach_list[] = {
                /* RTC accessors are gone */
                .ptr = &efi_runtime_services.get_time,
                .patchto = &efi_get_time,
+       }, {
+               .ptr = &efi_runtime_services.set_time,
+               .patchto = &efi_set_time,
        }, {
                /* Clean up system table */
                .ptr = &systab.con_in,
@@ -697,7 +768,7 @@ struct efi_runtime_services __efi_runtime_data efi_runtime_services = {
                .headersize = sizeof(struct efi_runtime_services),
        },
        .get_time = &efi_get_time_boottime,
-       .set_time = (void *)&efi_device_error,
+       .set_time = &efi_set_time_boottime,
        .get_wakeup_time = (void *)&efi_unimplemented,
        .set_wakeup_time = (void *)&efi_unimplemented,
        .set_virtual_address_map = &efi_set_virtual_address_map,
index 06fddca1c47b5da3a670525736aa735082c5156d..f293b423975f58f4c67f42c625e56be3ba9d36bd 100644 (file)
@@ -12,7 +12,7 @@
 #include <efi_loader.h>
 
 /* Characters that may not be used in file names */
-static const char illegal[] = "<>:\"/\\|?*";
+static const char illegal[] = "<>:\"/\\|?*\x7f";
 
 /*
  * EDK2 assumes codepage 1250 when creating FAT 8.3 file names.
index 28b1aa7505ae2d1f31f41380adcae42252f0a18a..50bc10537f404002f6927d1cce0133a797ea9fd2 100644 (file)
@@ -427,7 +427,9 @@ efi_status_t EFIAPI efi_set_variable(u16 *variable_name,
        EFI_ENTRY("\"%ls\" %pUl %x %zu %p", variable_name, vendor, attributes,
                  data_size, data);
 
-       if (!variable_name || !vendor) {
+       /* TODO: implement APPEND_WRITE */
+       if (!variable_name || !vendor ||
+           (attributes & EFI_VARIABLE_APPEND_WRITE)) {
                ret = EFI_INVALID_PARAMETER;
                goto out;
        }
@@ -449,12 +451,21 @@ efi_status_t EFIAPI efi_set_variable(u16 *variable_name,
        if (val) {
                parse_attr(val, &attr);
 
+               /* We should not free val */
+               val = NULL;
                if (attr & READ_ONLY) {
-                       /* We should not free val */
-                       val = NULL;
                        ret = EFI_WRITE_PROTECTED;
                        goto out;
                }
+
+               /*
+                * attributes won't be changed
+                * TODO: take care of APPEND_WRITE once supported
+                */
+               if (attr != attributes) {
+                       ret = EFI_INVALID_PARAMETER;
+                       goto out;
+               }
        }
 
        val = malloc(2 * data_size + strlen("{ro,run,boot}(blob)") + 1);
index 8d440dc0b3c008ddb2bd95052db2d97a928d014c..9eb29add3b0be35e920fac895fe4494c364bdb94 100644 (file)
@@ -10,6 +10,7 @@
 #include <efi_selftest.h>
 
 #define EFI_ST_NO_RTC "Could not read real time clock\n"
+#define EFI_ST_NO_RTC_SET "Could not set real time clock\n"
 
 static struct efi_runtime_services *runtime;
 
@@ -30,17 +31,26 @@ static int setup(const efi_handle_t handle,
 /*
  * Execute unit test.
  *
- * Display current time.
+ * Read and display current time.
+ * Set a new value and read it back.
+ * Set the real time clock back the current time.
  *
  * @return:    EFI_ST_SUCCESS for success
  */
 static int execute(void)
 {
        efi_status_t ret;
-       struct efi_time tm;
+       struct efi_time tm, tm_old, tm_new = {
+               .year = 2017,
+               .month = 5,
+               .day = 19,
+               .hour = 13,
+               .minute = 47,
+               .second = 53,
+       };
 
        /* Display current time */
-       ret = runtime->get_time(&tm, NULL);
+       ret = runtime->get_time(&tm_old, NULL);
        if (ret != EFI_SUCCESS) {
 #ifdef CONFIG_CMD_DATE
                efi_st_error(EFI_ST_NO_RTC);
@@ -49,11 +59,41 @@ static int execute(void)
                efi_st_todo(EFI_ST_NO_RTC);
                return EFI_ST_SUCCESS;
 #endif
-       } else {
-               efi_st_printf("Time according to real time clock: "
-                             "%.4u-%.2u-%.2u %.2u:%.2u:%.2u\n",
-                             tm.year, tm.month, tm.day,
-                             tm.hour, tm.minute, tm.second);
+       }
+       efi_st_printf("Time according to real time clock: "
+                     "%.4u-%.2u-%.2u %.2u:%.2u:%.2u\n",
+                     tm_old.year, tm_old.month, tm_old.day,
+                     tm_old.hour, tm_old.minute, tm_old.second);
+       ret = runtime->set_time(&tm_new);
+       if (ret != EFI_SUCCESS) {
+#ifdef CONFIG_CMD_DATE
+               efi_st_error(EFI_ST_NO_RTC_SET);
+               return EFI_ST_FAILURE;
+#else
+               efi_st_todo(EFI_ST_NO_RTC_SET);
+               return EFI_ST_SUCCESS;
+#endif
+       }
+       ret = runtime->get_time(&tm, NULL);
+       if (ret != EFI_SUCCESS) {
+               efi_st_error(EFI_ST_NO_RTC);
+               return EFI_ST_FAILURE;
+       }
+       if (tm.year != tm_new.year ||
+           tm.month != tm_new.month ||
+           tm.day != tm_new.day ||
+           tm.hour !=  tm_new.hour ||
+           tm.minute != tm_new.minute ||
+           tm.second < tm_new.second ||
+           tm.second > tm_new.second + 2) {
+               efi_st_error(EFI_ST_NO_RTC_SET);
+               return EFI_ST_FAILURE;
+       }
+       /* Set time back to old value */
+       ret = runtime->set_time(&tm_old);
+       if (ret != EFI_SUCCESS) {
+               efi_st_error(EFI_ST_NO_RTC_SET);
+               return EFI_ST_FAILURE;
        }
 
        return EFI_ST_SUCCESS;
index b028c64bbc858bc12b39850e5c3664f1b6f20ce8..06c1a032dd04a5621a1b40673d2de81558737b9e 100644 (file)
@@ -116,21 +116,21 @@ static int execute(void)
                                    EFI_VARIABLE_APPEND_WRITE,
                                    7, v + 8);
        if (ret != EFI_SUCCESS) {
-               efi_st_error("SetVariable failed\n");
-               return EFI_ST_FAILURE;
-       }
-       len = EFI_ST_MAX_DATA_SIZE;
-       ret = runtime->get_variable(L"efi_st_var1", &guid_vendor1,
-                                   &attr, &len, data);
-       if (ret != EFI_SUCCESS) {
-               efi_st_error("GetVariable failed\n");
-               return EFI_ST_FAILURE;
+               efi_st_todo("SetVariable(APPEND_WRITE) failed\n");
+       } else {
+               len = EFI_ST_MAX_DATA_SIZE;
+               ret = runtime->get_variable(L"efi_st_var1", &guid_vendor1,
+                                           &attr, &len, data);
+               if (ret != EFI_SUCCESS) {
+                       efi_st_error("GetVariable failed\n");
+                       return EFI_ST_FAILURE;
+               }
+               if (len != 15)
+                       efi_st_todo("GetVariable returned wrong length %u\n",
+                                   (unsigned int)len);
+               if (memcmp(data, v, len))
+                       efi_st_todo("GetVariable returned wrong value\n");
        }
-       if (len != 15)
-               efi_st_todo("GetVariable returned wrong length %u\n",
-                           (unsigned int)len);
-       if (memcmp(data, v, len))
-               efi_st_todo("GetVariable returned wrong value\n");
        /* Enumerate variables */
        boottime->set_mem(&guid, 16, 0);
        *varname = 0;
index fea44a9a8c65d22cff39fd953328532e5b9b55aa..d0ba8889733592001dc41d3a4a77a54270c6ce4c 100644 (file)
@@ -1300,6 +1300,7 @@ int fdtdec_add_reserved_memory(void *blob, const char *basename,
        fdt32_t cells[4] = {}, *ptr = cells;
        uint32_t upper, lower, phandle;
        int parent, node, na, ns, err;
+       fdt_size_t size;
        char name[64];
 
        /* create an empty /reserved-memory node if one doesn't exist */
@@ -1340,7 +1341,8 @@ int fdtdec_add_reserved_memory(void *blob, const char *basename,
         * Unpack the start address and generate the name of the new node
         * base on the basename and the unit-address.
         */
-       lower = fdt_addr_unpack(carveout->start, &upper);
+       upper = upper_32_bits(carveout->start);
+       lower = lower_32_bits(carveout->start);
 
        if (na > 1 && upper > 0)
                snprintf(name, sizeof(name), "%s@%x,%x", basename, upper,
@@ -1374,7 +1376,9 @@ int fdtdec_add_reserved_memory(void *blob, const char *basename,
        *ptr++ = cpu_to_fdt32(lower);
 
        /* store one or two size cells */
-       lower = fdt_size_unpack(carveout->end - carveout->start + 1, &upper);
+       size = carveout->end - carveout->start + 1;
+       upper = upper_32_bits(size);
+       lower = lower_32_bits(size);
 
        if (ns > 1)
                *ptr++ = cpu_to_fdt32(upper);
index f6defe16c5a694a9af4e5e476aa550edf4ab6225..1f4f27054057f7a547fafe7b8843db67925c14fb 100644 (file)
@@ -155,11 +155,13 @@ static int make_fdt_carveout_device(void *fdt, uint32_t na, uint32_t ns)
        };
        fdt32_t cells[4], *ptr = cells;
        uint32_t upper, lower;
+       fdt_size_t size;
        char name[32];
        int offset;
 
        /* store one or two address cells */
-       lower = fdt_addr_unpack(carveout.start, &upper);
+       upper = upper_32_bits(carveout.start);
+       lower = lower_32_bits(carveout.start);
 
        if (na > 1 && upper > 0)
                snprintf(name, sizeof(name), "%s@%x,%x", basename, upper,
@@ -173,7 +175,9 @@ static int make_fdt_carveout_device(void *fdt, uint32_t na, uint32_t ns)
        *ptr++ = cpu_to_fdt32(lower);
 
        /* store one or two size cells */
-       lower = fdt_size_unpack(carveout.end - carveout.start + 1, &upper);
+       size = carveout.end - carveout.start + 1;
+       upper = upper_32_bits(size);
+       lower = lower_32_bits(size);
 
        if (ns > 1)
                *ptr++ = cpu_to_fdt32(upper);
index 5ec4ffbeae92fb0fba5629d8fbb6193548815367..2c41baa8610c565584db78fbf72dbd58045edaa5 100644 (file)
@@ -177,7 +177,6 @@ CONFIG_BUFNO_AUTO_INCR_BIT
 CONFIG_BUILD_ENVCRC
 CONFIG_BUS_WIDTH
 CONFIG_BZIP2
-CONFIG_CADDY2
 CONFIG_CALXEDA_XGMAC
 CONFIG_CDP_APPLIANCE_VLAN_TYPE
 CONFIG_CDP_CAPABILITIES
@@ -243,7 +242,6 @@ CONFIG_CONS_SCIF2
 CONFIG_CONS_SCIF3
 CONFIG_CONS_SCIF4
 CONFIG_CONS_SCIF5
-CONFIG_CONS_SCIF7
 CONFIG_CONTROL
 CONFIG_CONTROLCENTERD
 CONFIG_CON_ROT
@@ -348,7 +346,6 @@ CONFIG_DIRECT_NOR_BOOT
 CONFIG_DISCONTIGMEM
 CONFIG_DISCOVER_PHY
 CONFIG_DISPLAY_AER_xxxx
-CONFIG_DLVISION_10G
 CONFIG_DM9000_BASE
 CONFIG_DM9000_BYTE_SWAPPED
 CONFIG_DM9000_DEBUG
@@ -371,7 +368,6 @@ CONFIG_DRIVER_AT91EMAC_QUIET
 CONFIG_DRIVER_AX88796L
 CONFIG_DRIVER_DM9000
 CONFIG_DRIVER_EP93XX_MAC
-CONFIG_DRIVER_ETHER
 CONFIG_DRIVER_NE2000
 CONFIG_DRIVER_NE2000_BASE
 CONFIG_DRIVER_NE2000_CCR
@@ -379,9 +375,6 @@ CONFIG_DRIVER_NE2000_VAL
 CONFIG_DRIVER_SMC911X_BASE
 CONFIG_DRIVER_TI_EMAC_RMII_NO_NEGOTIATE
 CONFIG_DRIVER_TI_EMAC_USE_RMII
-CONFIG_DRIVE_MMC
-CONFIG_DRIVE_SATA
-CONFIG_DRIVE_TYPES
 CONFIG_DSP_CLUSTER_START
 CONFIG_DUOVERO
 CONFIG_DWC2_DFLT_SPEED_FULL
@@ -449,7 +442,6 @@ CONFIG_EHCI_MMIO_BIG_ENDIAN
 CONFIG_EHCI_MXS_PORT0
 CONFIG_EHCI_MXS_PORT1
 CONFIG_ELBC_NAND_SPL_STATIC_PGSIZE
-CONFIG_EMMC_BOOT
 CONFIG_EMU
 CONFIG_ENABLE_36BIT_PHYS
 CONFIG_ENABLE_MMU
@@ -485,10 +477,6 @@ CONFIG_ENV_SETTINGS_V1
 CONFIG_ENV_SETTINGS_V2
 CONFIG_ENV_SIZE_FLEX
 CONFIG_ENV_SIZE_REDUND
-CONFIG_ENV_SPI_BUS
-CONFIG_ENV_SPI_CS
-CONFIG_ENV_SPI_MAX_HZ
-CONFIG_ENV_SPI_MODE
 CONFIG_ENV_SROM_BANK
 CONFIG_ENV_TOTAL_SIZE
 CONFIG_ENV_UBIFS_OPTION
@@ -507,7 +495,6 @@ CONFIG_ESBC_ADDR_64BIT
 CONFIG_ESBC_HDR_LS
 CONFIG_ESDHC_DETECT_8_BIT_QUIRK
 CONFIG_ESDHC_DETECT_QUIRK
-CONFIG_ESDHC_DETECT_USE_EXTERN_IRQ1
 CONFIG_ESDHC_HC_BLK_ADDR
 CONFIG_ESPRESSO7420
 CONFIG_ET1100_BASE
@@ -598,7 +585,6 @@ CONFIG_FLASH_SECTOR_SIZE
 CONFIG_FLASH_SHOW_PROGRESS
 CONFIG_FLASH_SPANSION_S29WS_N
 CONFIG_FLASH_VERIFY
-CONFIG_FMAN_ENET
 CONFIG_FM_PLAT_CLK_DIV
 CONFIG_FORCE_DDR_DATA_BUS_WIDTH_32
 CONFIG_FORMIKE
@@ -708,7 +694,6 @@ CONFIG_GPIO_LED_STUBS
 CONFIG_GREEN_LED
 CONFIG_GURNARD_FPGA
 CONFIG_GURNARD_SPLASH
-CONFIG_GZIP
 CONFIG_GZIP_COMPRESSED
 CONFIG_GZIP_COMPRESS_DEF_SZ
 CONFIG_G_DNL_THOR_PRODUCT_NUM
@@ -716,7 +701,6 @@ CONFIG_G_DNL_THOR_VENDOR_NUM
 CONFIG_G_DNL_UMS_PRODUCT_NUM
 CONFIG_G_DNL_UMS_VENDOR_NUM
 CONFIG_H264_FREQ
-CONFIG_H8300
 CONFIG_HAS_ETH0
 CONFIG_HAS_ETH1
 CONFIG_HAS_ETH2
@@ -910,7 +894,6 @@ CONFIG_I2C_RTC_ADDR
 CONFIG_I2C_TIMEOUT
 CONFIG_ICACHE
 CONFIG_ICS307_REFCLK_HZ
-CONFIG_IDE_PCMCIA
 CONFIG_IDE_PREINIT
 CONFIG_IDE_RESET
 CONFIG_IDE_SWAP_IO
@@ -933,9 +916,6 @@ CONFIG_INI_MAX_NAME
 CONFIG_INI_MAX_SECTION
 CONFIG_INTEGRITY
 CONFIG_INTERRUPTS
-CONFIG_IO
-CONFIG_IO64
-CONFIG_IOCON
 CONFIG_IODELAY_RECALIBRATION
 CONFIG_IOMUX_LPSR
 CONFIG_IOMUX_SHARE_CONF_REG
@@ -984,14 +964,9 @@ CONFIG_KIRKWOOD_RGMII_PAD_1V8
 CONFIG_KIRQ_EN
 CONFIG_KM8321
 CONFIG_KMCOGE4
-CONFIG_KMCOGE5NE
-CONFIG_KMETER1
 CONFIG_KMLION1
-CONFIG_KMOPTI2
 CONFIG_KMP204X
-CONFIG_KMSUPX5
 CONFIG_KMTEGR1
-CONFIG_KMTEPR2
 CONFIG_KMVECT1
 CONFIG_KM_BOARD_EXTRA_ENV
 CONFIG_KM_BOARD_NAME
@@ -1177,7 +1152,6 @@ CONFIG_MCFFEC
 CONFIG_MCFPIT
 CONFIG_MCFRTC
 CONFIG_MCFTMR
-CONFIG_MCFUART
 CONFIG_MCLK_DIS
 CONFIG_MDIO_TIMEOUT
 CONFIG_MEMSIZE
@@ -1340,7 +1314,6 @@ CONFIG_NORFLASH_PS32BIT
 CONFIG_NO_ETH
 CONFIG_NO_RELOCATION
 CONFIG_NO_WAIT
-CONFIG_NR_CPUS
 CONFIG_NR_DRAM_POPULATED
 CONFIG_NS16550_MIN_FUNCTIONS
 CONFIG_NS8382X
@@ -1497,7 +1470,6 @@ CONFIG_PPC_SPINTABLE_COMPATIBLE
 CONFIG_PQ_MDS_PIB
 CONFIG_PQ_MDS_PIB_ATM
 CONFIG_PRAM
-CONFIG_PREBOOT
 CONFIG_PRINTK
 CONFIG_PROC_FS
 CONFIG_PROFILE_ALL_BRANCHES
@@ -1520,7 +1492,6 @@ CONFIG_PXA_STD_I2C
 CONFIG_PXA_VGA
 CONFIG_PXA_VIDEO
 CONFIG_QBMAN_CLK_DIV
-CONFIG_QE
 CONFIG_QEMU_MIPS
 CONFIG_QIXIS_I2C_ACCESS
 CONFIG_QSPI
@@ -1546,7 +1517,6 @@ CONFIG_RAM_BOOT_PHYS
 CONFIG_RD_LVL
 CONFIG_REALMODE_DEBUG
 CONFIG_RED_LED
-CONFIG_REFCLK_FREQ
 CONFIG_REG
 CONFIG_REG_0
 CONFIG_REG_1_BASE
@@ -1635,7 +1605,6 @@ CONFIG_SATA_ULI5288
 CONFIG_SCF0403_LCD
 CONFIG_SCIF
 CONFIG_SCIF_A
-CONFIG_SCIF_EXT_CLOCK
 CONFIG_SCIF_USE_EXT_CLK
 CONFIG_SCSI_AHCI_PLAT
 CONFIG_SCSI_DEV_LIST
@@ -1678,7 +1647,6 @@ CONFIG_SHARP_LM8V31
 CONFIG_SHARP_LQ035Q7DH06
 CONFIG_SHEEVA_88SV131
 CONFIG_SHEEVA_88SV331xV5
-CONFIG_SHMIN
 CONFIG_SHOW_ACTIVITY
 CONFIG_SHOW_BOOT_PROGRESS
 CONFIG_SH_CMT_CLK_FREQ
@@ -1735,10 +1703,7 @@ CONFIG_SMSTP7_ENA
 CONFIG_SMSTP8_ENA
 CONFIG_SMSTP9_ENA
 CONFIG_SOCRATES
-CONFIG_SOC_DM355
-CONFIG_SOC_DM365
 CONFIG_SOC_DM644X
-CONFIG_SOC_DM646X
 CONFIG_SOC_K2E
 CONFIG_SOC_K2G
 CONFIG_SOC_K2HK
@@ -1906,7 +1871,6 @@ CONFIG_STV0991_HZ_CLOCK
 CONFIG_ST_SMI
 CONFIG_SUNXI_GPIO
 CONFIG_SUNXI_MAX_FB_SIZE
-CONFIG_SUPERH_ON_CHIP_R8A66597
 CONFIG_SUVD3
 CONFIG_SXNI855T
 CONFIG_SYSFLAGS_ADDR
@@ -2396,13 +2360,6 @@ CONFIG_SYS_DIRECT_FLASH_NFS
 CONFIG_SYS_DIRECT_FLASH_TFTP
 CONFIG_SYS_DISCOVER_PHY
 CONFIG_SYS_DIU_ADDR
-CONFIG_SYS_DM36x_PINMUX0
-CONFIG_SYS_DM36x_PINMUX1
-CONFIG_SYS_DM36x_PINMUX2
-CONFIG_SYS_DM36x_PINMUX3
-CONFIG_SYS_DM36x_PINMUX4
-CONFIG_SYS_DM36x_PLL1_PREDIV
-CONFIG_SYS_DM36x_PLL2_PREDIV
 CONFIG_SYS_DMA_USE_INTSRAM
 CONFIG_SYS_DP501_BASE
 CONFIG_SYS_DP501_DIFFERENTIAL
@@ -2564,8 +2521,6 @@ CONFIG_SYS_FORM_PMC
 CONFIG_SYS_FORM_PMC_XMC
 CONFIG_SYS_FORM_VME
 CONFIG_SYS_FORM_XMC
-CONFIG_SYS_FPGA0_BASE
-CONFIG_SYS_FPGA0_SIZE
 CONFIG_SYS_FPGAREG_DATE
 CONFIG_SYS_FPGAREG_DIPSW
 CONFIG_SYS_FPGAREG_FREQ
@@ -2883,8 +2838,6 @@ CONFIG_SYS_GAFR2_L_VAL
 CONFIG_SYS_GAFR2_U_VAL
 CONFIG_SYS_GAFR3_L_VAL
 CONFIG_SYS_GAFR3_U_VAL
-CONFIG_SYS_GBIT_MII1_BUSNAME
-CONFIG_SYS_GBIT_MII_BUSNAME
 CONFIG_SYS_GBL_DATA_OFFSET
 CONFIG_SYS_GBL_DATA_SIZE
 CONFIG_SYS_GIC400_ADDR
@@ -2925,9 +2878,7 @@ CONFIG_SYS_HALT_BEFOR_RAM_JUMP
 CONFIG_SYS_HELP_CMD_WIDTH
 CONFIG_SYS_HIGH
 CONFIG_SYS_HMI_BASE
-CONFIG_SYS_HOSTNAME
 CONFIG_SYS_HRCW_HIGH
-CONFIG_SYS_HRCW_HIGH_BASE
 CONFIG_SYS_HRCW_LOW
 CONFIG_SYS_HZ_CLOCK
 CONFIG_SYS_I2C
@@ -3209,7 +3160,6 @@ CONFIG_SYS_LOADS_BAUD_CHANGE
 CONFIG_SYS_LOAD_ADDR
 CONFIG_SYS_LOAD_ADDR2
 CONFIG_SYS_LOW
-CONFIG_SYS_LOWBOOT
 CONFIG_SYS_LOWMEM_BASE
 CONFIG_SYS_LOW_RES_TIMER
 CONFIG_SYS_LPAE_SDRAM_BASE
@@ -3244,10 +3194,6 @@ CONFIG_SYS_MAMR
 CONFIG_SYS_MAPLE
 CONFIG_SYS_MAPLE_MEM_PHYS
 CONFIG_SYS_MAPPED_RAM_BASE
-CONFIG_SYS_MARUBUN_IO
-CONFIG_SYS_MARUBUN_MRSHPC
-CONFIG_SYS_MARUBUN_MW1
-CONFIG_SYS_MARUBUN_MW2
 CONFIG_SYS_MASTER_CLOCK
 CONFIG_SYS_MATRIX_EBI0CSA_VAL
 CONFIG_SYS_MATRIX_EBICSA_VAL
@@ -3282,13 +3228,9 @@ CONFIG_SYS_MCKR_VAL
 CONFIG_SYS_MCLINK_MAX
 CONFIG_SYS_MCMEM0_VAL
 CONFIG_SYS_MCMEM1_VAL
-CONFIG_SYS_MDC1_PIN
 CONFIG_SYS_MDCNFG_VAL
-CONFIG_SYS_MDC_PIN
 CONFIG_SYS_MDIO1_OFFSET
-CONFIG_SYS_MDIO1_PIN
 CONFIG_SYS_MDIO_BASE_ADDR
-CONFIG_SYS_MDIO_PIN
 CONFIG_SYS_MDMRS_VAL
 CONFIG_SYS_MDREFR_VAL
 CONFIG_SYS_MECR_VAL
@@ -3499,7 +3441,6 @@ CONFIG_SYS_NOR1_CSPR_EARLY
 CONFIG_SYS_NOR1_CSPR_EXT
 CONFIG_SYS_NOR_AMASK
 CONFIG_SYS_NOR_AMASK_EARLY
-CONFIG_SYS_NOR_BR_PRELIM
 CONFIG_SYS_NOR_CSOR
 CONFIG_SYS_NOR_CSPR
 CONFIG_SYS_NOR_CSPR_EXT
@@ -3507,7 +3448,6 @@ CONFIG_SYS_NOR_FTIM0
 CONFIG_SYS_NOR_FTIM1
 CONFIG_SYS_NOR_FTIM2
 CONFIG_SYS_NOR_FTIM3
-CONFIG_SYS_NOR_OR_PRELIM
 CONFIG_SYS_NO_DCACHE
 CONFIG_SYS_NS16550_CLK
 CONFIG_SYS_NS16550_CLK_DIV
@@ -3584,7 +3524,6 @@ CONFIG_SYS_OR0_REMAP
 CONFIG_SYS_OR1_REMAP
 CONFIG_SYS_OR6_64M
 CONFIG_SYS_OR6_8M
-CONFIG_SYS_OR_TIMING_FLASH
 CONFIG_SYS_OR_TIMING_MRAM
 CONFIG_SYS_OSCIN_FREQ
 CONFIG_SYS_OSD_DH
@@ -3893,7 +3832,6 @@ CONFIG_SYS_POST_WATCHDOG
 CONFIG_SYS_POST_WORD_ADDR
 CONFIG_SYS_PPC_DDR_WIMGE
 CONFIG_SYS_PQSPAR
-CONFIG_SYS_PRELIM_OR_AM
 CONFIG_SYS_PROMPT_HUSH_PS2
 CONFIG_SYS_PSDPAR
 CONFIG_SYS_PSSR_VAL
@@ -3901,13 +3839,8 @@ CONFIG_SYS_PTCPAR
 CONFIG_SYS_PTDPAR
 CONFIG_SYS_PTV
 CONFIG_SYS_PUAPAR
-CONFIG_SYS_QE_FMAN_FW_IN_MMC
-CONFIG_SYS_QE_FMAN_FW_IN_NAND
-CONFIG_SYS_QE_FMAN_FW_IN_NOR
-CONFIG_SYS_QE_FMAN_FW_IN_REMOTE
 CONFIG_SYS_QE_FMAN_FW_LENGTH
 CONFIG_SYS_QE_FW_ADDR
-CONFIG_SYS_QE_FW_IN_SPIFLASH
 CONFIG_SYS_QMAN_CENA_BASE
 CONFIG_SYS_QMAN_CENA_SIZE
 CONFIG_SYS_QMAN_CINH_BASE
@@ -4008,13 +3941,11 @@ CONFIG_SYS_SDRAM_CTRL
 CONFIG_SYS_SDRAM_DRVSTRENGTH
 CONFIG_SYS_SDRAM_DRV_STRENGTH
 CONFIG_SYS_SDRAM_EMOD
-CONFIG_SYS_SDRAM_LOWER
 CONFIG_SYS_SDRAM_MODE
 CONFIG_SYS_SDRAM_SIZE
 CONFIG_SYS_SDRAM_SIZE0
 CONFIG_SYS_SDRAM_SIZE1
 CONFIG_SYS_SDRAM_SIZE_LAW
-CONFIG_SYS_SDRAM_UPPER
 CONFIG_SYS_SDRAM_VAL
 CONFIG_SYS_SDRAM_VAL1
 CONFIG_SYS_SDRAM_VAL10
@@ -4244,7 +4175,6 @@ CONFIG_SYS_USE_DATAFLASH
 CONFIG_SYS_USE_DATAFLASH_CS0
 CONFIG_SYS_USE_DATAFLASH_CS1
 CONFIG_SYS_USE_DATAFLASH_CS3
-CONFIG_SYS_USE_DSPLINK
 CONFIG_SYS_USE_FLASH
 CONFIG_SYS_USE_MAIN_OSCILLATOR
 CONFIG_SYS_USE_MMC
@@ -4350,12 +4280,10 @@ CONFIG_TSECV2
 CONFIG_TSECV2_1
 CONFIG_TSEC_TBI
 CONFIG_TSEC_TBICR_SETTINGS
-CONFIG_TUGE1
 CONFIG_TULIP
 CONFIG_TULIP_FIX_DAVICOM
 CONFIG_TULIP_SELECT_MEDIA
 CONFIG_TULIP_USE_IO
-CONFIG_TUXX1
 CONFIG_TWL6030_INPUT
 CONFIG_TWL6030_POWER
 CONFIG_TWR
@@ -4472,7 +4400,6 @@ CONFIG_USB_OTG
 CONFIG_USB_OTG_BLACKLIST_HUB
 CONFIG_USB_PHY_TYPE
 CONFIG_USB_PXA25X_SMALL
-CONFIG_USB_R8A66597_HCD
 CONFIG_USB_SERIALNO
 CONFIG_USB_TI_CPPI_DMA
 CONFIG_USB_TTY
@@ -4512,7 +4439,6 @@ CONFIG_VIDEO_STD_TIMINGS
 CONFIG_VIDEO_VCXK
 CONFIG_VID_FLS_ENV
 CONFIG_VM86
-CONFIG_VME8349
 CONFIG_VOIPAC_LCD
 CONFIG_VOL_MONITOR_INA220
 CONFIG_VOL_MONITOR_IR36021_READ
@@ -4549,9 +4475,7 @@ CONFIG_YAFFS_UNICODE
 CONFIG_YAFFS_UTIL
 CONFIG_YAFFS_WINCE
 CONFIG_YELLOW_LED
-CONFIG_ZLIB
 CONFIG_ZLT
 CONFIG_ZM7300
-CONFIG_ZYNQMP_EEPROM
 CONFIG_ZYNQ_HISPD_BROKEN
 CONFIG_eTSEC_MDIO_BUS
index 6a6c83bf3368dfb48fa3a2a846d11002dcb45158..fbb236676c70c08acf9c57af9ef35442caec44a5 100644 (file)
@@ -673,7 +673,12 @@ class Builder:
         environment = {}
         if os.path.exists(done_file):
             with open(done_file, 'r') as fd:
-                return_code = int(fd.readline())
+                try:
+                    return_code = int(fd.readline())
+                except ValueError:
+                    # The file may be empty due to running out of disk space.
+                    # Try a rebuild
+                    return_code = 1
                 err_lines = []
                 err_file = self.GetErrFile(commit_upto, target)
                 if os.path.exists(err_file):
index 08b32ba87dd512a1f5377d24d679dd97731427cd..ff3ec5f3f2b914752114f91c7518db0865c1973c 100644 (file)
@@ -14,6 +14,8 @@
 #define HEADER_VERSION_V1      0x1
 /* default option : bit0 => no signature */
 #define HEADER_DEFAULT_OPTION  (cpu_to_le32(0x00000001))
+/* default binary type for U-Boot */
+#define HEADER_TYPE_UBOOT      (cpu_to_le32(0x00000000))
 
 struct stm32_header {
        uint32_t magic_number;
@@ -29,7 +31,8 @@ struct stm32_header {
        uint32_t option_flags;
        uint32_t ecdsa_algorithm;
        uint32_t ecdsa_public_key[64 / 4];
-       uint32_t padding[84 / 4];
+       uint32_t padding[83 / 4];
+       uint32_t binary_type;
 };
 
 static struct stm32_header stm32image_header;
@@ -43,6 +46,7 @@ static void stm32image_default_header(struct stm32_header *ptr)
        ptr->header_version[VER_MAJOR_IDX] = HEADER_VERSION_V1;
        ptr->option_flags = HEADER_DEFAULT_OPTION;
        ptr->ecdsa_algorithm = 1;
+       ptr->binary_type = HEADER_TYPE_UBOOT;
 }
 
 static uint32_t stm32image_checksum(void *start, uint32_t len)
@@ -112,6 +116,8 @@ static void stm32image_print_header(const void *ptr)
               le32_to_cpu(stm32hdr->image_checksum));
        printf("Option     : 0x%08x\n",
               le32_to_cpu(stm32hdr->option_flags));
+       printf("BinaryType : 0x%08x\n",
+              le32_to_cpu(stm32hdr->binary_type));
 }
 
 static void stm32image_set_header(void *ptr, struct stat *sbuf, int ifd,