uboot-mediatek: update to U-Boot 2024.01 release
[openwrt/staging/dangole.git] / package / boot / uboot-mediatek / patches / 100-18-board-mt7629-add-support-for-booting-from-SPI-NAND.patch
1 From 452dc98572f8353f77551bcce5a2ca8cd050f498 Mon Sep 17 00:00:00 2001
2 From: Weijie Gao <weijie.gao@mediatek.com>
3 Date: Wed, 3 Mar 2021 10:48:53 +0800
4 Subject: [PATCH 53/71] board: mt7629: add support for booting from SPI-NAND
5
6 Add support for mt7629 to boot from SPI-NAND.
7 Add a new defconfig for mt7629+spi-nand configuration.
8
9 Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
10 ---
11 arch/arm/dts/mt7629-rfb-u-boot.dtsi | 8 ++
12 arch/arm/dts/mt7629-rfb.dts | 10 +++
13 arch/arm/dts/mt7629.dtsi | 16 ++++
14 arch/arm/mach-mediatek/Kconfig | 4 +-
15 board/mediatek/mt7629/Kconfig | 40 ++++++++++
16 board/mediatek/mt7629/mt7629_rfb.c | 5 ++
17 configs/mt7629_nand_rfb_defconfig | 113 ++++++++++++++++++++++++++++
18 7 files changed, 195 insertions(+), 1 deletion(-)
19 create mode 100644 board/mediatek/mt7629/Kconfig
20 create mode 100644 configs/mt7629_nand_rfb_defconfig
21
22 --- a/arch/arm/dts/mt7629-rfb-u-boot.dtsi
23 +++ b/arch/arm/dts/mt7629-rfb-u-boot.dtsi
24 @@ -40,3 +40,11 @@
25 &snfi {
26 bootph-all;
27 };
28 +
29 +&pinctrl {
30 + u-boot,dm-pre-reloc;
31 +};
32 +
33 +&snand {
34 + u-boot,dm-pre-reloc;
35 +};
36 --- a/arch/arm/dts/mt7629-rfb.dts
37 +++ b/arch/arm/dts/mt7629-rfb.dts
38 @@ -47,9 +47,12 @@
39 };
40
41 snfi_pins: snfi-pins {
42 + u-boot,dm-pre-reloc;
43 +
44 mux {
45 function = "flash";
46 groups = "snfi";
47 + u-boot,dm-pre-reloc;
48 };
49 };
50
51 @@ -102,6 +105,13 @@
52 };
53 };
54
55 +&snand {
56 + pinctrl-names = "default";
57 + pinctrl-0 = <&snfi_pins>;
58 + status = "okay";
59 + quad-spi;
60 +};
61 +
62 &uart0 {
63 pinctrl-names = "default";
64 pinctrl-0 = <&uart0_pins>;
65 --- a/arch/arm/dts/mt7629.dtsi
66 +++ b/arch/arm/dts/mt7629.dtsi
67 @@ -229,6 +229,22 @@
68 #size-cells = <0>;
69 };
70
71 + snand: snand@1100d000 {
72 + compatible = "mediatek,mt7629-snand";
73 + reg = <0x1100d000 0x1000>,
74 + <0x1100e000 0x1000>;
75 + reg-names = "nfi", "ecc";
76 + clocks = <&pericfg CLK_PERI_NFI_PD>,
77 + <&pericfg CLK_PERI_SNFI_PD>,
78 + <&pericfg CLK_PERI_NFIECC_PD>;
79 + clock-names = "nfi_clk", "pad_clk", "ecc_clk";
80 + assigned-clocks = <&topckgen CLK_TOP_AXI_SEL>,
81 + <&topckgen CLK_TOP_NFI_INFRA_SEL>;
82 + assigned-clock-parents = <&topckgen CLK_TOP_SYSPLL1_D2>,
83 + <&topckgen CLK_TOP_UNIVPLL2_D8>;
84 + status = "disabled";
85 + };
86 +
87 snor: snor@11014000 {
88 compatible = "mediatek,mtk-snor";
89 reg = <0x11014000 0x1000>;
90 --- a/arch/arm/mach-mediatek/Kconfig
91 +++ b/arch/arm/mach-mediatek/Kconfig
92 @@ -144,9 +144,11 @@ config SYS_CONFIG_NAME
93
94 config MTK_BROM_HEADER_INFO
95 string
96 - default "media=nor" if TARGET_MT8518 || TARGET_MT8512 || TARGET_MT7629 || TARGET_MT7622
97 + default "media=nor" if TARGET_MT8518 || TARGET_MT8512 || TARGET_MT7622
98 default "media=emmc" if TARGET_MT8516 || TARGET_MT8365 || TARGET_MT8183
99 default "media=snand;nandinfo=2k+64" if TARGET_MT7981 || TARGET_MT7986 || TARGET_MT7988
100 default "lk=1" if TARGET_MT7623
101
102 +source "board/mediatek/mt7629/Kconfig"
103 +
104 endif
105 --- /dev/null
106 +++ b/board/mediatek/mt7629/Kconfig
107 @@ -0,0 +1,40 @@
108 +if TARGET_MT7629
109 +
110 +config MTK_BROM_HEADER_INFO
111 + string
112 + default "media=nor" if BOOT_FROM_SNOR
113 + default "media=snand;nandinfo=2k+64" if BOOT_FROM_SNAND_2K_64
114 + default "media=snand;nandinfo=2k+128" if BOOT_FROM_SNAND_2K_128
115 + default "media=snand;nandinfo=4k+128" if BOOT_FROM_SNAND_4K_128
116 + default "media=snand;nandinfo=4k+256" if BOOT_FROM_SNAND_4K_256
117 +
118 +choice
119 + prompt "Boot device"
120 + default BOOT_FROM_SNOR
121 +
122 +config BOOT_FROM_SNOR
123 + bool "SPI-NOR"
124 +
125 +config BOOT_FROM_SNAND_2K_64
126 + bool "SPI-NAND (2K+64)"
127 + select MT7629_BOOT_FROM_SNAND
128 +
129 +config BOOT_FROM_SNAND_2K_128
130 + bool "SPI-NAND (2K+128)"
131 + select MT7629_BOOT_FROM_SNAND
132 +
133 +config BOOT_FROM_SNAND_4K_128
134 + bool "SPI-NAND (4K+128)"
135 + select MT7629_BOOT_FROM_SNAND
136 +
137 +config BOOT_FROM_SNAND_4K_256
138 + bool "SPI-NAND (4K+256)"
139 + select MT7629_BOOT_FROM_SNAND
140 +
141 +endchoice
142 +
143 +config MT7629_BOOT_FROM_SNAND
144 + bool
145 + default n
146 +
147 +endif
148 --- a/board/mediatek/mt7629/mt7629_rfb.c
149 +++ b/board/mediatek/mt7629/mt7629_rfb.c
150 @@ -15,3 +15,8 @@ int board_init(void)
151
152 return 0;
153 }
154 +
155 +uint32_t spl_nand_get_uboot_raw_page(void)
156 +{
157 + return CONFIG_SPL_PAD_TO;
158 +}
159 --- /dev/null
160 +++ b/configs/mt7629_nand_rfb_defconfig
161 @@ -0,0 +1,113 @@
162 +CONFIG_ARM=y
163 +CONFIG_SYS_ARCH_TIMER=y
164 +CONFIG_SYS_THUMB_BUILD=y
165 +CONFIG_ARCH_MEDIATEK=y
166 +CONFIG_TEXT_BASE=0x41e00000
167 +CONFIG_SYS_MALLOC_F_LEN=0x4000
168 +CONFIG_NR_DRAM_BANKS=1
169 +CONFIG_ENV_SIZE=0x20000
170 +CONFIG_ENV_OFFSET=0x0
171 +CONFIG_DEFAULT_DEVICE_TREE="mt7629-rfb"
172 +CONFIG_SPL_TEXT_BASE=0x201000
173 +CONFIG_TARGET_MT7629=y
174 +CONFIG_BOOT_FROM_SNAND_2K_64=y
175 +CONFIG_SPL_SERIAL=y
176 +CONFIG_SPL_STACK_R_ADDR=0x40800000
177 +CONFIG_SYS_LOAD_ADDR=0x42007f1c
178 +CONFIG_SPL_PAYLOAD="u-boot.img"
179 +CONFIG_BUILD_TARGET="u-boot-mtk.bin"
180 +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
181 +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x41fffef0
182 +CONFIG_SPL_IMAGE="spl/u-boot-spl-mtk.bin"
183 +CONFIG_FIT=y
184 +# CONFIG_AUTOBOOT is not set
185 +CONFIG_DEFAULT_FDT_FILE="mt7629-rfb"
186 +CONFIG_SYS_CONSOLE_IS_IN_ENV=y
187 +# CONFIG_DISPLAY_BOARDINFO is not set
188 +CONFIG_SPL_MAX_SIZE=0x20000
189 +CONFIG_SPL_FOOTPRINT_LIMIT=y
190 +CONFIG_SPL_MAX_FOOTPRINT=0x20000
191 +CONFIG_SPL_SYS_MALLOC_SIMPLE=y
192 +# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
193 +CONFIG_SPL_STACK=0x106000
194 +CONFIG_SPL_STACK_R=y
195 +CONFIG_SPL_MTD_SUPPORT=y
196 +CONFIG_SPL_NAND_SUPPORT=y
197 +CONFIG_SPL_WATCHDOG=y
198 +CONFIG_HUSH_PARSER=y
199 +CONFIG_SYS_PROMPT="U-Boot> "
200 +# CONFIG_BOOTM_NETBSD is not set
201 +# CONFIG_BOOTM_PLAN9 is not set
202 +# CONFIG_BOOTM_RTEMS is not set
203 +# CONFIG_BOOTM_VXWORKS is not set
204 +CONFIG_SYS_BOOTM_LEN=0x4000000
205 +CONFIG_CMD_BOOTMENU=y
206 +# CONFIG_CMD_ELF is not set
207 +# CONFIG_CMD_XIMG is not set
208 +CONFIG_CMD_BIND=y
209 +CONFIG_CMD_DM=y
210 +# CONFIG_CMD_FLASH is not set
211 +CONFIG_CMD_GPIO=y
212 +CONFIG_CMD_MTD=y
213 +CONFIG_CMD_USB=y
214 +# CONFIG_CMD_SETEXPR is not set
215 +# CONFIG_CMD_NFS is not set
216 +CONFIG_CMD_PING=y
217 +CONFIG_CMD_FAT=y
218 +CONFIG_CMD_FS_GENERIC=y
219 +CONFIG_CMD_LOG=y
220 +CONFIG_OF_SPL_REMOVE_PROPS="interrupt-parent assigned-clocks assigned-clock-parents"
221 +CONFIG_ENV_OVERWRITE=y
222 +CONFIG_ENV_IS_IN_MTD=y
223 +CONFIG_ENV_MTD_NAME="u-boot-env"
224 +CONFIG_ENV_SIZE_REDUND=0x40000
225 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
226 +CONFIG_NET_RANDOM_ETHADDR=y
227 +CONFIG_SPL_DM_SEQ_ALIAS=y
228 +CONFIG_REGMAP=y
229 +CONFIG_SPL_REGMAP=y
230 +CONFIG_SYSCON=y
231 +CONFIG_SPL_SYSCON=y
232 +CONFIG_CLK=y
233 +CONFIG_SPL_CLK=y
234 +# CONFIG_MMC is not set
235 +CONFIG_MTD=y
236 +CONFIG_DM_MTD=y
237 +CONFIG_MTK_SPI_NAND=y
238 +CONFIG_MTK_SPI_NAND_MTD=y
239 +CONFIG_SPL_MTK_SPI_NAND=y
240 +CONFIG_DM_ETH=y
241 +CONFIG_MEDIATEK_ETH=y
242 +CONFIG_PHY=y
243 +CONFIG_PHY_MTK_TPHY=y
244 +CONFIG_PINCTRL=y
245 +CONFIG_PINCONF=y
246 +CONFIG_SPL_PINCTRL=y
247 +CONFIG_SPL_PINCONF=y
248 +CONFIG_PINCTRL_MT7629=y
249 +CONFIG_POWER_DOMAIN=y
250 +CONFIG_MTK_POWER_DOMAIN=y
251 +CONFIG_DM_REGULATOR=y
252 +CONFIG_DM_REGULATOR_FIXED=y
253 +CONFIG_RAM=y
254 +CONFIG_SPL_RAM=y
255 +CONFIG_DM_SERIAL=y
256 +CONFIG_MTK_SERIAL=y
257 +CONFIG_SPI=y
258 +CONFIG_DM_SPI=y
259 +CONFIG_SPI_MEM=y
260 +CONFIG_MTK_SNFI_SPI=y
261 +CONFIG_SYSRESET=y
262 +CONFIG_SPL_SYSRESET=y
263 +CONFIG_SYSRESET_WATCHDOG=y
264 +CONFIG_USB=y
265 +# CONFIG_SPL_DM_USB is not set
266 +CONFIG_USB_XHCI_HCD=y
267 +CONFIG_USB_XHCI_MTK=y
268 +CONFIG_USB_STORAGE=y
269 +CONFIG_WDT_MTK=y
270 +# CONFIG_SHA256 is not set
271 +# CONFIG_SPL_SHA1 is not set
272 +CONFIG_LZMA=y
273 +CONFIG_SPL_LZMA=y
274 +# CONFIG_EFI_LOADER is not set