Commit 77c07e7ed36cae250a3562ee4bed0fa537960354
Exists in
smarc_8mq_lf_v2020.04
and in
11 other branches
Merge tag 'fsl-qoriq-for-v2019.04-rc1' of git://git.denx.de/u-boot-fsl-qoriq
Add TFA boot flow for more boards Add TFA boot defconfig for ls1088a and ls2088a. Add dts fixup for PCIe endpoint and root complex.
Showing 48 changed files Side-by-side Diff
- arch/arm/cpu/armv8/fsl-layerscape/Kconfig
- arch/arm/cpu/armv8/fsl-layerscape/cpu.c
- arch/arm/cpu/armv8/fsl-layerscape/fdt.c
- arch/arm/cpu/armv8/fsl-layerscape/soc.c
- arch/arm/dts/fsl-ls2088a-rdb-qspi.dts
- arch/arm/dts/ls1021a-iot.dtsi
- arch/arm/dts/ls1021a-qds.dtsi
- arch/arm/dts/ls1021a-twr.dtsi
- arch/arm/include/asm/arch-fsl-layerscape/fsl_icid.h
- arch/arm/include/asm/arch-fsl-layerscape/immap_lsch2.h
- arch/arm/include/asm/arch-fsl-layerscape/soc.h
- board/freescale/ls1046aqds/eth.c
- board/freescale/ls1088a/MAINTAINERS
- board/freescale/ls1088a/ddr.c
- board/freescale/ls1088a/ls1088a.c
- board/freescale/ls2080a/ls2080a.c
- board/freescale/ls2080aqds/MAINTAINERS
- board/freescale/ls2080aqds/ddr.c
- board/freescale/ls2080aqds/ls2080aqds.c
- board/freescale/ls2080ardb/MAINTAINERS
- board/freescale/ls2080ardb/ddr.c
- board/freescale/ls2080ardb/ls2080ardb.c
- configs/ls1043aqds_tfa_defconfig
- configs/ls1043ardb_tfa_defconfig
- configs/ls1046aqds_tfa_defconfig
- configs/ls1046ardb_tfa_defconfig
- configs/ls1088aqds_tfa_defconfig
- configs/ls1088ardb_tfa_SECURE_BOOT_defconfig
- configs/ls1088ardb_tfa_defconfig
- configs/ls2088aqds_tfa_defconfig
- configs/ls2088ardb_tfa_SECURE_BOOT_defconfig
- configs/ls2088ardb_tfa_defconfig
- drivers/misc/fsl_ifc.c
- drivers/mmc/fsl_esdhc.c
- drivers/net/fsl-mc/mc.c
- drivers/pci/pcie_layerscape.c
- drivers/pci/pcie_layerscape.h
- drivers/pci/pcie_layerscape_fixup.c
- include/configs/ls1043a_common.h
- include/configs/ls1088a_common.h
- include/configs/ls1088aqds.h
- include/configs/ls1088ardb.h
- include/configs/ls2080a_common.h
- include/configs/ls2080aqds.h
- include/configs/ls2080ardb.h
- include/environment.h
- include/fsl-mc/fsl_mc.h
- include/mmc.h
arch/arm/cpu/armv8/fsl-layerscape/Kconfig
... | ... | @@ -89,7 +89,7 @@ |
89 | 89 | config ARCH_LS1088A |
90 | 90 | bool |
91 | 91 | select ARMV8_SET_SMPEN |
92 | - select ARM_ERRATA_855873 | |
92 | + select ARM_ERRATA_855873 if !TFABOOT | |
93 | 93 | select FSL_LSCH3 |
94 | 94 | select SYS_FSL_SRDS_1 |
95 | 95 | select SYS_HAS_SERDES |
... | ... | @@ -98,11 +98,11 @@ |
98 | 98 | select SYS_FSL_DDR_VER_50 |
99 | 99 | select SYS_FSL_EC1 |
100 | 100 | select SYS_FSL_EC2 |
101 | - select SYS_FSL_ERRATUM_A009803 | |
102 | - select SYS_FSL_ERRATUM_A009942 | |
103 | - select SYS_FSL_ERRATUM_A010165 | |
104 | - select SYS_FSL_ERRATUM_A008511 | |
105 | - select SYS_FSL_ERRATUM_A008850 | |
101 | + select SYS_FSL_ERRATUM_A009803 if !TFABOOT | |
102 | + select SYS_FSL_ERRATUM_A009942 if !TFABOOT | |
103 | + select SYS_FSL_ERRATUM_A010165 if !TFABOOT | |
104 | + select SYS_FSL_ERRATUM_A008511 if !TFABOOT | |
105 | + select SYS_FSL_ERRATUM_A008850 if !TFABOOT | |
106 | 106 | select SYS_FSL_ERRATUM_A009007 |
107 | 107 | select SYS_FSL_HAS_CCI400 |
108 | 108 | select SYS_FSL_HAS_DDR4 |
109 | 109 | |
110 | 110 | |
... | ... | @@ -145,20 +145,20 @@ |
145 | 145 | select SYS_FSL_SRDS_2 |
146 | 146 | select FSL_TZASC_1 |
147 | 147 | select FSL_TZASC_2 |
148 | - select SYS_FSL_ERRATUM_A008336 | |
149 | - select SYS_FSL_ERRATUM_A008511 | |
150 | - select SYS_FSL_ERRATUM_A008514 | |
148 | + select SYS_FSL_ERRATUM_A008336 if !TFABOOT | |
149 | + select SYS_FSL_ERRATUM_A008511 if !TFABOOT | |
150 | + select SYS_FSL_ERRATUM_A008514 if !TFABOOT | |
151 | 151 | select SYS_FSL_ERRATUM_A008585 |
152 | 152 | select SYS_FSL_ERRATUM_A008997 |
153 | 153 | select SYS_FSL_ERRATUM_A009007 |
154 | 154 | select SYS_FSL_ERRATUM_A009008 |
155 | 155 | select SYS_FSL_ERRATUM_A009635 |
156 | - select SYS_FSL_ERRATUM_A009663 | |
156 | + select SYS_FSL_ERRATUM_A009663 if !TFABOOT | |
157 | 157 | select SYS_FSL_ERRATUM_A009798 |
158 | 158 | select SYS_FSL_ERRATUM_A009801 |
159 | - select SYS_FSL_ERRATUM_A009803 | |
160 | - select SYS_FSL_ERRATUM_A009942 | |
161 | - select SYS_FSL_ERRATUM_A010165 | |
159 | + select SYS_FSL_ERRATUM_A009803 if !TFABOOT | |
160 | + select SYS_FSL_ERRATUM_A009942 if !TFABOOT | |
161 | + select SYS_FSL_ERRATUM_A010165 if !TFABOOT | |
162 | 162 | select SYS_FSL_ERRATUM_A009203 |
163 | 163 | select ARCH_EARLY_INIT_R |
164 | 164 | select BOARD_EARLY_INIT_F |
arch/arm/cpu/armv8/fsl-layerscape/cpu.c
... | ... | @@ -51,7 +51,9 @@ |
51 | 51 | CPU_TYPE_ENTRY(LS2081A, LS2081A, 8), |
52 | 52 | CPU_TYPE_ENTRY(LS2041A, LS2041A, 4), |
53 | 53 | CPU_TYPE_ENTRY(LS1043A, LS1043A, 4), |
54 | + CPU_TYPE_ENTRY(LS1043A, LS1043A_P23, 4), | |
54 | 55 | CPU_TYPE_ENTRY(LS1023A, LS1023A, 2), |
56 | + CPU_TYPE_ENTRY(LS1023A, LS1023A_P23, 2), | |
55 | 57 | CPU_TYPE_ENTRY(LS1046A, LS1046A, 4), |
56 | 58 | CPU_TYPE_ENTRY(LS1026A, LS1026A, 2), |
57 | 59 | CPU_TYPE_ENTRY(LS2040A, LS2040A, 4), |
... | ... | @@ -675,7 +677,7 @@ |
675 | 677 | break; |
676 | 678 | case RCW_SRC_EMMC_VAL: |
677 | 679 | /* RCW SRC EMMC */ |
678 | - src = BOOT_SOURCE_SD_MMC2; | |
680 | + src = BOOT_SOURCE_SD_MMC; | |
679 | 681 | break; |
680 | 682 | case RCW_SRC_I2C1_VAL: |
681 | 683 | /* RCW SRC I2C1 Extended */ |
arch/arm/cpu/armv8/fsl-layerscape/fdt.c
arch/arm/cpu/armv8/fsl-layerscape/soc.c
... | ... | @@ -684,7 +684,7 @@ |
684 | 684 | #endif |
685 | 685 | |
686 | 686 | #ifdef CONFIG_TFABOOT |
687 | -#define MAX_BOOTCMD_SIZE 256 | |
687 | +#define MAX_BOOTCMD_SIZE 512 | |
688 | 688 | |
689 | 689 | int fsl_setenv_bootcmd(void) |
690 | 690 | { |
... | ... | @@ -812,6 +812,17 @@ |
812 | 812 | fsl_setenv_bootcmd(); |
813 | 813 | fsl_setenv_mcinitcmd(); |
814 | 814 | } |
815 | + | |
816 | + /* | |
817 | + * If the boot mode is secure, default environment is not present then | |
818 | + * setenv command needs to be run by default | |
819 | + */ | |
820 | +#ifdef CONFIG_CHAIN_OF_TRUST | |
821 | + if ((fsl_check_boot_mode_secure() == 1)) { | |
822 | + fsl_setenv_bootcmd(); | |
823 | + fsl_setenv_mcinitcmd(); | |
824 | + } | |
825 | +#endif | |
815 | 826 | #endif |
816 | 827 | #ifdef CONFIG_QSPI_AHB_INIT |
817 | 828 | qspi_ahb_init(); |
arch/arm/dts/fsl-ls2088a-rdb-qspi.dts
arch/arm/dts/ls1021a-iot.dtsi
... | ... | @@ -12,9 +12,9 @@ |
12 | 12 | model = "LS1021A IOT Board"; |
13 | 13 | |
14 | 14 | aliases { |
15 | - enet2_rgmii_phy = &rgmii_phy1; | |
16 | - enet0_sgmii_phy = &sgmii_phy2; | |
17 | - enet1_sgmii_phy = &sgmii_phy0; | |
15 | + enet2-rgmii-phy = &rgmii_phy1; | |
16 | + enet0-sgmii-phy = &sgmii_phy2; | |
17 | + enet1-sgmii-phy = &sgmii_phy0; | |
18 | 18 | spi0 = &qspi; |
19 | 19 | spi1 = &dspi1; |
20 | 20 | }; |
arch/arm/dts/ls1021a-qds.dtsi
... | ... | @@ -11,11 +11,11 @@ |
11 | 11 | model = "LS1021A QDS Board"; |
12 | 12 | |
13 | 13 | aliases { |
14 | - enet0_rgmii_phy = &rgmii_phy1; | |
15 | - enet1_rgmii_phy = &rgmii_phy2; | |
16 | - enet2_rgmii_phy = &rgmii_phy3; | |
17 | - enet0_sgmii_phy = &sgmii_phy1c; | |
18 | - enet1_sgmii_phy = &sgmii_phy1d; | |
14 | + enet0-rgmii-phy = &rgmii_phy1; | |
15 | + enet1-rgmii-phy = &rgmii_phy2; | |
16 | + enet2-rgmii-phy = &rgmii_phy3; | |
17 | + enet0-sgmii-phy = &sgmii_phy1c; | |
18 | + enet1-sgmii-phy = &sgmii_phy1d; | |
19 | 19 | spi0 = &qspi; |
20 | 20 | spi1 = &dspi0; |
21 | 21 | }; |
arch/arm/dts/ls1021a-twr.dtsi
... | ... | @@ -11,9 +11,9 @@ |
11 | 11 | model = "LS1021A TWR Board"; |
12 | 12 | |
13 | 13 | aliases { |
14 | - enet2_rgmii_phy = &rgmii_phy1; | |
15 | - enet0_sgmii_phy = &sgmii_phy2; | |
16 | - enet1_sgmii_phy = &sgmii_phy0; | |
14 | + enet2-rgmii-phy = &rgmii_phy1; | |
15 | + enet0-sgmii-phy = &sgmii_phy2; | |
16 | + enet1-sgmii-phy = &sgmii_phy0; | |
17 | 17 | spi0 = &qspi; |
18 | 18 | spi1 = &dspi1; |
19 | 19 | }; |
arch/arm/include/asm/arch-fsl-layerscape/fsl_icid.h
... | ... | @@ -55,7 +55,11 @@ |
55 | 55 | CONFIG_SYS_FSL_ESDHC_ADDR) |
56 | 56 | |
57 | 57 | #define SET_QDMA_ICID(compat, streamid) \ |
58 | - SET_SCFG_ICID(compat, streamid, dma_icid,\ | |
58 | + SET_ICID_ENTRY(compat, streamid, (1 << 31) | (streamid), \ | |
59 | + QDMA_BASE_ADDR + QMAN_CQSIDR_REG, \ | |
60 | + QDMA_BASE_ADDR), \ | |
61 | + SET_ICID_ENTRY(NULL, streamid, (1 << 31) | (streamid), \ | |
62 | + QDMA_BASE_ADDR + QMAN_CQSIDR_REG + 4, \ | |
59 | 63 | QDMA_BASE_ADDR) |
60 | 64 | |
61 | 65 | #define SET_EDMA_ICID(streamid) \ |
arch/arm/include/asm/arch-fsl-layerscape/immap_lsch2.h
... | ... | @@ -94,6 +94,7 @@ |
94 | 94 | #define AHCI_BASE_ADDR (CONFIG_SYS_IMMR + 0x02200000) |
95 | 95 | |
96 | 96 | #define QDMA_BASE_ADDR (CONFIG_SYS_IMMR + 0x07380000) |
97 | +#define QMAN_CQSIDR_REG 0x20a80 | |
97 | 98 | |
98 | 99 | #define CONFIG_SYS_PCIE1_PHYS_ADDR 0x4000000000ULL |
99 | 100 | #define CONFIG_SYS_PCIE2_PHYS_ADDR 0x4800000000ULL |
arch/arm/include/asm/arch-fsl-layerscape/soc.h
... | ... | @@ -80,6 +80,9 @@ |
80 | 80 | #define SVR_LS1012A 0x870400 |
81 | 81 | #define SVR_LS1043A 0x879200 |
82 | 82 | #define SVR_LS1023A 0x879208 |
83 | +/* LS1043A/LS1023A 23x23 package silicon has different value of VAR_PER */ | |
84 | +#define SVR_LS1043A_P23 0x879202 | |
85 | +#define SVR_LS1023A_P23 0x87920A | |
83 | 86 | #define SVR_LS1046A 0x870700 |
84 | 87 | #define SVR_LS1026A 0x870708 |
85 | 88 | #define SVR_LS1048A 0x870320 |
board/freescale/ls1046aqds/eth.c
1 | 1 | // SPDX-License-Identifier: GPL-2.0+ |
2 | 2 | /* |
3 | 3 | * Copyright 2016 Freescale Semiconductor, Inc. |
4 | + * Copyright 2018 NXP | |
4 | 5 | */ |
5 | 6 | |
6 | 7 | #include <common.h> |
... | ... | @@ -153,6 +154,9 @@ |
153 | 154 | enum fm_port port, int offset) |
154 | 155 | { |
155 | 156 | struct fixed_link f_link; |
157 | + const u32 *handle; | |
158 | + const char *prop = NULL; | |
159 | + int off; | |
156 | 160 | |
157 | 161 | if (fm_info_get_enet_if(port) == PHY_INTERFACE_MODE_SGMII) { |
158 | 162 | switch (port) { |
... | ... | @@ -208,16 +212,27 @@ |
208 | 212 | "qsgmii"); |
209 | 213 | } else if (fm_info_get_enet_if(port) == PHY_INTERFACE_MODE_XGMII && |
210 | 214 | (port == FM1_10GEC1 || port == FM1_10GEC2)) { |
211 | - /* XFI interface */ | |
212 | - f_link.phy_id = cpu_to_fdt32(port); | |
213 | - f_link.duplex = cpu_to_fdt32(1); | |
214 | - f_link.link_speed = cpu_to_fdt32(10000); | |
215 | - f_link.pause = 0; | |
216 | - f_link.asym_pause = 0; | |
217 | - /* no PHY for XFI */ | |
218 | - fdt_delprop(fdt, offset, "phy-handle"); | |
219 | - fdt_setprop(fdt, offset, "fixed-link", &f_link, sizeof(f_link)); | |
220 | - fdt_setprop_string(fdt, offset, "phy-connection-type", "xgmii"); | |
215 | + handle = fdt_getprop(fdt, offset, "phy-handle", NULL); | |
216 | + prop = NULL; | |
217 | + if (handle) { | |
218 | + off = fdt_node_offset_by_phandle(fdt, | |
219 | + fdt32_to_cpu(*handle)); | |
220 | + prop = fdt_getprop(fdt, off, "backplane-mode", NULL); | |
221 | + } | |
222 | + if (!prop || strcmp(prop, "10gbase-kr")) { | |
223 | + /* XFI interface */ | |
224 | + f_link.phy_id = cpu_to_fdt32(port); | |
225 | + f_link.duplex = cpu_to_fdt32(1); | |
226 | + f_link.link_speed = cpu_to_fdt32(10000); | |
227 | + f_link.pause = 0; | |
228 | + f_link.asym_pause = 0; | |
229 | + /* no PHY for XFI */ | |
230 | + fdt_delprop(fdt, offset, "phy-handle"); | |
231 | + fdt_setprop(fdt, offset, "fixed-link", &f_link, | |
232 | + sizeof(f_link)); | |
233 | + fdt_setprop_string(fdt, offset, "phy-connection-type", | |
234 | + "xgmii"); | |
235 | + } | |
221 | 236 | } |
222 | 237 | } |
223 | 238 |
board/freescale/ls1088a/MAINTAINERS
1 | 1 | LS1088ARDB BOARD |
2 | 2 | M: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com> |
3 | 3 | M: Ashish Kumar <Ashish.Kumar@nxp.com> |
4 | +M: Rajesh Bhagat <rajesh.bhagat@nxp.com> | |
4 | 5 | S: Maintained |
5 | 6 | F: board/freescale/ls1088a/ |
6 | 7 | F: include/configs/ls1088ardb.h |
7 | 8 | F: configs/ls1088ardb_qspi_defconfig |
8 | 9 | F: configs/ls1088ardb_sdcard_qspi_defconfig |
10 | +F: configs/ls1088ardb_tfa_defconfig | |
11 | +F: configs/ls1088ardb_tfa_SECURE_BOOT_defconfig | |
9 | 12 | |
10 | 13 | LS1088AQDS BOARD |
11 | 14 | M: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com> |
12 | 15 | M: Ashish Kumar <Ashish.Kumar@nxp.com> |
16 | +M: Rajesh Bhagat <rajesh.bhagat@nxp.com> | |
13 | 17 | S: Maintained |
14 | 18 | F: board/freescale/ls1088a/ |
15 | 19 | F: include/configs/ls1088aqds.h |
... | ... | @@ -17,6 +21,7 @@ |
17 | 21 | F: configs/ls1088aqds_sdcard_qspi_defconfig |
18 | 22 | F: configs/ls1088aqds_defconfig |
19 | 23 | F: configs/ls1088aqds_sdcard_ifc_defconfig |
24 | +F: configs/ls1088aqds_tfa_defconfig | |
20 | 25 | |
21 | 26 | LS1088AQDS_QSPI_SECURE_BOOT BOARD |
22 | 27 | M: Udit Agarwal <udit.agarwal@nxp.com> |
board/freescale/ls1088a/ddr.c
... | ... | @@ -111,7 +111,17 @@ |
111 | 111 | DDR_CDR2_VREF_TRAIN_EN | DDR_CDR2_VREF_RANGE_2; |
112 | 112 | } |
113 | 113 | |
114 | +#ifdef CONFIG_TFABOOT | |
115 | +int fsl_initdram(void) | |
116 | +{ | |
117 | + gd->ram_size = tfa_get_dram_size(); | |
114 | 118 | |
119 | + if (!gd->ram_size) | |
120 | + gd->ram_size = fsl_ddr_sdram_size(); | |
121 | + | |
122 | + return 0; | |
123 | +} | |
124 | +#else | |
115 | 125 | int fsl_initdram(void) |
116 | 126 | { |
117 | 127 | puts("Initializing DDR....using SPD\n"); |
... | ... | @@ -123,4 +133,5 @@ |
123 | 133 | #endif |
124 | 134 | return 0; |
125 | 135 | } |
136 | +#endif /* CONFIG_TFABOOT */ |
board/freescale/ls1088a/ls1088a.c
... | ... | @@ -28,6 +28,121 @@ |
28 | 28 | |
29 | 29 | DECLARE_GLOBAL_DATA_PTR; |
30 | 30 | |
31 | +#ifdef CONFIG_TARGET_LS1088AQDS | |
32 | +#ifdef CONFIG_TFABOOT | |
33 | +struct ifc_regs ifc_cfg_ifc_nor_boot[CONFIG_SYS_FSL_IFC_BANK_COUNT] = { | |
34 | + { | |
35 | + "nor0", | |
36 | + CONFIG_SYS_NOR0_CSPR_EARLY, | |
37 | + CONFIG_SYS_NOR0_CSPR_EXT, | |
38 | + CONFIG_SYS_NOR_AMASK, | |
39 | + CONFIG_SYS_NOR_CSOR, | |
40 | + { | |
41 | + CONFIG_SYS_NOR_FTIM0, | |
42 | + CONFIG_SYS_NOR_FTIM1, | |
43 | + CONFIG_SYS_NOR_FTIM2, | |
44 | + CONFIG_SYS_NOR_FTIM3 | |
45 | + }, | |
46 | + 0, | |
47 | + CONFIG_SYS_NOR0_CSPR, | |
48 | + 0, | |
49 | + }, | |
50 | + { | |
51 | + "nor1", | |
52 | + CONFIG_SYS_NOR1_CSPR_EARLY, | |
53 | + CONFIG_SYS_NOR0_CSPR_EXT, | |
54 | + CONFIG_SYS_NOR_AMASK_EARLY, | |
55 | + CONFIG_SYS_NOR_CSOR, | |
56 | + { | |
57 | + CONFIG_SYS_NOR_FTIM0, | |
58 | + CONFIG_SYS_NOR_FTIM1, | |
59 | + CONFIG_SYS_NOR_FTIM2, | |
60 | + CONFIG_SYS_NOR_FTIM3 | |
61 | + }, | |
62 | + 0, | |
63 | + CONFIG_SYS_NOR1_CSPR, | |
64 | + CONFIG_SYS_NOR_AMASK, | |
65 | + }, | |
66 | + { | |
67 | + "nand", | |
68 | + CONFIG_SYS_NAND_CSPR, | |
69 | + CONFIG_SYS_NAND_CSPR_EXT, | |
70 | + CONFIG_SYS_NAND_AMASK, | |
71 | + CONFIG_SYS_NAND_CSOR, | |
72 | + { | |
73 | + CONFIG_SYS_NAND_FTIM0, | |
74 | + CONFIG_SYS_NAND_FTIM1, | |
75 | + CONFIG_SYS_NAND_FTIM2, | |
76 | + CONFIG_SYS_NAND_FTIM3 | |
77 | + }, | |
78 | + }, | |
79 | + { | |
80 | + "fpga", | |
81 | + CONFIG_SYS_FPGA_CSPR, | |
82 | + CONFIG_SYS_FPGA_CSPR_EXT, | |
83 | + SYS_FPGA_AMASK, | |
84 | + CONFIG_SYS_FPGA_CSOR, | |
85 | + { | |
86 | + SYS_FPGA_CS_FTIM0, | |
87 | + SYS_FPGA_CS_FTIM1, | |
88 | + SYS_FPGA_CS_FTIM2, | |
89 | + SYS_FPGA_CS_FTIM3 | |
90 | + }, | |
91 | + 0, | |
92 | + SYS_FPGA_CSPR_FINAL, | |
93 | + 0, | |
94 | + } | |
95 | +}; | |
96 | + | |
97 | +struct ifc_regs ifc_cfg_qspi_nor_boot[CONFIG_SYS_FSL_IFC_BANK_COUNT] = { | |
98 | + { | |
99 | + "nand", | |
100 | + CONFIG_SYS_NAND_CSPR, | |
101 | + CONFIG_SYS_NAND_CSPR_EXT, | |
102 | + CONFIG_SYS_NAND_AMASK, | |
103 | + CONFIG_SYS_NAND_CSOR, | |
104 | + { | |
105 | + CONFIG_SYS_NAND_FTIM0, | |
106 | + CONFIG_SYS_NAND_FTIM1, | |
107 | + CONFIG_SYS_NAND_FTIM2, | |
108 | + CONFIG_SYS_NAND_FTIM3 | |
109 | + }, | |
110 | + }, | |
111 | + { | |
112 | + "reserved", | |
113 | + }, | |
114 | + { | |
115 | + "fpga", | |
116 | + CONFIG_SYS_FPGA_CSPR, | |
117 | + CONFIG_SYS_FPGA_CSPR_EXT, | |
118 | + SYS_FPGA_AMASK, | |
119 | + CONFIG_SYS_FPGA_CSOR, | |
120 | + { | |
121 | + SYS_FPGA_CS_FTIM0, | |
122 | + SYS_FPGA_CS_FTIM1, | |
123 | + SYS_FPGA_CS_FTIM2, | |
124 | + SYS_FPGA_CS_FTIM3 | |
125 | + }, | |
126 | + 0, | |
127 | + SYS_FPGA_CSPR_FINAL, | |
128 | + 0, | |
129 | + } | |
130 | +}; | |
131 | + | |
132 | +void ifc_cfg_boot_info(struct ifc_regs_info *regs_info) | |
133 | +{ | |
134 | + enum boot_src src = get_boot_src(); | |
135 | + | |
136 | + if (src == BOOT_SOURCE_QSPI_NOR) | |
137 | + regs_info->regs = ifc_cfg_qspi_nor_boot; | |
138 | + else | |
139 | + regs_info->regs = ifc_cfg_ifc_nor_boot; | |
140 | + | |
141 | + regs_info->cs_size = CONFIG_SYS_FSL_IFC_BANK_COUNT; | |
142 | +} | |
143 | +#endif /* CONFIG_TFABOOT */ | |
144 | +#endif /* CONFIG_TARGET_LS1088AQDS */ | |
145 | + | |
31 | 146 | int board_early_init_f(void) |
32 | 147 | { |
33 | 148 | #if defined(CONFIG_SYS_I2C_EARLY_INIT) && defined(CONFIG_TARGET_LS1088AQDS) |
... | ... | @@ -88,6 +203,9 @@ |
88 | 203 | #if !defined(CONFIG_SPL_BUILD) |
89 | 204 | int checkboard(void) |
90 | 205 | { |
206 | +#ifdef CONFIG_TFABOOT | |
207 | + enum boot_src src = get_boot_src(); | |
208 | +#endif | |
91 | 209 | char buf[64]; |
92 | 210 | u8 sw; |
93 | 211 | static const char *const freq[] = {"100", "125", "156.25", |
94 | 212 | |
... | ... | @@ -117,9 +235,14 @@ |
117 | 235 | sw = QIXIS_READ(brdcfg[0]); |
118 | 236 | sw = (sw & QIXIS_LBMAP_MASK) >> QIXIS_LBMAP_SHIFT; |
119 | 237 | |
238 | +#ifdef CONFIG_TFABOOT | |
239 | + if (src == BOOT_SOURCE_SD_MMC) | |
240 | + puts("SD card\n"); | |
241 | +#else | |
120 | 242 | #ifdef CONFIG_SD_BOOT |
121 | 243 | puts("SD card\n"); |
122 | 244 | #endif |
245 | +#endif /* CONFIG_TFABOOT */ | |
123 | 246 | switch (sw) { |
124 | 247 | #ifdef CONFIG_TARGET_LS1088AQDS |
125 | 248 | case 0: |
... | ... | @@ -535,7 +658,8 @@ |
535 | 658 | return; |
536 | 659 | } |
537 | 660 | |
538 | - if ((get_mc_boot_status() == 0) && (get_dpl_apply_status() == 0)) | |
661 | + if (get_mc_boot_status() == 0 && | |
662 | + (is_lazy_dpl_addr_valid() || get_dpl_apply_status() == 0)) | |
539 | 663 | fdt_status_okay(fdt, offset); |
540 | 664 | else |
541 | 665 | fdt_status_fail(fdt, offset); |
... | ... | @@ -546,6 +670,10 @@ |
546 | 670 | void fsl_fdt_fixup_flash(void *fdt) |
547 | 671 | { |
548 | 672 | int offset; |
673 | +#ifdef CONFIG_TFABOOT | |
674 | + u32 __iomem *dcfg_ccsr = (u32 __iomem *)DCFG_BASE; | |
675 | + u32 val; | |
676 | +#endif | |
549 | 677 | |
550 | 678 | /* |
551 | 679 | * IFC-NOR and QSPI are muxed on SoC. |
... | ... | @@ -553,6 +681,37 @@ |
553 | 681 | * disable QSPI node in dts in case QSPI is not enabled. |
554 | 682 | */ |
555 | 683 | |
684 | +#ifdef CONFIG_TFABOOT | |
685 | + enum boot_src src = get_boot_src(); | |
686 | + bool disable_ifc = false; | |
687 | + | |
688 | + switch (src) { | |
689 | + case BOOT_SOURCE_IFC_NOR: | |
690 | + disable_ifc = false; | |
691 | + break; | |
692 | + case BOOT_SOURCE_QSPI_NOR: | |
693 | + disable_ifc = true; | |
694 | + break; | |
695 | + default: | |
696 | + val = in_le32(dcfg_ccsr + DCFG_RCWSR15 / 4); | |
697 | + if (DCFG_RCWSR15_IFCGRPABASE_QSPI == (val & (u32)0x3)) | |
698 | + disable_ifc = true; | |
699 | + break; | |
700 | + } | |
701 | + | |
702 | + if (disable_ifc) { | |
703 | + offset = fdt_path_offset(fdt, "/soc/ifc/nor"); | |
704 | + | |
705 | + if (offset < 0) | |
706 | + offset = fdt_path_offset(fdt, "/ifc/nor"); | |
707 | + } else { | |
708 | + offset = fdt_path_offset(fdt, "/soc/quadspi"); | |
709 | + | |
710 | + if (offset < 0) | |
711 | + offset = fdt_path_offset(fdt, "/quadspi"); | |
712 | + } | |
713 | + | |
714 | +#else | |
556 | 715 | #ifdef CONFIG_FSL_QSPI |
557 | 716 | offset = fdt_path_offset(fdt, "/soc/ifc/nor"); |
558 | 717 | |
... | ... | @@ -564,6 +723,7 @@ |
564 | 723 | if (offset < 0) |
565 | 724 | offset = fdt_path_offset(fdt, "/quadspi"); |
566 | 725 | #endif |
726 | +#endif | |
567 | 727 | if (offset < 0) |
568 | 728 | return; |
569 | 729 | |
... | ... | @@ -613,4 +773,38 @@ |
613 | 773 | } |
614 | 774 | #endif |
615 | 775 | #endif /* defined(CONFIG_SPL_BUILD) */ |
776 | + | |
777 | +#ifdef CONFIG_TFABOOT | |
778 | +#ifdef CONFIG_MTD_NOR_FLASH | |
779 | +int is_flash_available(void) | |
780 | +{ | |
781 | + char *env_hwconfig = env_get("hwconfig"); | |
782 | + enum boot_src src = get_boot_src(); | |
783 | + int is_nor_flash_available = 1; | |
784 | + | |
785 | + switch (src) { | |
786 | + case BOOT_SOURCE_IFC_NOR: | |
787 | + is_nor_flash_available = 1; | |
788 | + break; | |
789 | + case BOOT_SOURCE_QSPI_NOR: | |
790 | + is_nor_flash_available = 0; | |
791 | + break; | |
792 | + /* | |
793 | + * In Case of SD boot,if qspi is defined in env_hwconfig | |
794 | + * disable nor flash probe. | |
795 | + */ | |
796 | + default: | |
797 | + if (hwconfig_f("qspi", env_hwconfig)) | |
798 | + is_nor_flash_available = 0; | |
799 | + break; | |
800 | + } | |
801 | + return is_nor_flash_available; | |
802 | +} | |
803 | +#endif | |
804 | + | |
805 | +void *env_sf_get_env_addr(void) | |
806 | +{ | |
807 | + return (void *)(CONFIG_SYS_FSL_QSPI_BASE + CONFIG_ENV_OFFSET); | |
808 | +} | |
809 | +#endif |
board/freescale/ls2080a/ls2080a.c
... | ... | @@ -89,7 +89,8 @@ |
89 | 89 | return; |
90 | 90 | } |
91 | 91 | |
92 | - if ((get_mc_boot_status() == 0) && (get_dpl_apply_status() == 0)) | |
92 | + if (get_mc_boot_status() == 0 && | |
93 | + (is_lazy_dpl_addr_valid() || get_dpl_apply_status() == 0)) | |
93 | 94 | fdt_status_okay(fdt, offset); |
94 | 95 | else |
95 | 96 | fdt_status_fail(fdt, offset); |
... | ... | @@ -140,6 +141,13 @@ |
140 | 141 | #if defined(CONFIG_RESET_PHY_R) |
141 | 142 | void reset_phy(void) |
142 | 143 | { |
144 | +} | |
145 | +#endif | |
146 | + | |
147 | +#ifdef CONFIG_TFABOOT | |
148 | +void *env_sf_get_env_addr(void) | |
149 | +{ | |
150 | + return (void *)(CONFIG_SYS_FSL_QSPI_BASE1 + CONFIG_ENV_OFFSET); | |
143 | 151 | } |
144 | 152 | #endif |
board/freescale/ls2080aqds/MAINTAINERS
1 | 1 | LS2080A BOARD |
2 | 2 | M: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>, Priyanka Jain <priyanka.jain@nxp.com> |
3 | +M: Rajesh Bhagat <rajesh.bhagat@nxp.com> | |
3 | 4 | S: Maintained |
4 | 5 | F: board/freescale/ls2080aqds/ |
5 | 6 | F: board/freescale/ls2080a/ls2080aqds.c |
... | ... | @@ -8,6 +9,7 @@ |
8 | 9 | F: configs/ls2080aqds_nand_defconfig |
9 | 10 | F: configs/ls2080aqds_qspi_defconfig |
10 | 11 | F: configs/ls2080aqds_sdcard_defconfig |
12 | +F: configs/ls2088aqds_tfa_defconfig | |
11 | 13 | |
12 | 14 | LS2080A_SECURE_BOOT BOARD |
13 | 15 | #M: Saksham Jain <saksham.jain@nxp.freescale.com> |
board/freescale/ls2080aqds/ddr.c
... | ... | @@ -155,8 +155,19 @@ |
155 | 155 | } |
156 | 156 | } |
157 | 157 | |
158 | +#ifdef CONFIG_TFABOOT | |
158 | 159 | int fsl_initdram(void) |
159 | 160 | { |
161 | + gd->ram_size = tfa_get_dram_size(); | |
162 | + | |
163 | + if (!gd->ram_size) | |
164 | + gd->ram_size = fsl_ddr_sdram_size(); | |
165 | + | |
166 | + return 0; | |
167 | +} | |
168 | +#else | |
169 | +int fsl_initdram(void) | |
170 | +{ | |
160 | 171 | #if defined(CONFIG_SPL) && !defined(CONFIG_SPL_BUILD) |
161 | 172 | gd->ram_size = fsl_ddr_sdram_size(); |
162 | 173 | #else |
... | ... | @@ -167,4 +178,5 @@ |
167 | 178 | |
168 | 179 | return 0; |
169 | 180 | } |
181 | +#endif /* CONFIG_TFABOOT */ |
board/freescale/ls2080aqds/ls2080aqds.c
... | ... | @@ -294,7 +294,8 @@ |
294 | 294 | return; |
295 | 295 | } |
296 | 296 | |
297 | - if ((get_mc_boot_status() == 0) && (get_dpl_apply_status() == 0)) | |
297 | + if (get_mc_boot_status() == 0 && | |
298 | + (is_lazy_dpl_addr_valid() || get_dpl_apply_status() == 0)) | |
298 | 299 | fdt_status_okay(fdt, offset); |
299 | 300 | else |
300 | 301 | fdt_status_fail(fdt, offset); |
board/freescale/ls2080ardb/MAINTAINERS
... | ... | @@ -9,8 +9,11 @@ |
9 | 9 | |
10 | 10 | LS2088A_QSPI-boot BOARD |
11 | 11 | M: Priyanka Jain <priyanka.jain@nxp.com> |
12 | +M: Rajesh Bhagat <rajesh.bhagat@nxp.com> | |
12 | 13 | S: Maintained |
13 | 14 | F: configs/ls2088ardb_qspi_defconfig |
15 | +F: configs/ls2088ardb_tfa_defconfig | |
16 | +F: configs/ls2088ardb_tfa_SECURE_BOOT_defconfig | |
14 | 17 | |
15 | 18 | LS2081ARDB BOARD |
16 | 19 | M: Priyanka Jain <priyanka.jain@nxp.com> |
board/freescale/ls2080ardb/ddr.c
... | ... | @@ -160,8 +160,19 @@ |
160 | 160 | } |
161 | 161 | } |
162 | 162 | |
163 | +#ifdef CONFIG_TFABOOT | |
163 | 164 | int fsl_initdram(void) |
164 | 165 | { |
166 | + gd->ram_size = tfa_get_dram_size(); | |
167 | + | |
168 | + if (!gd->ram_size) | |
169 | + gd->ram_size = fsl_ddr_sdram_size(); | |
170 | + | |
171 | + return 0; | |
172 | +} | |
173 | +#else | |
174 | +int fsl_initdram(void) | |
175 | +{ | |
165 | 176 | #if defined(CONFIG_SPL) && !defined(CONFIG_SPL_BUILD) |
166 | 177 | gd->ram_size = fsl_ddr_sdram_size(); |
167 | 178 | #else |
... | ... | @@ -172,4 +183,5 @@ |
172 | 183 | |
173 | 184 | return 0; |
174 | 185 | } |
186 | +#endif /* CONFIG_TFABOOT */ |
board/freescale/ls2080ardb/ls2080ardb.c
... | ... | @@ -330,7 +330,8 @@ |
330 | 330 | return; |
331 | 331 | } |
332 | 332 | |
333 | - if ((get_mc_boot_status() == 0) && (get_dpl_apply_status() == 0)) | |
333 | + if (get_mc_boot_status() == 0 && | |
334 | + (is_lazy_dpl_addr_valid() || get_dpl_apply_status() == 0)) | |
334 | 335 | fdt_status_okay(fdt, offset); |
335 | 336 | else |
336 | 337 | fdt_status_fail(fdt, offset); |
337 | 338 | |
... | ... | @@ -346,12 +347,47 @@ |
346 | 347 | void fsl_fdt_fixup_flash(void *fdt) |
347 | 348 | { |
348 | 349 | int offset; |
350 | +#ifdef CONFIG_TFABOOT | |
351 | + u32 __iomem *dcfg_ccsr = (u32 __iomem *)DCFG_BASE; | |
352 | + u32 val; | |
353 | +#endif | |
349 | 354 | |
350 | 355 | /* |
351 | 356 | * IFC and QSPI are muxed on board. |
352 | 357 | * So disable IFC node in dts if QSPI is enabled or |
353 | 358 | * disable QSPI node in dts in case QSPI is not enabled. |
354 | 359 | */ |
360 | +#ifdef CONFIG_TFABOOT | |
361 | + enum boot_src src = get_boot_src(); | |
362 | + bool disable_ifc = false; | |
363 | + | |
364 | + switch (src) { | |
365 | + case BOOT_SOURCE_IFC_NOR: | |
366 | + disable_ifc = false; | |
367 | + break; | |
368 | + case BOOT_SOURCE_QSPI_NOR: | |
369 | + disable_ifc = true; | |
370 | + break; | |
371 | + default: | |
372 | + val = in_le32(dcfg_ccsr + DCFG_RCWSR15 / 4); | |
373 | + if (DCFG_RCWSR15_IFCGRPABASE_QSPI == (val & (u32)0x3)) | |
374 | + disable_ifc = true; | |
375 | + break; | |
376 | + } | |
377 | + | |
378 | + if (disable_ifc) { | |
379 | + offset = fdt_path_offset(fdt, "/soc/ifc"); | |
380 | + | |
381 | + if (offset < 0) | |
382 | + offset = fdt_path_offset(fdt, "/ifc"); | |
383 | + } else { | |
384 | + offset = fdt_path_offset(fdt, "/soc/quadspi"); | |
385 | + | |
386 | + if (offset < 0) | |
387 | + offset = fdt_path_offset(fdt, "/quadspi"); | |
388 | + } | |
389 | + | |
390 | +#else | |
355 | 391 | #ifdef CONFIG_FSL_QSPI |
356 | 392 | offset = fdt_path_offset(fdt, "/soc/ifc"); |
357 | 393 | |
... | ... | @@ -363,6 +399,8 @@ |
363 | 399 | if (offset < 0) |
364 | 400 | offset = fdt_path_offset(fdt, "/quadspi"); |
365 | 401 | #endif |
402 | +#endif | |
403 | + | |
366 | 404 | if (offset < 0) |
367 | 405 | return; |
368 | 406 |
configs/ls1043aqds_tfa_defconfig
configs/ls1043ardb_tfa_defconfig
configs/ls1046aqds_tfa_defconfig
configs/ls1046ardb_tfa_defconfig
... | ... | @@ -26,6 +26,7 @@ |
26 | 26 | 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)" |
27 | 27 | CONFIG_OF_CONTROL=y |
28 | 28 | CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1046a-rdb" |
29 | +CONFIG_ENV_IS_IN_MMC=y | |
29 | 30 | CONFIG_ENV_IS_IN_SPI_FLASH=y |
30 | 31 | CONFIG_DM=y |
31 | 32 | CONFIG_SATA_CEVA=y |
configs/ls1088aqds_tfa_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_TARGET_LS1088AQDS=y | |
3 | +CONFIG_SYS_TEXT_BASE=0x82000000 | |
4 | +CONFIG_TFABOOT=y | |
5 | +CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT=y | |
6 | +CONFIG_SEC_FIRMWARE_ARMV8_PSCI=y | |
7 | +CONFIG_QSPI_AHB_INIT=y | |
8 | +CONFIG_DISTRO_DEFAULTS=y | |
9 | +CONFIG_NR_DRAM_BANKS=2 | |
10 | +# CONFIG_SYS_MALLOC_F is not set | |
11 | +CONFIG_FIT_VERBOSE=y | |
12 | +CONFIG_OF_BOARD_SETUP=y | |
13 | +CONFIG_OF_STDOUT_VIA_ALIAS=y | |
14 | +CONFIG_SYS_EXTRA_OPTIONS="SYS_FSL_DDR4" | |
15 | +CONFIG_USE_BOOTARGS=y | |
16 | +CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 ramdisk_size=0x3000000 default_hugepagesz=2m hugepagesz=2m hugepages=256" | |
17 | +# CONFIG_USE_BOOTCOMMAND is not set | |
18 | +# CONFIG_DISPLAY_BOARDINFO is not set | |
19 | +CONFIG_DISPLAY_BOARDINFO_LATE=y | |
20 | +CONFIG_HUSH_PARSER=y | |
21 | +CONFIG_CMD_GREPENV=y | |
22 | +CONFIG_CMD_MEMTEST=y | |
23 | +CONFIG_CMD_I2C=y | |
24 | +CONFIG_CMD_MMC=y | |
25 | +CONFIG_CMD_SF=y | |
26 | +CONFIG_CMD_USB=y | |
27 | +# CONFIG_CMD_SETEXPR is not set | |
28 | +CONFIG_CMD_DHCP=y | |
29 | +CONFIG_CMD_PING=y | |
30 | +CONFIG_MP=y | |
31 | +CONFIG_OF_CONTROL=y | |
32 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1088a-qds" | |
33 | +CONFIG_ENV_IS_IN_FLASH=y | |
34 | +CONFIG_ENV_IS_IN_SPI_FLASH=y | |
35 | +CONFIG_ENV_IS_IN_NAND=y | |
36 | +CONFIG_ENV_IS_IN_MMC=y | |
37 | +CONFIG_NET_RANDOM_ETHADDR=y | |
38 | +CONFIG_DM=y | |
39 | +CONFIG_SCSI_AHCI=y | |
40 | +CONFIG_FSL_ESDHC=y | |
41 | +CONFIG_MTD_NOR_FLASH=y | |
42 | +CONFIG_FLASH_CFI_DRIVER=y | |
43 | +CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y | |
44 | +CONFIG_SYS_FLASH_CFI=y | |
45 | +CONFIG_DM_SPI_FLASH=y | |
46 | +CONFIG_SPI_FLASH=y | |
47 | +CONFIG_SPI_FLASH_SPANSION=y | |
48 | +CONFIG_FSL_SPI_ALIGNED_TXFIFO=y | |
49 | +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set | |
50 | +CONFIG_E1000=y | |
51 | +CONFIG_MII=y | |
52 | +CONFIG_PCI=y | |
53 | +CONFIG_DM_PCI=y | |
54 | +CONFIG_DM_PCI_COMPAT=y | |
55 | +CONFIG_PCIE_LAYERSCAPE=y | |
56 | +CONFIG_SYS_NS16550=y | |
57 | +CONFIG_SPI=y | |
58 | +CONFIG_DM_SPI=y | |
59 | +CONFIG_FSL_DSPI=y | |
60 | +CONFIG_FSL_QSPI=y | |
61 | +CONFIG_USB=y | |
62 | +CONFIG_DM_USB=y | |
63 | +CONFIG_USB_XHCI_HCD=y | |
64 | +CONFIG_USB_XHCI_DWC3=y | |
65 | +CONFIG_USB_DWC3=y | |
66 | +CONFIG_USB_STORAGE=y | |
67 | +CONFIG_USB_GADGET=y | |
68 | +CONFIG_EFI_LOADER_BOUNCE_BUFFER=y | |
69 | +CONFIG_BLK=y | |
70 | +CONFIG_DM_MMC=y |
configs/ls1088ardb_tfa_SECURE_BOOT_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_TARGET_LS1088ARDB=y | |
3 | +CONFIG_SYS_TEXT_BASE=0x82000000 | |
4 | +CONFIG_TFABOOT=y | |
5 | +CONFIG_SECURE_BOOT=y | |
6 | +CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT=y | |
7 | +CONFIG_SEC_FIRMWARE_ARMV8_PSCI=y | |
8 | +CONFIG_QSPI_AHB_INIT=y | |
9 | +CONFIG_DISTRO_DEFAULTS=y | |
10 | +CONFIG_NR_DRAM_BANKS=2 | |
11 | +# CONFIG_SYS_MALLOC_F is not set | |
12 | +CONFIG_FIT_VERBOSE=y | |
13 | +CONFIG_OF_BOARD_SETUP=y | |
14 | +CONFIG_OF_STDOUT_VIA_ALIAS=y | |
15 | +CONFIG_SYS_EXTRA_OPTIONS="SYS_FSL_DDR4" | |
16 | +CONFIG_USE_BOOTARGS=y | |
17 | +CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 ramdisk_size=0x3000000 default_hugepagesz=2m hugepagesz=2m hugepages=256" | |
18 | +# CONFIG_USE_BOOTCOMMAND is not set | |
19 | +CONFIG_MISC_INIT_R=y | |
20 | +# CONFIG_DISPLAY_BOARDINFO is not set | |
21 | +CONFIG_DISPLAY_BOARDINFO_LATE=y | |
22 | +CONFIG_CMD_GREPENV=y | |
23 | +CONFIG_CMD_MEMTEST=y | |
24 | +CONFIG_CMD_I2C=y | |
25 | +CONFIG_CMD_MMC=y | |
26 | +CONFIG_CMD_SF=y | |
27 | +CONFIG_CMD_USB=y | |
28 | +# CONFIG_CMD_SETEXPR is not set | |
29 | +CONFIG_MP=y | |
30 | +CONFIG_OF_CONTROL=y | |
31 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1088a-rdb" | |
32 | +CONFIG_ENV_IS_NOWHERE=y | |
33 | +CONFIG_NET_RANDOM_ETHADDR=y | |
34 | +CONFIG_DM=y | |
35 | +CONFIG_SCSI_AHCI=y | |
36 | +CONFIG_FSL_ESDHC=y | |
37 | +CONFIG_DM_SPI_FLASH=y | |
38 | +CONFIG_SPI_FLASH=y | |
39 | +CONFIG_SPI_FLASH_SPANSION=y | |
40 | +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set | |
41 | +CONFIG_E1000=y | |
42 | +CONFIG_MII=y | |
43 | +CONFIG_PCI=y | |
44 | +CONFIG_DM_PCI=y | |
45 | +CONFIG_DM_PCI_COMPAT=y | |
46 | +CONFIG_PCIE_LAYERSCAPE=y | |
47 | +CONFIG_SYS_NS16550=y | |
48 | +CONFIG_SPI=y | |
49 | +CONFIG_DM_SPI=y | |
50 | +CONFIG_FSL_DSPI=y | |
51 | +CONFIG_FSL_QSPI=y | |
52 | +CONFIG_USB=y | |
53 | +CONFIG_DM_USB=y | |
54 | +CONFIG_USB_XHCI_HCD=y | |
55 | +CONFIG_USB_XHCI_DWC3=y | |
56 | +CONFIG_USB_DWC3=y | |
57 | +CONFIG_USB_STORAGE=y | |
58 | +CONFIG_USB_GADGET=y | |
59 | +CONFIG_EFI_LOADER_BOUNCE_BUFFER=y | |
60 | +CONFIG_BLK=y | |
61 | +CONFIG_DM_MMC=y | |
62 | +CONFIG_RSA=y | |
63 | +CONFIG_SPL_RSA=y | |
64 | +CONFIG_RSA_SOFTWARE_EXP=y |
configs/ls1088ardb_tfa_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_TARGET_LS1088ARDB=y | |
3 | +CONFIG_SYS_TEXT_BASE=0x82000000 | |
4 | +CONFIG_TFABOOT=y | |
5 | +CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT=y | |
6 | +CONFIG_SEC_FIRMWARE_ARMV8_PSCI=y | |
7 | +CONFIG_QSPI_AHB_INIT=y | |
8 | +CONFIG_DISTRO_DEFAULTS=y | |
9 | +CONFIG_NR_DRAM_BANKS=2 | |
10 | +# CONFIG_SYS_MALLOC_F is not set | |
11 | +CONFIG_FIT_VERBOSE=y | |
12 | +CONFIG_OF_BOARD_SETUP=y | |
13 | +CONFIG_OF_STDOUT_VIA_ALIAS=y | |
14 | +CONFIG_SYS_EXTRA_OPTIONS="SYS_FSL_DDR4" | |
15 | +CONFIG_USE_BOOTARGS=y | |
16 | +CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 ramdisk_size=0x3000000 default_hugepagesz=2m hugepagesz=2m hugepages=256" | |
17 | +# CONFIG_USE_BOOTCOMMAND is not set | |
18 | +CONFIG_MISC_INIT_R=y | |
19 | +# CONFIG_DISPLAY_BOARDINFO is not set | |
20 | +CONFIG_DISPLAY_BOARDINFO_LATE=y | |
21 | +CONFIG_CMD_GREPENV=y | |
22 | +CONFIG_CMD_MEMTEST=y | |
23 | +CONFIG_CMD_I2C=y | |
24 | +CONFIG_CMD_MMC=y | |
25 | +CONFIG_CMD_SF=y | |
26 | +CONFIG_CMD_USB=y | |
27 | +# CONFIG_CMD_SETEXPR is not set | |
28 | +CONFIG_MP=y | |
29 | +CONFIG_OF_CONTROL=y | |
30 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-ls1088a-rdb" | |
31 | +CONFIG_ENV_IS_IN_SPI_FLASH=y | |
32 | +CONFIG_ENV_IS_IN_MMC=y | |
33 | +CONFIG_NET_RANDOM_ETHADDR=y | |
34 | +CONFIG_DM=y | |
35 | +CONFIG_SCSI_AHCI=y | |
36 | +CONFIG_FSL_ESDHC=y | |
37 | +CONFIG_DM_SPI_FLASH=y | |
38 | +CONFIG_SPI_FLASH=y | |
39 | +CONFIG_SPI_FLASH_SPANSION=y | |
40 | +CONFIG_FSL_SPI_ALIGNED_TXFIFO=y | |
41 | +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set | |
42 | +CONFIG_E1000=y | |
43 | +CONFIG_MII=y | |
44 | +CONFIG_PCI=y | |
45 | +CONFIG_DM_PCI=y | |
46 | +CONFIG_DM_PCI_COMPAT=y | |
47 | +CONFIG_PCIE_LAYERSCAPE=y | |
48 | +CONFIG_SYS_NS16550=y | |
49 | +CONFIG_SPI=y | |
50 | +CONFIG_DM_SPI=y | |
51 | +CONFIG_FSL_DSPI=y | |
52 | +CONFIG_FSL_QSPI=y | |
53 | +CONFIG_USB=y | |
54 | +CONFIG_DM_USB=y | |
55 | +CONFIG_USB_XHCI_HCD=y | |
56 | +CONFIG_USB_XHCI_DWC3=y | |
57 | +CONFIG_USB_DWC3=y | |
58 | +CONFIG_USB_STORAGE=y | |
59 | +CONFIG_USB_GADGET=y | |
60 | +CONFIG_EFI_LOADER_BOUNCE_BUFFER=y | |
61 | +CONFIG_BLK=y | |
62 | +CONFIG_DM_MMC=y |
configs/ls2088aqds_tfa_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_TARGET_LS2080AQDS=y | |
3 | +CONFIG_SYS_TEXT_BASE=0x82000000 | |
4 | +CONFIG_TFABOOT=y | |
5 | +CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT=y | |
6 | +CONFIG_SEC_FIRMWARE_ARMV8_PSCI=y | |
7 | +CONFIG_NR_DRAM_BANKS=3 | |
8 | +# CONFIG_SYS_MALLOC_F is not set | |
9 | +CONFIG_FIT_VERBOSE=y | |
10 | +CONFIG_OF_BOARD_SETUP=y | |
11 | +CONFIG_OF_STDOUT_VIA_ALIAS=y | |
12 | +CONFIG_BOOTDELAY=10 | |
13 | +CONFIG_USE_BOOTARGS=y | |
14 | +CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0500 ramdisk_size=0x2000000 default_hugepagesz=2m hugepagesz=2m hugepages=256" | |
15 | +# CONFIG_USE_BOOTCOMMAND is not set | |
16 | +CONFIG_CMD_IMLS=y | |
17 | +CONFIG_CMD_GREPENV=y | |
18 | +CONFIG_CMD_EEPROM=y | |
19 | +CONFIG_CMD_GPT=y | |
20 | +CONFIG_CMD_I2C=y | |
21 | +CONFIG_CMD_MMC=y | |
22 | +CONFIG_CMD_NAND=y | |
23 | +CONFIG_CMD_PCI=y | |
24 | +CONFIG_CMD_SF=y | |
25 | +CONFIG_CMD_USB=y | |
26 | +# CONFIG_CMD_SETEXPR is not set | |
27 | +CONFIG_CMD_CACHE=y | |
28 | +CONFIG_CMD_DATE=y | |
29 | +CONFIG_MP=y | |
30 | +# CONFIG_ISO_PARTITION is not set | |
31 | +CONFIG_OF_CONTROL=y | |
32 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-ls2080a-qds" | |
33 | +CONFIG_ENV_IS_IN_FLASH=y | |
34 | +CONFIG_ENV_IS_IN_SPI_FLASH=y | |
35 | +CONFIG_ENV_IS_IN_MMC=y | |
36 | +CONFIG_NET_RANDOM_ETHADDR=y | |
37 | +CONFIG_DM=y | |
38 | +CONFIG_FSL_CAAM=y | |
39 | +CONFIG_FSL_ESDHC=y | |
40 | +CONFIG_MTD_NOR_FLASH=y | |
41 | +CONFIG_FLASH_CFI_DRIVER=y | |
42 | +CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y | |
43 | +CONFIG_SYS_FLASH_CFI=y | |
44 | +CONFIG_DM_SPI_FLASH=y | |
45 | +CONFIG_PHYLIB=y | |
46 | +CONFIG_PHY_GIGE=y | |
47 | +CONFIG_E1000=y | |
48 | +CONFIG_MII=y | |
49 | +CONFIG_PCI=y | |
50 | +CONFIG_DM_PCI=y | |
51 | +CONFIG_DM_PCI_COMPAT=y | |
52 | +CONFIG_PCIE_LAYERSCAPE=y | |
53 | +CONFIG_SYS_NS16550=y | |
54 | +CONFIG_SPI=y | |
55 | +CONFIG_DM_SPI=y | |
56 | +CONFIG_FSL_DSPI=y | |
57 | +CONFIG_USB=y | |
58 | +CONFIG_DM_USB=y | |
59 | +CONFIG_USB_XHCI_HCD=y | |
60 | +CONFIG_USB_XHCI_DWC3=y | |
61 | +CONFIG_USB_STORAGE=y | |
62 | +CONFIG_EFI_LOADER_BOUNCE_BUFFER=y | |
63 | +CONFIG_BLK=y | |
64 | +CONFIG_DM_MMC=y |
configs/ls2088ardb_tfa_SECURE_BOOT_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_TARGET_LS2080ARDB=y | |
3 | +CONFIG_SYS_TEXT_BASE=0x82000000 | |
4 | +CONFIG_TFABOOT=y | |
5 | +CONFIG_SECURE_BOOT=y | |
6 | +CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT=y | |
7 | +CONFIG_QSPI_AHB_INIT=y | |
8 | +CONFIG_SEC_FIRMWARE_ARMV8_PSCI=y | |
9 | +CONFIG_NR_DRAM_BANKS=3 | |
10 | +# CONFIG_SYS_MALLOC_F is not set | |
11 | +CONFIG_FIT_VERBOSE=y | |
12 | +CONFIG_OF_BOARD_SETUP=y | |
13 | +CONFIG_OF_STDOUT_VIA_ALIAS=y | |
14 | +CONFIG_BOOTDELAY=10 | |
15 | +CONFIG_USE_BOOTARGS=y | |
16 | +CONFIG_BOOTARGS="console=ttyS1,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0600 ramdisk_size=0x2000000 default_hugepagesz=2m hugepagesz=2m hugepages=256" | |
17 | +# CONFIG_USE_BOOTCOMMAND is not set | |
18 | +CONFIG_MISC_INIT_R=y | |
19 | +CONFIG_CMD_IMLS=y | |
20 | +CONFIG_CMD_GREPENV=y | |
21 | +CONFIG_CMD_EEPROM=y | |
22 | +CONFIG_CMD_GPT=y | |
23 | +CONFIG_CMD_I2C=y | |
24 | +CONFIG_CMD_MMC=y | |
25 | +CONFIG_CMD_NAND=y | |
26 | +CONFIG_CMD_PCI=y | |
27 | +CONFIG_CMD_SF=y | |
28 | +CONFIG_CMD_USB=y | |
29 | +# CONFIG_CMD_SETEXPR is not set | |
30 | +CONFIG_CMD_CACHE=y | |
31 | +CONFIG_CMD_DATE=y | |
32 | +CONFIG_MP=y | |
33 | +CONFIG_OF_CONTROL=y | |
34 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-ls2080a-rdb" | |
35 | +CONFIG_ENV_IS_NOWHERE=y | |
36 | +CONFIG_NET_RANDOM_ETHADDR=y | |
37 | +CONFIG_DM=y | |
38 | +CONFIG_FSL_CAAM=y | |
39 | +CONFIG_FSL_ESDHC=y | |
40 | +CONFIG_MTD_NOR_FLASH=y | |
41 | +CONFIG_FLASH_CFI_DRIVER=y | |
42 | +CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y | |
43 | +CONFIG_SYS_FLASH_CFI=y | |
44 | +CONFIG_DM_SPI_FLASH=y | |
45 | +CONFIG_SPI_FLASH=y | |
46 | +CONFIG_SPI_FLASH_SPANSION=y | |
47 | + | |
48 | +CONFIG_PHYLIB=y | |
49 | +CONFIG_PHY_AQUANTIA=y | |
50 | +CONFIG_E1000=y | |
51 | +CONFIG_MII=y | |
52 | +CONFIG_PCI=y | |
53 | +CONFIG_DM_PCI=y | |
54 | +CONFIG_DM_PCI_COMPAT=y | |
55 | +CONFIG_PCIE_LAYERSCAPE=y | |
56 | +CONFIG_CONS_INDEX=2 | |
57 | +CONFIG_SYS_NS16550=y | |
58 | +CONFIG_SPI=y | |
59 | +CONFIG_DM_SPI=y | |
60 | +CONFIG_FSL_DSPI=y | |
61 | +CONFIG_FSL_QSPI=y | |
62 | +CONFIG_FSL_SPI_ALIGNED_TXFIFO=y | |
63 | + | |
64 | +CONFIG_USB=y | |
65 | +CONFIG_DM_USB=y | |
66 | +CONFIG_USB_XHCI_HCD=y | |
67 | +CONFIG_USB_XHCI_DWC3=y | |
68 | +CONFIG_USB_STORAGE=y | |
69 | +CONFIG_EFI_LOADER_BOUNCE_BUFFER=y | |
70 | +CONFIG_BLK=y | |
71 | +CONFIG_DM_MMC=y | |
72 | +CONFIG_RSA=y | |
73 | +CONFIG_SPL_RSA=y | |
74 | +CONFIG_RSA_SOFTWARE_EXP=y |
configs/ls2088ardb_tfa_defconfig
1 | +CONFIG_ARM=y | |
2 | +CONFIG_TARGET_LS2080ARDB=y | |
3 | +CONFIG_SYS_TEXT_BASE=0x82000000 | |
4 | +CONFIG_TFABOOT=y | |
5 | +CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT=y | |
6 | +CONFIG_QSPI_AHB_INIT=y | |
7 | +CONFIG_SEC_FIRMWARE_ARMV8_PSCI=y | |
8 | +CONFIG_NR_DRAM_BANKS=3 | |
9 | +# CONFIG_SYS_MALLOC_F is not set | |
10 | +CONFIG_FIT_VERBOSE=y | |
11 | +CONFIG_OF_BOARD_SETUP=y | |
12 | +CONFIG_OF_STDOUT_VIA_ALIAS=y | |
13 | +CONFIG_BOOTDELAY=10 | |
14 | +CONFIG_USE_BOOTARGS=y | |
15 | +CONFIG_BOOTARGS="console=ttyS1,115200 root=/dev/ram0 earlycon=uart8250,mmio,0x21c0600 ramdisk_size=0x2000000 default_hugepagesz=2m hugepagesz=2m hugepages=256" | |
16 | +# CONFIG_USE_BOOTCOMMAND is not set | |
17 | +CONFIG_MISC_INIT_R=y | |
18 | +CONFIG_CMD_IMLS=y | |
19 | +CONFIG_CMD_GREPENV=y | |
20 | +CONFIG_CMD_EEPROM=y | |
21 | +CONFIG_CMD_GPT=y | |
22 | +CONFIG_CMD_I2C=y | |
23 | +CONFIG_CMD_MMC=y | |
24 | +CONFIG_CMD_NAND=y | |
25 | +CONFIG_CMD_PCI=y | |
26 | +CONFIG_CMD_SF=y | |
27 | +CONFIG_CMD_USB=y | |
28 | +# CONFIG_CMD_SETEXPR is not set | |
29 | +CONFIG_CMD_CACHE=y | |
30 | +CONFIG_CMD_DATE=y | |
31 | +CONFIG_MP=y | |
32 | +CONFIG_OF_CONTROL=y | |
33 | +CONFIG_DEFAULT_DEVICE_TREE="fsl-ls2088a-rdb-qspi" | |
34 | +CONFIG_ENV_IS_IN_FLASH=y | |
35 | +CONFIG_ENV_IS_IN_SPI_FLASH=y | |
36 | +CONFIG_ENV_IS_IN_MMC=y | |
37 | +CONFIG_NET_RANDOM_ETHADDR=y | |
38 | +CONFIG_DM=y | |
39 | +CONFIG_FSL_CAAM=y | |
40 | +CONFIG_FSL_ESDHC=y | |
41 | +CONFIG_MTD_NOR_FLASH=y | |
42 | +CONFIG_FLASH_CFI_DRIVER=y | |
43 | +CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y | |
44 | +CONFIG_SYS_FLASH_CFI=y | |
45 | +CONFIG_DM_SPI_FLASH=y | |
46 | +CONFIG_SPI_FLASH=y | |
47 | +CONFIG_SPI_FLASH_SPANSION=y | |
48 | +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set | |
49 | + | |
50 | +CONFIG_PHYLIB=y | |
51 | +CONFIG_PHY_AQUANTIA=y | |
52 | +CONFIG_E1000=y | |
53 | +CONFIG_MII=y | |
54 | +CONFIG_PCI=y | |
55 | +CONFIG_DM_PCI=y | |
56 | +CONFIG_DM_PCI_COMPAT=y | |
57 | +CONFIG_PCIE_LAYERSCAPE=y | |
58 | +CONFIG_CONS_INDEX=2 | |
59 | +CONFIG_SYS_NS16550=y | |
60 | +CONFIG_SPI=y | |
61 | +CONFIG_DM_SPI=y | |
62 | +CONFIG_FSL_DSPI=y | |
63 | +CONFIG_FSL_QSPI=y | |
64 | +CONFIG_FSL_SPI_ALIGNED_TXFIFO=y | |
65 | + | |
66 | +CONFIG_USB=y | |
67 | +CONFIG_DM_USB=y | |
68 | +CONFIG_USB_XHCI_HCD=y | |
69 | +CONFIG_USB_XHCI_DWC3=y | |
70 | +CONFIG_USB_STORAGE=y | |
71 | +CONFIG_EFI_LOADER_BOUNCE_BUFFER=y | |
72 | +CONFIG_BLK=y | |
73 | +CONFIG_DM_MMC=y |
drivers/misc/fsl_ifc.c
... | ... | @@ -7,6 +7,7 @@ |
7 | 7 | #include <common.h> |
8 | 8 | #include <fsl_ifc.h> |
9 | 9 | |
10 | +#ifdef CONFIG_TFABOOT | |
10 | 11 | struct ifc_regs ifc_cfg_default_boot[CONFIG_SYS_FSL_IFC_BANK_COUNT] = { |
11 | 12 | { |
12 | 13 | "cs0", |
... | ... | @@ -340,6 +341,7 @@ |
340 | 341 | regs_info->regs = ifc_cfg_default_boot; |
341 | 342 | regs_info->cs_size = CONFIG_SYS_FSL_IFC_BANK_COUNT; |
342 | 343 | } |
344 | +#endif | |
343 | 345 | |
344 | 346 | void print_ifc_regs(void) |
345 | 347 | { |
... | ... | @@ -355,6 +357,7 @@ |
355 | 357 | } |
356 | 358 | } |
357 | 359 | |
360 | +#ifdef CONFIG_TFABOOT | |
358 | 361 | void init_early_memctl_regs(void) |
359 | 362 | { |
360 | 363 | int i, j; |
... | ... | @@ -405,4 +408,174 @@ |
405 | 408 | regs[i].amask); |
406 | 409 | } |
407 | 410 | } |
411 | +#else | |
412 | +void init_early_memctl_regs(void) | |
413 | +{ | |
414 | +#if defined(CONFIG_SYS_CSPR0) && defined(CONFIG_SYS_CSOR0) | |
415 | + set_ifc_ftim(IFC_CS0, IFC_FTIM0, CONFIG_SYS_CS0_FTIM0); | |
416 | + set_ifc_ftim(IFC_CS0, IFC_FTIM1, CONFIG_SYS_CS0_FTIM1); | |
417 | + set_ifc_ftim(IFC_CS0, IFC_FTIM2, CONFIG_SYS_CS0_FTIM2); | |
418 | + set_ifc_ftim(IFC_CS0, IFC_FTIM3, CONFIG_SYS_CS0_FTIM3); | |
419 | + | |
420 | +#ifndef CONFIG_A003399_NOR_WORKAROUND | |
421 | +#ifdef CONFIG_SYS_CSPR0_EXT | |
422 | + set_ifc_cspr_ext(IFC_CS0, CONFIG_SYS_CSPR0_EXT); | |
423 | +#endif | |
424 | +#ifdef CONFIG_SYS_CSOR0_EXT | |
425 | + set_ifc_csor_ext(IFC_CS0, CONFIG_SYS_CSOR0_EXT); | |
426 | +#endif | |
427 | + set_ifc_cspr(IFC_CS0, CONFIG_SYS_CSPR0); | |
428 | + set_ifc_amask(IFC_CS0, CONFIG_SYS_AMASK0); | |
429 | + set_ifc_csor(IFC_CS0, CONFIG_SYS_CSOR0); | |
430 | +#endif | |
431 | +#endif | |
432 | + | |
433 | +#ifdef CONFIG_SYS_CSPR1_EXT | |
434 | + set_ifc_cspr_ext(IFC_CS1, CONFIG_SYS_CSPR1_EXT); | |
435 | +#endif | |
436 | +#ifdef CONFIG_SYS_CSOR1_EXT | |
437 | + set_ifc_csor_ext(IFC_CS1, CONFIG_SYS_CSOR1_EXT); | |
438 | +#endif | |
439 | +#if defined(CONFIG_SYS_CSPR1) && defined(CONFIG_SYS_CSOR1) | |
440 | + set_ifc_ftim(IFC_CS1, IFC_FTIM0, CONFIG_SYS_CS1_FTIM0); | |
441 | + set_ifc_ftim(IFC_CS1, IFC_FTIM1, CONFIG_SYS_CS1_FTIM1); | |
442 | + set_ifc_ftim(IFC_CS1, IFC_FTIM2, CONFIG_SYS_CS1_FTIM2); | |
443 | + set_ifc_ftim(IFC_CS1, IFC_FTIM3, CONFIG_SYS_CS1_FTIM3); | |
444 | + | |
445 | + set_ifc_csor(IFC_CS1, CONFIG_SYS_CSOR1); | |
446 | + set_ifc_amask(IFC_CS1, CONFIG_SYS_AMASK1); | |
447 | + set_ifc_cspr(IFC_CS1, CONFIG_SYS_CSPR1); | |
448 | +#endif | |
449 | + | |
450 | +#ifdef CONFIG_SYS_CSPR2_EXT | |
451 | + set_ifc_cspr_ext(IFC_CS2, CONFIG_SYS_CSPR2_EXT); | |
452 | +#endif | |
453 | +#ifdef CONFIG_SYS_CSOR2_EXT | |
454 | + set_ifc_csor_ext(IFC_CS2, CONFIG_SYS_CSOR2_EXT); | |
455 | +#endif | |
456 | +#if defined(CONFIG_SYS_CSPR2) && defined(CONFIG_SYS_CSOR2) | |
457 | + set_ifc_ftim(IFC_CS2, IFC_FTIM0, CONFIG_SYS_CS2_FTIM0); | |
458 | + set_ifc_ftim(IFC_CS2, IFC_FTIM1, CONFIG_SYS_CS2_FTIM1); | |
459 | + set_ifc_ftim(IFC_CS2, IFC_FTIM2, CONFIG_SYS_CS2_FTIM2); | |
460 | + set_ifc_ftim(IFC_CS2, IFC_FTIM3, CONFIG_SYS_CS2_FTIM3); | |
461 | + | |
462 | + set_ifc_csor(IFC_CS2, CONFIG_SYS_CSOR2); | |
463 | + set_ifc_amask(IFC_CS2, CONFIG_SYS_AMASK2); | |
464 | + set_ifc_cspr(IFC_CS2, CONFIG_SYS_CSPR2); | |
465 | +#endif | |
466 | + | |
467 | +#ifdef CONFIG_SYS_CSPR3_EXT | |
468 | + set_ifc_cspr_ext(IFC_CS3, CONFIG_SYS_CSPR3_EXT); | |
469 | +#endif | |
470 | +#ifdef CONFIG_SYS_CSOR3_EXT | |
471 | + set_ifc_csor_ext(IFC_CS3, CONFIG_SYS_CSOR3_EXT); | |
472 | +#endif | |
473 | +#if defined(CONFIG_SYS_CSPR3) && defined(CONFIG_SYS_CSOR3) | |
474 | + set_ifc_ftim(IFC_CS3, IFC_FTIM0, CONFIG_SYS_CS3_FTIM0); | |
475 | + set_ifc_ftim(IFC_CS3, IFC_FTIM1, CONFIG_SYS_CS3_FTIM1); | |
476 | + set_ifc_ftim(IFC_CS3, IFC_FTIM2, CONFIG_SYS_CS3_FTIM2); | |
477 | + set_ifc_ftim(IFC_CS3, IFC_FTIM3, CONFIG_SYS_CS3_FTIM3); | |
478 | + | |
479 | + set_ifc_cspr(IFC_CS3, CONFIG_SYS_CSPR3); | |
480 | + set_ifc_amask(IFC_CS3, CONFIG_SYS_AMASK3); | |
481 | + set_ifc_csor(IFC_CS3, CONFIG_SYS_CSOR3); | |
482 | +#endif | |
483 | + | |
484 | +#ifdef CONFIG_SYS_CSPR4_EXT | |
485 | + set_ifc_cspr_ext(IFC_CS4, CONFIG_SYS_CSPR4_EXT); | |
486 | +#endif | |
487 | +#ifdef CONFIG_SYS_CSOR4_EXT | |
488 | + set_ifc_csor_ext(IFC_CS4, CONFIG_SYS_CSOR4_EXT); | |
489 | +#endif | |
490 | +#if defined(CONFIG_SYS_CSPR4) && defined(CONFIG_SYS_CSOR4) | |
491 | + set_ifc_ftim(IFC_CS4, IFC_FTIM0, CONFIG_SYS_CS4_FTIM0); | |
492 | + set_ifc_ftim(IFC_CS4, IFC_FTIM1, CONFIG_SYS_CS4_FTIM1); | |
493 | + set_ifc_ftim(IFC_CS4, IFC_FTIM2, CONFIG_SYS_CS4_FTIM2); | |
494 | + set_ifc_ftim(IFC_CS4, IFC_FTIM3, CONFIG_SYS_CS4_FTIM3); | |
495 | + | |
496 | + set_ifc_cspr(IFC_CS4, CONFIG_SYS_CSPR4); | |
497 | + set_ifc_amask(IFC_CS4, CONFIG_SYS_AMASK4); | |
498 | + set_ifc_csor(IFC_CS4, CONFIG_SYS_CSOR4); | |
499 | +#endif | |
500 | + | |
501 | +#ifdef CONFIG_SYS_CSPR5_EXT | |
502 | + set_ifc_cspr_ext(IFC_CS5, CONFIG_SYS_CSPR5_EXT); | |
503 | +#endif | |
504 | +#ifdef CONFIG_SYS_CSOR5_EXT | |
505 | + set_ifc_csor_ext(IFC_CS5, CONFIG_SYS_CSOR5_EXT); | |
506 | +#endif | |
507 | +#if defined(CONFIG_SYS_CSPR5) && defined(CONFIG_SYS_CSOR5) | |
508 | + set_ifc_ftim(IFC_CS5, IFC_FTIM0, CONFIG_SYS_CS5_FTIM0); | |
509 | + set_ifc_ftim(IFC_CS5, IFC_FTIM1, CONFIG_SYS_CS5_FTIM1); | |
510 | + set_ifc_ftim(IFC_CS5, IFC_FTIM2, CONFIG_SYS_CS5_FTIM2); | |
511 | + set_ifc_ftim(IFC_CS5, IFC_FTIM3, CONFIG_SYS_CS5_FTIM3); | |
512 | + | |
513 | + set_ifc_cspr(IFC_CS5, CONFIG_SYS_CSPR5); | |
514 | + set_ifc_amask(IFC_CS5, CONFIG_SYS_AMASK5); | |
515 | + set_ifc_csor(IFC_CS5, CONFIG_SYS_CSOR5); | |
516 | +#endif | |
517 | + | |
518 | +#ifdef CONFIG_SYS_CSPR6_EXT | |
519 | + set_ifc_cspr_ext(IFC_CS6, CONFIG_SYS_CSPR6_EXT); | |
520 | +#endif | |
521 | +#ifdef CONFIG_SYS_CSOR6_EXT | |
522 | + set_ifc_csor_ext(IFC_CS6, CONFIG_SYS_CSOR6_EXT); | |
523 | +#endif | |
524 | +#if defined(CONFIG_SYS_CSPR6) && defined(CONFIG_SYS_CSOR6) | |
525 | + set_ifc_ftim(IFC_CS6, IFC_FTIM0, CONFIG_SYS_CS6_FTIM0); | |
526 | + set_ifc_ftim(IFC_CS6, IFC_FTIM1, CONFIG_SYS_CS6_FTIM1); | |
527 | + set_ifc_ftim(IFC_CS6, IFC_FTIM2, CONFIG_SYS_CS6_FTIM2); | |
528 | + set_ifc_ftim(IFC_CS6, IFC_FTIM3, CONFIG_SYS_CS6_FTIM3); | |
529 | + | |
530 | + set_ifc_cspr(IFC_CS6, CONFIG_SYS_CSPR6); | |
531 | + set_ifc_amask(IFC_CS6, CONFIG_SYS_AMASK6); | |
532 | + set_ifc_csor(IFC_CS6, CONFIG_SYS_CSOR6); | |
533 | +#endif | |
534 | + | |
535 | +#ifdef CONFIG_SYS_CSPR7_EXT | |
536 | + set_ifc_cspr_ext(IFC_CS7, CONFIG_SYS_CSPR7_EXT); | |
537 | +#endif | |
538 | +#ifdef CONFIG_SYS_CSOR7_EXT | |
539 | + set_ifc_csor_ext(IFC_CS7, CONFIG_SYS_CSOR7_EXT); | |
540 | +#endif | |
541 | +#if defined(CONFIG_SYS_CSPR7) && defined(CONFIG_SYS_CSOR7) | |
542 | + set_ifc_ftim(IFC_CS7, IFC_FTIM0, CONFIG_SYS_CS7_FTIM0); | |
543 | + set_ifc_ftim(IFC_CS7, IFC_FTIM1, CONFIG_SYS_CS7_FTIM1); | |
544 | + set_ifc_ftim(IFC_CS7, IFC_FTIM2, CONFIG_SYS_CS7_FTIM2); | |
545 | + set_ifc_ftim(IFC_CS7, IFC_FTIM3, CONFIG_SYS_CS7_FTIM3); | |
546 | + | |
547 | + set_ifc_cspr(IFC_CS7, CONFIG_SYS_CSPR7); | |
548 | + set_ifc_amask(IFC_CS7, CONFIG_SYS_AMASK7); | |
549 | + set_ifc_csor(IFC_CS7, CONFIG_SYS_CSOR7); | |
550 | +#endif | |
551 | +} | |
552 | + | |
553 | +void init_final_memctl_regs(void) | |
554 | +{ | |
555 | +#ifdef CONFIG_SYS_CSPR0_FINAL | |
556 | + set_ifc_cspr(IFC_CS0, CONFIG_SYS_CSPR0_FINAL); | |
557 | +#endif | |
558 | +#ifdef CONFIG_SYS_AMASK0_FINAL | |
559 | + set_ifc_amask(IFC_CS0, CONFIG_SYS_AMASK0); | |
560 | +#endif | |
561 | +#ifdef CONFIG_SYS_CSPR1_FINAL | |
562 | + set_ifc_cspr(IFC_CS1, CONFIG_SYS_CSPR1_FINAL); | |
563 | +#endif | |
564 | +#ifdef CONFIG_SYS_AMASK1_FINAL | |
565 | + set_ifc_amask(IFC_CS1, CONFIG_SYS_AMASK1_FINAL); | |
566 | +#endif | |
567 | +#ifdef CONFIG_SYS_CSPR2_FINAL | |
568 | + set_ifc_cspr(IFC_CS2, CONFIG_SYS_CSPR2_FINAL); | |
569 | +#endif | |
570 | +#ifdef CONFIG_SYS_AMASK2_FINAL | |
571 | + set_ifc_amask(IFC_CS2, CONFIG_SYS_AMASK2); | |
572 | +#endif | |
573 | +#ifdef CONFIG_SYS_CSPR3_FINAL | |
574 | + set_ifc_cspr(IFC_CS3, CONFIG_SYS_CSPR3_FINAL); | |
575 | +#endif | |
576 | +#ifdef CONFIG_SYS_AMASK3_FINAL | |
577 | + set_ifc_amask(IFC_CS3, CONFIG_SYS_AMASK3); | |
578 | +#endif | |
579 | +} | |
580 | +#endif |
drivers/mmc/fsl_esdhc.c
drivers/net/fsl-mc/mc.c
drivers/pci/pcie_layerscape.c
... | ... | @@ -225,6 +225,9 @@ |
225 | 225 | { |
226 | 226 | struct udevice *bus = pcie->bus; |
227 | 227 | |
228 | + if (pcie->mode == PCI_HEADER_TYPE_NORMAL) | |
229 | + return -ENODEV; | |
230 | + | |
228 | 231 | if (!pcie->enabled) |
229 | 232 | return -ENXIO; |
230 | 233 | |
231 | 234 | |
... | ... | @@ -438,9 +441,7 @@ |
438 | 441 | struct ls_pcie *pcie = dev_get_priv(dev); |
439 | 442 | const void *fdt = gd->fdt_blob; |
440 | 443 | int node = dev_of_offset(dev); |
441 | - u8 header_type; | |
442 | 444 | u16 link_sta; |
443 | - bool ep_mode; | |
444 | 445 | uint svr; |
445 | 446 | int ret; |
446 | 447 | fdt_size_t cfg_size; |
447 | 448 | |
... | ... | @@ -524,15 +525,15 @@ |
524 | 525 | (unsigned long)pcie->ctrl, (unsigned long)pcie->cfg0, |
525 | 526 | pcie->big_endian); |
526 | 527 | |
527 | - header_type = readb(pcie->dbi + PCI_HEADER_TYPE); | |
528 | - ep_mode = (header_type & 0x7f) == PCI_HEADER_TYPE_NORMAL; | |
529 | - printf("PCIe%u: %s %s", pcie->idx, dev->name, | |
530 | - ep_mode ? "Endpoint" : "Root Complex"); | |
528 | + pcie->mode = readb(pcie->dbi + PCI_HEADER_TYPE) & 0x7f; | |
531 | 529 | |
532 | - if (ep_mode) | |
533 | - ls_pcie_setup_ep(pcie); | |
534 | - else | |
535 | - ls_pcie_setup_ctrl(pcie); | |
530 | + if (pcie->mode == PCI_HEADER_TYPE_NORMAL) { | |
531 | + printf("PCIe%u: %s %s", pcie->idx, dev->name, "Endpoint"); | |
532 | + ls_pcie_setup_ep(pcie); | |
533 | + } else { | |
534 | + printf("PCIe%u: %s %s", pcie->idx, dev->name, "Root Complex"); | |
535 | + ls_pcie_setup_ctrl(pcie); | |
536 | + } | |
536 | 537 | |
537 | 538 | if (!ls_pcie_link_up(pcie)) { |
538 | 539 | /* Let the user know there's no PCIe link */ |
drivers/pci/pcie_layerscape.h
drivers/pci/pcie_layerscape_fixup.c
... | ... | @@ -218,7 +218,7 @@ |
218 | 218 | } |
219 | 219 | #endif |
220 | 220 | |
221 | -static void ft_pcie_ls_setup(void *blob, struct ls_pcie *pcie) | |
221 | +static void ft_pcie_rc_fix(void *blob, struct ls_pcie *pcie) | |
222 | 222 | { |
223 | 223 | int off; |
224 | 224 | uint svr; |
225 | 225 | |
... | ... | @@ -243,10 +243,31 @@ |
243 | 243 | return; |
244 | 244 | } |
245 | 245 | |
246 | - if (pcie->enabled) | |
246 | + if (pcie->enabled && pcie->mode == PCI_HEADER_TYPE_BRIDGE) | |
247 | 247 | fdt_set_node_status(blob, off, FDT_STATUS_OKAY, 0); |
248 | 248 | else |
249 | 249 | fdt_set_node_status(blob, off, FDT_STATUS_DISABLED, 0); |
250 | +} | |
251 | + | |
252 | +static void ft_pcie_ep_fix(void *blob, struct ls_pcie *pcie) | |
253 | +{ | |
254 | + int off; | |
255 | + | |
256 | + off = fdt_node_offset_by_compat_reg(blob, "fsl,ls-pcie-ep", | |
257 | + pcie->dbi_res.start); | |
258 | + if (off < 0) | |
259 | + return; | |
260 | + | |
261 | + if (pcie->enabled && pcie->mode == PCI_HEADER_TYPE_NORMAL) | |
262 | + fdt_set_node_status(blob, off, FDT_STATUS_OKAY, 0); | |
263 | + else | |
264 | + fdt_set_node_status(blob, off, FDT_STATUS_DISABLED, 0); | |
265 | +} | |
266 | + | |
267 | +static void ft_pcie_ls_setup(void *blob, struct ls_pcie *pcie) | |
268 | +{ | |
269 | + ft_pcie_ep_fix(blob, pcie); | |
270 | + ft_pcie_rc_fix(blob, pcie); | |
250 | 271 | } |
251 | 272 | |
252 | 273 | /* Fixup Kernel DT for PCIe */ |
include/configs/ls1043a_common.h
... | ... | @@ -323,6 +323,8 @@ |
323 | 323 | "env exists secureboot && esbc_halt;" |
324 | 324 | #define IFC_NOR_BOOTCOMMAND "run distro_bootcmd; run nor_bootcmd; " \ |
325 | 325 | "env exists secureboot && esbc_halt;" |
326 | +#define IFC_NAND_BOOTCOMMAND "run distro_bootcmd; run nand_bootcmd; " \ | |
327 | + "env exists secureboot && esbc_halt;" | |
326 | 328 | #else |
327 | 329 | #if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) |
328 | 330 | #define CONFIG_BOOTCOMMAND "run distro_bootcmd; run qspi_bootcmd; " \ |
include/configs/ls1088a_common.h
... | ... | @@ -29,16 +29,23 @@ |
29 | 29 | |
30 | 30 | #define LS1088ARDB_PB_BOARD 0x4A |
31 | 31 | /* Link Definitions */ |
32 | +#ifdef CONFIG_TFABOOT | |
33 | +#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SYS_TEXT_BASE | |
34 | +#else | |
32 | 35 | #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_FSL_OCRAM_BASE + 0xfff0) |
36 | +#endif | |
33 | 37 | |
34 | 38 | /* Link Definitions */ |
35 | - | |
39 | +#ifdef CONFIG_TFABOOT | |
40 | +#define CONFIG_SYS_FSL_QSPI_BASE 0x20000000 | |
41 | +#else | |
36 | 42 | #ifdef CONFIG_QSPI_BOOT |
37 | 43 | #define CONFIG_SYS_FSL_QSPI_BASE 0x20000000 |
38 | 44 | #define CONFIG_ENV_OFFSET 0x300000 /* 3MB */ |
39 | 45 | #define CONFIG_ENV_ADDR (CONFIG_SYS_FSL_QSPI_BASE + \ |
40 | 46 | CONFIG_ENV_OFFSET) |
41 | 47 | #endif |
48 | +#endif | |
42 | 49 | |
43 | 50 | #define CONFIG_SKIP_LOWLEVEL_INIT |
44 | 51 | |
... | ... | @@ -192,6 +199,7 @@ |
192 | 199 | "mcinitcmd=fsl_mc start mc 0x580a00000" \ |
193 | 200 | " 0x580e00000 \0" |
194 | 201 | |
202 | +#ifndef CONFIG_TFABOOT | |
195 | 203 | #if defined(CONFIG_QSPI_BOOT) |
196 | 204 | #define CONFIG_BOOTCOMMAND "sf probe 0:0;" \ |
197 | 205 | "sf read 0x80001000 0xd00000 0x100000;"\ |
... | ... | @@ -208,6 +216,7 @@ |
208 | 216 | " cp.b $kernel_start $kernel_load" \ |
209 | 217 | " $kernel_size && bootm $kernel_load" |
210 | 218 | #endif |
219 | +#endif /* CONFIG_TFABOOT */ | |
211 | 220 | #endif |
212 | 221 | |
213 | 222 | /* Monitor Command Prompt */ |
include/configs/ls1088aqds.h
... | ... | @@ -14,7 +14,15 @@ |
14 | 14 | unsigned long get_board_ddr_clk(void); |
15 | 15 | #endif |
16 | 16 | |
17 | +#ifdef CONFIG_TFABOOT | |
18 | +#define CONFIG_SYS_MMC_ENV_DEV 0 | |
17 | 19 | |
20 | +#define CONFIG_ENV_SIZE 0x20000 | |
21 | +#define CONFIG_ENV_OFFSET 0x500000 | |
22 | +#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + \ | |
23 | + CONFIG_ENV_OFFSET) | |
24 | +#define CONFIG_ENV_SECT_SIZE 0x40000 | |
25 | +#else | |
18 | 26 | #if defined(CONFIG_QSPI_BOOT) |
19 | 27 | #define CONFIG_ENV_SIZE 0x2000 /* 8KB */ |
20 | 28 | #define CONFIG_ENV_SECT_SIZE 0x40000 |
... | ... | @@ -27,6 +35,7 @@ |
27 | 35 | #define CONFIG_ENV_SECT_SIZE 0x20000 |
28 | 36 | #define CONFIG_ENV_SIZE 0x20000 |
29 | 37 | #endif |
38 | +#endif | |
30 | 39 | |
31 | 40 | #if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) |
32 | 41 | #define CONFIG_QIXIS_I2C_ACCESS |
... | ... | @@ -209,6 +218,44 @@ |
209 | 218 | FTIM2_GPCM_TWP(0x3E)) |
210 | 219 | #define SYS_FPGA_CS_FTIM3 0x0 |
211 | 220 | |
221 | +#ifdef CONFIG_TFABOOT | |
222 | +#define CONFIG_SYS_CSPR0_EXT CONFIG_SYS_NOR0_CSPR_EXT | |
223 | +#define CONFIG_SYS_CSPR0 CONFIG_SYS_NOR0_CSPR_EARLY | |
224 | +#define CONFIG_SYS_CSPR0_FINAL CONFIG_SYS_NOR0_CSPR | |
225 | +#define CONFIG_SYS_AMASK0 CONFIG_SYS_NOR_AMASK | |
226 | +#define CONFIG_SYS_CSOR0 CONFIG_SYS_NOR_CSOR | |
227 | +#define CONFIG_SYS_CS0_FTIM0 CONFIG_SYS_NOR_FTIM0 | |
228 | +#define CONFIG_SYS_CS0_FTIM1 CONFIG_SYS_NOR_FTIM1 | |
229 | +#define CONFIG_SYS_CS0_FTIM2 CONFIG_SYS_NOR_FTIM2 | |
230 | +#define CONFIG_SYS_CS0_FTIM3 CONFIG_SYS_NOR_FTIM3 | |
231 | +#define CONFIG_SYS_CSPR1_EXT CONFIG_SYS_NOR0_CSPR_EXT | |
232 | +#define CONFIG_SYS_CSPR1 CONFIG_SYS_NOR1_CSPR_EARLY | |
233 | +#define CONFIG_SYS_CSPR1_FINAL CONFIG_SYS_NOR1_CSPR | |
234 | +#define CONFIG_SYS_AMASK1 CONFIG_SYS_NOR_AMASK_EARLY | |
235 | +#define CONFIG_SYS_AMASK1_FINAL CONFIG_SYS_NOR_AMASK | |
236 | +#define CONFIG_SYS_CSOR1 CONFIG_SYS_NOR_CSOR | |
237 | +#define CONFIG_SYS_CS1_FTIM0 CONFIG_SYS_NOR_FTIM0 | |
238 | +#define CONFIG_SYS_CS1_FTIM1 CONFIG_SYS_NOR_FTIM1 | |
239 | +#define CONFIG_SYS_CS1_FTIM2 CONFIG_SYS_NOR_FTIM2 | |
240 | +#define CONFIG_SYS_CS1_FTIM3 CONFIG_SYS_NOR_FTIM3 | |
241 | +#define CONFIG_SYS_CSPR2_EXT CONFIG_SYS_NAND_CSPR_EXT | |
242 | +#define CONFIG_SYS_CSPR2 CONFIG_SYS_NAND_CSPR | |
243 | +#define CONFIG_SYS_AMASK2 CONFIG_SYS_NAND_AMASK | |
244 | +#define CONFIG_SYS_CSOR2 CONFIG_SYS_NAND_CSOR | |
245 | +#define CONFIG_SYS_CS2_FTIM0 CONFIG_SYS_NAND_FTIM0 | |
246 | +#define CONFIG_SYS_CS2_FTIM1 CONFIG_SYS_NAND_FTIM1 | |
247 | +#define CONFIG_SYS_CS2_FTIM2 CONFIG_SYS_NAND_FTIM2 | |
248 | +#define CONFIG_SYS_CS2_FTIM3 CONFIG_SYS_NAND_FTIM3 | |
249 | +#define CONFIG_SYS_CSPR3_EXT CONFIG_SYS_FPGA_CSPR_EXT | |
250 | +#define CONFIG_SYS_CSPR3 CONFIG_SYS_FPGA_CSPR | |
251 | +#define CONFIG_SYS_CSPR3_FINAL SYS_FPGA_CSPR_FINAL | |
252 | +#define CONFIG_SYS_AMASK3 SYS_FPGA_AMASK | |
253 | +#define CONFIG_SYS_CSOR3 CONFIG_SYS_FPGA_CSOR | |
254 | +#define CONFIG_SYS_CS3_FTIM0 SYS_FPGA_CS_FTIM0 | |
255 | +#define CONFIG_SYS_CS3_FTIM1 SYS_FPGA_CS_FTIM1 | |
256 | +#define CONFIG_SYS_CS3_FTIM2 SYS_FPGA_CS_FTIM2 | |
257 | +#define CONFIG_SYS_CS3_FTIM3 SYS_FPGA_CS_FTIM3 | |
258 | +#else | |
212 | 259 | #if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) |
213 | 260 | #define CONFIG_SYS_CSPR0_EXT CONFIG_SYS_NAND_CSPR_EXT |
214 | 261 | #define CONFIG_SYS_CSPR0 CONFIG_SYS_NAND_CSPR |
... | ... | @@ -265,6 +312,7 @@ |
265 | 312 | #define CONFIG_SYS_CS3_FTIM2 SYS_FPGA_CS_FTIM2 |
266 | 313 | #define CONFIG_SYS_CS3_FTIM3 SYS_FPGA_CS_FTIM3 |
267 | 314 | #endif |
315 | +#endif | |
268 | 316 | |
269 | 317 | #define CONFIG_SYS_LS_MC_BOOT_TIMEOUT_MS 5000 |
270 | 318 | |
... | ... | @@ -323,7 +371,8 @@ |
323 | 371 | #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 |
324 | 372 | |
325 | 373 | /* QSPI device */ |
326 | -#if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) | |
374 | +#if defined(CONFIG_TFABOOT) || \ | |
375 | + defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) | |
327 | 376 | #define FSL_QSPI_FLASH_SIZE (1 << 26) |
328 | 377 | #define FSL_QSPI_FLASH_NUM 2 |
329 | 378 | |
... | ... | @@ -333,7 +382,8 @@ |
333 | 382 | #define CONFIG_SPI_FLASH_STMICRO |
334 | 383 | #define CONFIG_SPI_FLASH_SST |
335 | 384 | #define CONFIG_SPI_FLASH_EON |
336 | -#if !defined(CONFIG_QSPI_BOOT) && !defined(CONFIG_SD_BOOT_QSPI) | |
385 | +#if !defined(CONFIG_TFABOOT) && \ | |
386 | + !defined(CONFIG_QSPI_BOOT) && !defined(CONFIG_SD_BOOT_QSPI) | |
337 | 387 | #define CONFIG_SF_DEFAULT_BUS 1 |
338 | 388 | #define CONFIG_SF_DEFAULT_CS 0 |
339 | 389 | #endif |
... | ... | @@ -377,6 +427,50 @@ |
377 | 427 | "fsl_mc start mc 0xa0a00000 0xa0e00000\0" \ |
378 | 428 | "mcmemsize=0x70000000 \0" |
379 | 429 | #else /* if !(CONFIG_SECURE_BOOT) */ |
430 | +#ifdef CONFIG_TFABOOT | |
431 | +#define QSPI_MC_INIT_CMD \ | |
432 | + "sf probe 0:0;sf read 0x80000000 0xA00000 0x100000;" \ | |
433 | + "sf read 0x80100000 0xE00000 0x100000;" \ | |
434 | + "fsl_mc start mc 0x80000000 0x80100000\0" | |
435 | +#define SD_MC_INIT_CMD \ | |
436 | + "mmcinfo;mmc read 0x80000000 0x5000 0x800;" \ | |
437 | + "mmc read 0x80100000 0x7000 0x800;" \ | |
438 | + "fsl_mc start mc 0x80000000 0x80100000\0" | |
439 | +#define IFC_MC_INIT_CMD \ | |
440 | + "fsl_mc start mc 0x580A00000 0x580E00000\0" | |
441 | + | |
442 | +#undef CONFIG_EXTRA_ENV_SETTINGS | |
443 | +#define CONFIG_EXTRA_ENV_SETTINGS \ | |
444 | + "hwconfig=fsl_ddr:bank_intlv=auto\0" \ | |
445 | + "loadaddr=0x90100000\0" \ | |
446 | + "kernel_addr=0x100000\0" \ | |
447 | + "kernel_addr_sd=0x800\0" \ | |
448 | + "ramdisk_addr=0x800000\0" \ | |
449 | + "ramdisk_size=0x2000000\0" \ | |
450 | + "fdt_high=0xa0000000\0" \ | |
451 | + "initrd_high=0xffffffffffffffff\0" \ | |
452 | + "kernel_start=0x1000000\0" \ | |
453 | + "kernel_start_sd=0x8000\0" \ | |
454 | + "kernel_load=0xa0000000\0" \ | |
455 | + "kernel_size=0x2800000\0" \ | |
456 | + "kernel_size_sd=0x14000\0" \ | |
457 | + "mcinitcmd=sf probe 0:0;sf read 0x80000000 0xA00000 0x100000;" \ | |
458 | + "sf read 0x80100000 0xE00000 0x100000;" \ | |
459 | + "fsl_mc start mc 0x80000000 0x80100000\0" \ | |
460 | + "mcmemsize=0x70000000 \0" | |
461 | +#define QSPI_NOR_BOOTCOMMAND "sf probe 0:0;" \ | |
462 | + "sf read 0x80001000 0xd00000 0x100000;"\ | |
463 | + " fsl_mc lazyapply dpl 0x80001000 &&" \ | |
464 | + " sf read $kernel_load $kernel_start" \ | |
465 | + " $kernel_size && bootm $kernel_load" | |
466 | +#define SD_BOOTCOMMAND "mmcinfo;mmc read 0x80001000 0x6800 0x800;"\ | |
467 | + " fsl_mc lazyapply dpl 0x80001000 &&" \ | |
468 | + " mmc read $kernel_load $kernel_start_sd" \ | |
469 | + " $kernel_size_sd && bootm $kernel_load" | |
470 | +#define IFC_NOR_BOOTCOMMAND "fsl_mc lazyapply dpl 0x580d00000 &&" \ | |
471 | + " cp.b $kernel_start $kernel_load" \ | |
472 | + " $kernel_size && bootm $kernel_load" | |
473 | +#else | |
380 | 474 | #if defined(CONFIG_QSPI_BOOT) |
381 | 475 | #undef CONFIG_EXTRA_ENV_SETTINGS |
382 | 476 | #define CONFIG_EXTRA_ENV_SETTINGS \ |
... | ... | @@ -427,6 +521,7 @@ |
427 | 521 | "mcinitcmd=fsl_mc start mc 0x580A00000 0x580E00000\0" \ |
428 | 522 | "mcmemsize=0x70000000 \0" |
429 | 523 | #endif |
524 | +#endif /* CONFIG_TFABOOT */ | |
430 | 525 | #endif /* CONFIG_SECURE_BOOT */ |
431 | 526 | |
432 | 527 | #ifdef CONFIG_FSL_MC_ENET |
include/configs/ls1088ardb.h
... | ... | @@ -8,6 +8,15 @@ |
8 | 8 | |
9 | 9 | #include "ls1088a_common.h" |
10 | 10 | |
11 | +#ifdef CONFIG_TFABOOT | |
12 | +#define CONFIG_SYS_MMC_ENV_DEV 0 | |
13 | + | |
14 | +#define CONFIG_ENV_SIZE 0x2000 /* 8KB */ | |
15 | +#define CONFIG_ENV_OFFSET 0x500000 | |
16 | +#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + \ | |
17 | + CONFIG_ENV_OFFSET) | |
18 | +#define CONFIG_ENV_SECT_SIZE 0x40000 | |
19 | +#else | |
11 | 20 | #if defined(CONFIG_QSPI_BOOT) |
12 | 21 | #define CONFIG_ENV_SIZE 0x2000 /* 8KB */ |
13 | 22 | #define CONFIG_ENV_SECT_SIZE 0x40000 |
14 | 23 | |
... | ... | @@ -21,8 +30,10 @@ |
21 | 30 | #define CONFIG_ENV_SECT_SIZE 0x20000 |
22 | 31 | #define CONFIG_ENV_SIZE 0x20000 |
23 | 32 | #endif |
33 | +#endif /* CONFIG_TFABOOT */ | |
24 | 34 | |
25 | -#if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) | |
35 | +#if defined(CONFIG_TFABOOT) || \ | |
36 | + defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) | |
26 | 37 | #ifndef CONFIG_SPL_BUILD |
27 | 38 | #define CONFIG_QIXIS_I2C_ACCESS |
28 | 39 | #endif |
... | ... | @@ -185,7 +196,8 @@ |
185 | 196 | FTIM2_GPCM_TWP(0x3E)) |
186 | 197 | #define SYS_FPGA_CS_FTIM3 0x0 |
187 | 198 | |
188 | -#if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) | |
199 | +#if defined(CONFIG_TFABOOT) || \ | |
200 | + defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) | |
189 | 201 | #define CONFIG_SYS_CSPR0_EXT CONFIG_SYS_NAND_CSPR_EXT |
190 | 202 | #define CONFIG_SYS_CSPR0 CONFIG_SYS_NAND_CSPR |
191 | 203 | #define CONFIG_SYS_AMASK0 CONFIG_SYS_NAND_AMASK |
... | ... | @@ -215,7 +227,6 @@ |
215 | 227 | #define CONFIG_SYS_CS0_FTIM3 CONFIG_SYS_NOR_FTIM3 |
216 | 228 | #endif |
217 | 229 | |
218 | - | |
219 | 230 | #define CONFIG_SYS_LS_MC_BOOT_TIMEOUT_MS 5000 |
220 | 231 | |
221 | 232 | #define I2C_MUX_CH_VOL_MONITOR 0xA |
... | ... | @@ -274,7 +285,8 @@ |
274 | 285 | |
275 | 286 | #ifndef SPL_NO_QSPI |
276 | 287 | /* QSPI device */ |
277 | -#if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) | |
288 | +#if defined(CONFIG_TFABOOT) || \ | |
289 | + defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) | |
278 | 290 | #define FSL_QSPI_FLASH_SIZE (1 << 26) |
279 | 291 | #define FSL_QSPI_FLASH_NUM 2 |
280 | 292 | #endif |
... | ... | @@ -294,6 +306,26 @@ |
294 | 306 | |
295 | 307 | #ifndef SPL_NO_ENV |
296 | 308 | /* Initial environment variables */ |
309 | +#ifdef CONFIG_TFABOOT | |
310 | +#define QSPI_MC_INIT_CMD \ | |
311 | + "sf probe 0:0;sf read 0x80000000 0xA00000 0x100000;" \ | |
312 | + "sf read 0x80100000 0xE00000 0x100000;" \ | |
313 | + "env exists secureboot && " \ | |
314 | + "sf read 0x80700000 0x700000 0x40000 && " \ | |
315 | + "sf read 0x80740000 0x740000 0x40000 && " \ | |
316 | + "esbc_validate 0x80700000 && " \ | |
317 | + "esbc_validate 0x80740000 ;" \ | |
318 | + "fsl_mc start mc 0x80000000 0x80100000\0" | |
319 | +#define SD_MC_INIT_CMD \ | |
320 | + "mmcinfo;mmc read 0x80000000 0x5000 0x800;" \ | |
321 | + "mmc read 0x80100000 0x7000 0x800;" \ | |
322 | + "env exists secureboot && " \ | |
323 | + "mmc read 0x80700000 0x3800 0x10 && " \ | |
324 | + "mmc read 0x80740000 0x3A00 0x10 && " \ | |
325 | + "esbc_validate 0x80700000 && " \ | |
326 | + "esbc_validate 0x80740000 ;" \ | |
327 | + "fsl_mc start mc 0x80000000 0x80100000\0" | |
328 | +#else | |
297 | 329 | #if defined(CONFIG_QSPI_BOOT) |
298 | 330 | #define MC_INIT_CMD \ |
299 | 331 | "mcinitcmd=sf probe 0:0;sf read 0x80000000 0xA00000 0x100000;" \ |
300 | 332 | |
... | ... | @@ -317,8 +349,10 @@ |
317 | 349 | "fsl_mc start mc 0x80000000 0x80100000\0" \ |
318 | 350 | "mcmemsize=0x70000000\0" |
319 | 351 | #endif |
352 | +#endif /* CONFIG_TFABOOT */ | |
320 | 353 | |
321 | 354 | #undef CONFIG_EXTRA_ENV_SETTINGS |
355 | +#ifdef CONFIG_TFABOOT | |
322 | 356 | #define CONFIG_EXTRA_ENV_SETTINGS \ |
323 | 357 | "BOARD=ls1088ardb\0" \ |
324 | 358 | "hwconfig=fsl_ddr:bank_intlv=auto\0" \ |
... | ... | @@ -344,6 +378,80 @@ |
344 | 378 | "kernel_size=0x2800000\0" \ |
345 | 379 | "kernel_size_sd=0x14000\0" \ |
346 | 380 | "kernelhdr_size_sd=0x10\0" \ |
381 | + QSPI_MC_INIT_CMD \ | |
382 | + "mcmemsize=0x70000000\0" \ | |
383 | + BOOTENV \ | |
384 | + "boot_scripts=ls1088ardb_boot.scr\0" \ | |
385 | + "boot_script_hdr=hdr_ls1088ardb_bs.out\0" \ | |
386 | + "scan_dev_for_boot_part=" \ | |
387 | + "part list ${devtype} ${devnum} devplist; " \ | |
388 | + "env exists devplist || setenv devplist 1; " \ | |
389 | + "for distro_bootpart in ${devplist}; do " \ | |
390 | + "if fstype ${devtype} " \ | |
391 | + "${devnum}:${distro_bootpart} " \ | |
392 | + "bootfstype; then " \ | |
393 | + "run scan_dev_for_boot; " \ | |
394 | + "fi; " \ | |
395 | + "done\0" \ | |
396 | + "scan_dev_for_boot=" \ | |
397 | + "echo Scanning ${devtype} " \ | |
398 | + "${devnum}:${distro_bootpart}...; " \ | |
399 | + "for prefix in ${boot_prefixes}; do " \ | |
400 | + "run scan_dev_for_scripts; " \ | |
401 | + "done;\0" \ | |
402 | + "boot_a_script=" \ | |
403 | + "load ${devtype} ${devnum}:${distro_bootpart} " \ | |
404 | + "${scriptaddr} ${prefix}${script}; " \ | |
405 | + "env exists secureboot && load ${devtype} " \ | |
406 | + "${devnum}:${distro_bootpart} " \ | |
407 | + "${scripthdraddr} ${prefix}${boot_script_hdr} " \ | |
408 | + "&& esbc_validate ${scripthdraddr};" \ | |
409 | + "source ${scriptaddr}\0" \ | |
410 | + "installer=load mmc 0:2 $load_addr " \ | |
411 | + "/flex_installer_arm64.itb; " \ | |
412 | + "env exists mcinitcmd && run mcinitcmd && " \ | |
413 | + "mmc read 0x80001000 0x6800 0x800;" \ | |
414 | + "fsl_mc lazyapply dpl 0x80001000;" \ | |
415 | + "bootm $load_addr#ls1088ardb\0" \ | |
416 | + "qspi_bootcmd=echo Trying load from qspi..;" \ | |
417 | + "sf probe && sf read $load_addr " \ | |
418 | + "$kernel_addr $kernel_size ; env exists secureboot " \ | |
419 | + "&& sf read $kernelheader_addr_r $kernelheader_addr " \ | |
420 | + "$kernelheader_size && esbc_validate ${kernelheader_addr_r}; "\ | |
421 | + "bootm $load_addr#$BOARD\0" \ | |
422 | + "sd_bootcmd=echo Trying load from sd card..;" \ | |
423 | + "mmcinfo; mmc read $load_addr " \ | |
424 | + "$kernel_addr_sd $kernel_size_sd ;" \ | |
425 | + "env exists secureboot && mmc read $kernelheader_addr_r "\ | |
426 | + "$kernelhdr_addr_sd $kernelhdr_size_sd " \ | |
427 | + " && esbc_validate ${kernelheader_addr_r};" \ | |
428 | + "bootm $load_addr#$BOARD\0" | |
429 | +#else | |
430 | +#define CONFIG_EXTRA_ENV_SETTINGS \ | |
431 | + "BOARD=ls1088ardb\0" \ | |
432 | + "hwconfig=fsl_ddr:bank_intlv=auto\0" \ | |
433 | + "ramdisk_addr=0x800000\0" \ | |
434 | + "ramdisk_size=0x2000000\0" \ | |
435 | + "fdt_high=0xa0000000\0" \ | |
436 | + "initrd_high=0xffffffffffffffff\0" \ | |
437 | + "fdt_addr=0x64f00000\0" \ | |
438 | + "kernel_addr=0x1000000\0" \ | |
439 | + "kernel_addr_sd=0x8000\0" \ | |
440 | + "kernelhdr_addr_sd=0x4000\0" \ | |
441 | + "kernel_start=0x580100000\0" \ | |
442 | + "kernelheader_start=0x580800000\0" \ | |
443 | + "scriptaddr=0x80000000\0" \ | |
444 | + "scripthdraddr=0x80080000\0" \ | |
445 | + "fdtheader_addr_r=0x80100000\0" \ | |
446 | + "kernelheader_addr=0x800000\0" \ | |
447 | + "kernelheader_addr_r=0x80200000\0" \ | |
448 | + "kernel_addr_r=0x81000000\0" \ | |
449 | + "kernelheader_size=0x40000\0" \ | |
450 | + "fdt_addr_r=0x90000000\0" \ | |
451 | + "load_addr=0xa0000000\0" \ | |
452 | + "kernel_size=0x2800000\0" \ | |
453 | + "kernel_size_sd=0x14000\0" \ | |
454 | + "kernelhdr_size_sd=0x10\0" \ | |
347 | 455 | MC_INIT_CMD \ |
348 | 456 | BOOTENV \ |
349 | 457 | "boot_scripts=ls1088ardb_boot.scr\0" \ |
350 | 458 | |
... | ... | @@ -391,8 +499,28 @@ |
391 | 499 | "$kernelhdr_addr_sd $kernelhdr_size_sd " \ |
392 | 500 | " && esbc_validate ${kernelheader_addr_r};" \ |
393 | 501 | "bootm $load_addr#$BOARD\0" |
502 | +#endif /* CONFIG_TFABOOT */ | |
394 | 503 | |
395 | 504 | #undef CONFIG_BOOTCOMMAND |
505 | +#ifdef CONFIG_TFABOOT | |
506 | +#define QSPI_NOR_BOOTCOMMAND \ | |
507 | + "sf read 0x80001000 0xd00000 0x100000;" \ | |
508 | + "env exists mcinitcmd && env exists secureboot " \ | |
509 | + " && sf read 0x80780000 0x780000 0x100000 " \ | |
510 | + "&& esbc_validate 0x80780000;env exists mcinitcmd " \ | |
511 | + "&& fsl_mc lazyapply dpl 0x80001000;" \ | |
512 | + "run distro_bootcmd;run qspi_bootcmd;" \ | |
513 | + "env exists secureboot && esbc_halt;" | |
514 | +#define SD_BOOTCOMMAND \ | |
515 | + "env exists mcinitcmd && mmcinfo; " \ | |
516 | + "mmc read 0x80001000 0x6800 0x800; " \ | |
517 | + "env exists mcinitcmd && env exists secureboot " \ | |
518 | + " && mmc read 0x80780000 0x3C00 0x10 " \ | |
519 | + "&& esbc_validate 0x80780000;env exists mcinitcmd " \ | |
520 | + "&& fsl_mc lazyapply dpl 0x80001000;" \ | |
521 | + "run distro_bootcmd;run sd_bootcmd;" \ | |
522 | + "env exists secureboot && esbc_halt;" | |
523 | +#else | |
396 | 524 | #if defined(CONFIG_QSPI_BOOT) |
397 | 525 | /* Try to boot an on-QSPI kernel first, then do normal distro boot */ |
398 | 526 | #define CONFIG_BOOTCOMMAND \ |
... | ... | @@ -416,6 +544,7 @@ |
416 | 544 | "run distro_bootcmd;run sd_bootcmd;" \ |
417 | 545 | "env exists secureboot && esbc_halt;" |
418 | 546 | #endif |
547 | +#endif /* CONFIG_TFABOOT */ | |
419 | 548 | |
420 | 549 | /* MAC/PHY configuration */ |
421 | 550 | #ifdef CONFIG_FSL_MC_ENET |
include/configs/ls2080a_common.h
... | ... | @@ -16,17 +16,23 @@ |
16 | 16 | #include <asm/arch/config.h> |
17 | 17 | |
18 | 18 | /* Link Definitions */ |
19 | +#ifdef CONFIG_TFABOOT | |
20 | +#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SYS_TEXT_BASE | |
21 | +#else | |
19 | 22 | #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_FSL_OCRAM_BASE + 0xfff0) |
23 | +#endif | |
20 | 24 | |
21 | 25 | /* We need architecture specific misc initializations */ |
22 | 26 | |
23 | 27 | /* Link Definitions */ |
28 | +#ifndef CONFIG_TFABOOT | |
24 | 29 | #ifndef CONFIG_QSPI_BOOT |
25 | 30 | #else |
26 | 31 | #define CONFIG_ENV_SIZE 0x2000 /* 8KB */ |
27 | 32 | #define CONFIG_ENV_OFFSET 0x300000 /* 3MB */ |
28 | 33 | #define CONFIG_ENV_SECT_SIZE 0x40000 |
29 | 34 | #endif |
35 | +#endif | |
30 | 36 | |
31 | 37 | #define CONFIG_SKIP_LOWLEVEL_INIT |
32 | 38 | |
... | ... | @@ -185,6 +191,7 @@ |
185 | 191 | "mcinitcmd=fsl_mc start mc 0x580a00000" \ |
186 | 192 | " 0x580e00000 \0" |
187 | 193 | |
194 | +#ifndef CONFIG_TFABOOT | |
188 | 195 | #ifdef CONFIG_SD_BOOT |
189 | 196 | #define CONFIG_BOOTCOMMAND "mmc read 0x80200000 0x6800 0x800;"\ |
190 | 197 | " fsl_mc apply dpl 0x80200000 &&" \ |
... | ... | @@ -194,6 +201,7 @@ |
194 | 201 | #define CONFIG_BOOTCOMMAND "fsl_mc apply dpl 0x580d00000 &&" \ |
195 | 202 | " cp.b $kernel_start $kernel_load" \ |
196 | 203 | " $kernel_size && bootm $kernel_load" |
204 | +#endif | |
197 | 205 | #endif |
198 | 206 | |
199 | 207 | /* Monitor Command Prompt */ |
include/configs/ls2080aqds.h
... | ... | @@ -55,6 +55,15 @@ |
55 | 55 | #define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * \ |
56 | 56 | CONFIG_SYS_SCSI_MAX_LUN) |
57 | 57 | |
58 | +#ifdef CONFIG_TFABOOT | |
59 | +#define CONFIG_SYS_MMC_ENV_DEV 0 | |
60 | +#define CONFIG_ENV_SIZE 0x20000 | |
61 | +#define CONFIG_ENV_OFFSET 0x500000 | |
62 | +#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + \ | |
63 | + CONFIG_ENV_OFFSET) | |
64 | +#define CONFIG_ENV_SECT_SIZE 0x20000 | |
65 | +#endif | |
66 | + | |
58 | 67 | /* undefined CONFIG_FSL_DDR_SYNC_REFRESH for simulator */ |
59 | 68 | |
60 | 69 | #define CONFIG_SYS_NOR0_CSPR_EXT (0x0) |
... | ... | @@ -261,7 +270,7 @@ |
261 | 270 | #define CONFIG_SYS_CS2_FTIM2 CONFIG_SYS_NAND_FTIM2 |
262 | 271 | #define CONFIG_SYS_CS2_FTIM3 CONFIG_SYS_NAND_FTIM3 |
263 | 272 | |
264 | -#ifndef CONFIG_QSPI_BOOT | |
273 | +#if !defined(CONFIG_QSPI_BOOT) && !defined(CONFIG_TFABOOT) | |
265 | 274 | #define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + 0x300000) |
266 | 275 | #define CONFIG_ENV_SECT_SIZE 0x20000 |
267 | 276 | #define CONFIG_ENV_SIZE 0x2000 |
... | ... | @@ -361,6 +370,33 @@ |
361 | 370 | "esbc_validate 0x580740000;" \ |
362 | 371 | "fsl_mc start mc 0x580a00000" \ |
363 | 372 | " 0x580e00000 \0" |
373 | +#else | |
374 | +#ifdef CONFIG_TFABOOT | |
375 | +#define SD_MC_INIT_CMD \ | |
376 | + "mmcinfo;mmc read 0x80000000 0x5000 0x800;" \ | |
377 | + "mmc read 0x80100000 0x7000 0x800;" \ | |
378 | + "fsl_mc start mc 0x80000000 0x80100000\0" | |
379 | +#define IFC_MC_INIT_CMD \ | |
380 | + "fsl_mc start mc 0x580a00000" \ | |
381 | + " 0x580e00000 \0" | |
382 | +#define CONFIG_EXTRA_ENV_SETTINGS \ | |
383 | + "hwconfig=fsl_ddr:bank_intlv=auto\0" \ | |
384 | + "loadaddr=0x80100000\0" \ | |
385 | + "loadaddr_sd=0x90100000\0" \ | |
386 | + "kernel_addr=0x100000\0" \ | |
387 | + "kernel_addr_sd=0x800\0" \ | |
388 | + "ramdisk_addr=0x800000\0" \ | |
389 | + "ramdisk_size=0x2000000\0" \ | |
390 | + "fdt_high=0xa0000000\0" \ | |
391 | + "initrd_high=0xffffffffffffffff\0" \ | |
392 | + "kernel_start=0x581000000\0" \ | |
393 | + "kernel_start_sd=0x8000\0" \ | |
394 | + "kernel_load=0xa0000000\0" \ | |
395 | + "kernel_size=0x2800000\0" \ | |
396 | + "kernel_size_sd=0x14000\0" \ | |
397 | + "mcinitcmd=fsl_mc start mc 0x580a00000" \ | |
398 | + " 0x580e00000 \0" \ | |
399 | + "mcmemsize=0x70000000 \0" | |
364 | 400 | #elif defined(CONFIG_SD_BOOT) |
365 | 401 | #define CONFIG_EXTRA_ENV_SETTINGS \ |
366 | 402 | "hwconfig=fsl_ddr:bank_intlv=auto\0" \ |
367 | 403 | |
... | ... | @@ -392,8 +428,8 @@ |
392 | 428 | "mcmemsize=0x40000000\0" \ |
393 | 429 | "mcinitcmd=fsl_mc start mc 0x580a00000" \ |
394 | 430 | " 0x580e00000 \0" |
431 | +#endif /* CONFIG_TFABOOT */ | |
395 | 432 | #endif /* CONFIG_SECURE_BOOT */ |
396 | - | |
397 | 433 | |
398 | 434 | #if defined(CONFIG_FSL_MC_ENET) && !defined(CONFIG_SPL_BUILD) |
399 | 435 | #define CONFIG_FSL_MEMAC |
include/configs/ls2080ardb.h
... | ... | @@ -69,8 +69,17 @@ |
69 | 69 | #define CONFIG_SYS_SCSI_MAX_LUN 1 |
70 | 70 | #define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * \ |
71 | 71 | CONFIG_SYS_SCSI_MAX_LUN) |
72 | +#ifdef CONFIG_TFABOOT | |
73 | +#define CONFIG_SYS_MMC_ENV_DEV 0 | |
72 | 74 | |
73 | -#ifndef CONFIG_FSL_QSPI | |
75 | +#define CONFIG_ENV_SIZE 0x2000 | |
76 | +#define CONFIG_ENV_OFFSET 0x500000 /* 5MB */ | |
77 | +#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + \ | |
78 | + CONFIG_ENV_OFFSET) | |
79 | +#define CONFIG_ENV_SECT_SIZE 0x40000 | |
80 | +#endif | |
81 | + | |
82 | +#if !defined(CONFIG_FSL_QSPI) || defined(CONFIG_TFABOOT) | |
74 | 83 | /* undefined CONFIG_FSL_DDR_SYNC_REFRESH for simulator */ |
75 | 84 | |
76 | 85 | #define CONFIG_SYS_NOR0_CSPR_EXT (0x0) |
77 | 86 | |
... | ... | @@ -212,9 +221,11 @@ |
212 | 221 | #define CONFIG_SYS_CS0_FTIM2 CONFIG_SYS_NAND_FTIM2 |
213 | 222 | #define CONFIG_SYS_CS0_FTIM3 CONFIG_SYS_NAND_FTIM3 |
214 | 223 | |
224 | +#ifndef CONFIG_TFABOOT | |
215 | 225 | #define CONFIG_ENV_OFFSET (2048 * 1024) |
216 | 226 | #define CONFIG_ENV_SECT_SIZE 0x20000 |
217 | 227 | #define CONFIG_ENV_SIZE 0x2000 |
228 | +#endif | |
218 | 229 | #define CONFIG_SPL_PAD_TO 0x80000 |
219 | 230 | #define CONFIG_SYS_NAND_U_BOOT_OFFS (1024 * 1024) |
220 | 231 | #define CONFIG_SYS_NAND_U_BOOT_SIZE (512 * 1024) |
221 | 232 | |
... | ... | @@ -237,10 +248,12 @@ |
237 | 248 | #define CONFIG_SYS_CS2_FTIM2 CONFIG_SYS_NAND_FTIM2 |
238 | 249 | #define CONFIG_SYS_CS2_FTIM3 CONFIG_SYS_NAND_FTIM3 |
239 | 250 | |
251 | +#ifndef CONFIG_TFABOOT | |
240 | 252 | #define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + 0x300000) |
241 | 253 | #define CONFIG_ENV_SECT_SIZE 0x20000 |
242 | 254 | #define CONFIG_ENV_SIZE 0x2000 |
243 | 255 | #endif |
256 | +#endif | |
244 | 257 | |
245 | 258 | /* Debug Server firmware */ |
246 | 259 | #define CONFIG_SYS_DEBUG_SERVER_FW_IN_NOR |
... | ... | @@ -323,6 +336,27 @@ |
323 | 336 | func(SCSI, scsi, 0) |
324 | 337 | #include <config_distro_bootcmd.h> |
325 | 338 | |
339 | +#ifdef CONFIG_TFABOOT | |
340 | +#define QSPI_MC_INIT_CMD \ | |
341 | + "env exists secureboot && " \ | |
342 | + "esbc_validate 0x20700000 && " \ | |
343 | + "esbc_validate 0x20740000;" \ | |
344 | + "fsl_mc start mc 0x20a00000 0x20e00000 \0" | |
345 | +#define SD_MC_INIT_CMD \ | |
346 | + "mmcinfo;mmc read 0x80000000 0x5000 0x800;" \ | |
347 | + "mmc read 0x80100000 0x7000 0x800;" \ | |
348 | + "env exists secureboot && " \ | |
349 | + "mmc read 0x80700000 0x3800 0x10 && " \ | |
350 | + "mmc read 0x80740000 0x3A00 0x10 && " \ | |
351 | + "esbc_validate 0x80700000 && " \ | |
352 | + "esbc_validate 0x80740000 ;" \ | |
353 | + "fsl_mc start mc 0x80000000 0x80100000\0" | |
354 | +#define IFC_MC_INIT_CMD \ | |
355 | + "env exists secureboot && " \ | |
356 | + "esbc_validate 0x580700000 && " \ | |
357 | + "esbc_validate 0x580740000; " \ | |
358 | + "fsl_mc start mc 0x580a00000 0x580e00000 \0" | |
359 | +#else | |
326 | 360 | #ifdef CONFIG_QSPI_BOOT |
327 | 361 | #define MC_INIT_CMD \ |
328 | 362 | "mcinitcmd=env exists secureboot && " \ |
329 | 363 | |
... | ... | @@ -347,9 +381,11 @@ |
347 | 381 | "esbc_validate 0x580740000; " \ |
348 | 382 | "fsl_mc start mc 0x580a00000 0x580e00000 \0" |
349 | 383 | #endif |
384 | +#endif | |
350 | 385 | |
351 | 386 | /* Initial environment variables */ |
352 | 387 | #undef CONFIG_EXTRA_ENV_SETTINGS |
388 | +#ifdef CONFIG_TFABOOT | |
353 | 389 | #define CONFIG_EXTRA_ENV_SETTINGS \ |
354 | 390 | "hwconfig=fsl_ddr:bank_intlv=auto\0" \ |
355 | 391 | "ramdisk_addr=0x800000\0" \ |
... | ... | @@ -378,6 +414,75 @@ |
378 | 414 | "mmcinfo; mmc read $load_addr " \ |
379 | 415 | "$kernel_addr_sd $kernel_size_sd && " \ |
380 | 416 | "bootm $load_addr#$board\0" \ |
417 | + QSPI_MC_INIT_CMD \ | |
418 | + BOOTENV \ | |
419 | + "boot_scripts=ls2088ardb_boot.scr\0" \ | |
420 | + "boot_script_hdr=hdr_ls2088ardb_bs.out\0" \ | |
421 | + "scan_dev_for_boot_part=" \ | |
422 | + "part list ${devtype} ${devnum} devplist; " \ | |
423 | + "env exists devplist || setenv devplist 1; " \ | |
424 | + "for distro_bootpart in ${devplist}; do " \ | |
425 | + "if fstype ${devtype} " \ | |
426 | + "${devnum}:${distro_bootpart} " \ | |
427 | + "bootfstype; then " \ | |
428 | + "run scan_dev_for_boot; " \ | |
429 | + "fi; " \ | |
430 | + "done\0" \ | |
431 | + "scan_dev_for_boot=" \ | |
432 | + "echo Scanning ${devtype} " \ | |
433 | + "${devnum}:${distro_bootpart}...; " \ | |
434 | + "for prefix in ${boot_prefixes}; do " \ | |
435 | + "run scan_dev_for_scripts; " \ | |
436 | + "done;\0" \ | |
437 | + "boot_a_script=" \ | |
438 | + "load ${devtype} ${devnum}:${distro_bootpart} " \ | |
439 | + "${scriptaddr} ${prefix}${script}; " \ | |
440 | + "env exists secureboot && load ${devtype} " \ | |
441 | + "${devnum}:${distro_bootpart} " \ | |
442 | + "${scripthdraddr} ${prefix}${boot_script_hdr} " \ | |
443 | + "&& esbc_validate ${scripthdraddr};" \ | |
444 | + "source ${scriptaddr}\0" \ | |
445 | + "qspi_bootcmd=echo Trying load from qspi..;" \ | |
446 | + "sf probe && sf read $load_addr " \ | |
447 | + "$kernel_start $kernel_size ; env exists secureboot &&" \ | |
448 | + "sf read $kernelheader_addr_r $kernelheader_start " \ | |
449 | + "$kernelheader_size && esbc_validate ${kernelheader_addr_r}; "\ | |
450 | + " bootm $load_addr#$board\0" \ | |
451 | + "nor_bootcmd=echo Trying load from nor..;" \ | |
452 | + "cp.b $kernel_addr $load_addr " \ | |
453 | + "$kernel_size ; env exists secureboot && " \ | |
454 | + "cp.b $kernelheader_addr $kernelheader_addr_r " \ | |
455 | + "$kernelheader_size && esbc_validate ${kernelheader_addr_r}; "\ | |
456 | + "bootm $load_addr#$board\0" | |
457 | +#else | |
458 | +#define CONFIG_EXTRA_ENV_SETTINGS \ | |
459 | + "hwconfig=fsl_ddr:bank_intlv=auto\0" \ | |
460 | + "ramdisk_addr=0x800000\0" \ | |
461 | + "ramdisk_size=0x2000000\0" \ | |
462 | + "fdt_high=0xa0000000\0" \ | |
463 | + "initrd_high=0xffffffffffffffff\0" \ | |
464 | + "fdt_addr=0x64f00000\0" \ | |
465 | + "kernel_addr=0x581000000\0" \ | |
466 | + "kernel_start=0x1000000\0" \ | |
467 | + "kernelheader_start=0x800000\0" \ | |
468 | + "scriptaddr=0x80000000\0" \ | |
469 | + "scripthdraddr=0x80080000\0" \ | |
470 | + "fdtheader_addr_r=0x80100000\0" \ | |
471 | + "kernelheader_addr_r=0x80200000\0" \ | |
472 | + "kernelheader_addr=0x580800000\0" \ | |
473 | + "kernel_addr_r=0x81000000\0" \ | |
474 | + "kernelheader_size=0x40000\0" \ | |
475 | + "fdt_addr_r=0x90000000\0" \ | |
476 | + "load_addr=0xa0000000\0" \ | |
477 | + "kernel_size=0x2800000\0" \ | |
478 | + "kernel_addr_sd=0x8000\0" \ | |
479 | + "kernel_size_sd=0x14000\0" \ | |
480 | + "console=ttyAMA0,38400n8\0" \ | |
481 | + "mcmemsize=0x70000000\0" \ | |
482 | + "sd_bootcmd=echo Trying load from SD ..;" \ | |
483 | + "mmcinfo; mmc read $load_addr " \ | |
484 | + "$kernel_addr_sd $kernel_size_sd && " \ | |
485 | + "bootm $load_addr#$board\0" \ | |
381 | 486 | MC_INIT_CMD \ |
382 | 487 | BOOTENV \ |
383 | 488 | "boot_scripts=ls2088ardb_boot.scr\0" \ |
384 | 489 | |
... | ... | @@ -418,7 +523,36 @@ |
418 | 523 | "cp.b $kernelheader_addr $kernelheader_addr_r " \ |
419 | 524 | "$kernelheader_size && esbc_validate ${kernelheader_addr_r}; "\ |
420 | 525 | "bootm $load_addr#$board\0" |
526 | +#endif | |
421 | 527 | |
528 | +#ifdef CONFIG_TFABOOT | |
529 | +#define QSPI_NOR_BOOTCOMMAND \ | |
530 | + "env exists mcinitcmd && env exists secureboot "\ | |
531 | + "&& esbc_validate 0x20780000; " \ | |
532 | + "env exists mcinitcmd && " \ | |
533 | + "fsl_mc lazyapply dpl 0x20d00000; " \ | |
534 | + "run distro_bootcmd;run qspi_bootcmd; " \ | |
535 | + "env exists secureboot && esbc_halt;" | |
536 | + | |
537 | +/* Try to boot an on-SD kernel first, then do normal distro boot */ | |
538 | +#define SD_BOOTCOMMAND \ | |
539 | + "env exists mcinitcmd && env exists secureboot "\ | |
540 | + "&& mmcinfo && mmc read $load_addr 0x3c00 0x800 " \ | |
541 | + "&& esbc_validate $load_addr; " \ | |
542 | + "env exists mcinitcmd && run mcinitcmd " \ | |
543 | + "&& mmc read 0x88000000 0x6800 0x800 " \ | |
544 | + "&& fsl_mc lazyapply dpl 0x88000000; " \ | |
545 | + "run distro_bootcmd;run sd_bootcmd; " \ | |
546 | + "env exists secureboot && esbc_halt;" | |
547 | + | |
548 | +/* Try to boot an on-NOR kernel first, then do normal distro boot */ | |
549 | +#define IFC_NOR_BOOTCOMMAND \ | |
550 | + "env exists mcinitcmd && env exists secureboot "\ | |
551 | + "&& esbc_validate 0x580780000; env exists mcinitcmd "\ | |
552 | + "&& fsl_mc lazyapply dpl 0x580d00000;" \ | |
553 | + "run distro_bootcmd;run nor_bootcmd; " \ | |
554 | + "env exists secureboot && esbc_halt;" | |
555 | +#else | |
422 | 556 | #undef CONFIG_BOOTCOMMAND |
423 | 557 | #ifdef CONFIG_QSPI_BOOT |
424 | 558 | /* Try to boot an on-QSPI kernel first, then do normal distro boot */ |
... | ... | @@ -448,6 +582,7 @@ |
448 | 582 | "&& fsl_mc lazyapply dpl 0x580d00000;" \ |
449 | 583 | "run distro_bootcmd;run nor_bootcmd; " \ |
450 | 584 | "env exists secureboot && esbc_halt;" |
585 | +#endif | |
451 | 586 | #endif |
452 | 587 | |
453 | 588 | /* MAC/PHY configuration */ |
include/environment.h
... | ... | @@ -162,15 +162,6 @@ |
162 | 162 | extern void env_reloc(void); |
163 | 163 | #endif |
164 | 164 | |
165 | -#ifdef CONFIG_ENV_IS_IN_MMC | |
166 | -#include <mmc.h> | |
167 | - | |
168 | -extern int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr); | |
169 | -# ifdef CONFIG_SYS_MMC_ENV_PART | |
170 | -extern uint mmc_get_env_part(struct mmc *mmc); | |
171 | -# endif | |
172 | -#endif | |
173 | - | |
174 | 165 | #ifndef DO_DEPS_ONLY |
175 | 166 | |
176 | 167 | #include <env_attr.h> |
include/fsl-mc/fsl_mc.h
include/mmc.h
... | ... | @@ -828,6 +828,9 @@ |
828 | 828 | int board_mmc_init(bd_t *bis); |
829 | 829 | int cpu_mmc_init(bd_t *bis); |
830 | 830 | int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr); |
831 | +# ifdef CONFIG_SYS_MMC_ENV_PART | |
832 | +extern uint mmc_get_env_part(struct mmc *mmc); | |
833 | +# endif | |
831 | 834 | int mmc_get_env_dev(void); |
832 | 835 | |
833 | 836 | /* Set block count limit because of 16 bit register limit on some hardware*/ |