2 +++ b/configs/mt7988a_bananapi_bpi-r4-emmc_defconfig
5 +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
6 +CONFIG_POSITION_INDEPENDENT=y
7 +CONFIG_ARCH_MEDIATEK=y
8 +CONFIG_TEXT_BASE=0x41e00000
9 +CONFIG_SYS_MALLOC_F_LEN=0x4000
10 +CONFIG_NR_DRAM_BANKS=1
11 +CONFIG_ENV_SIZE=0x40000
12 +CONFIG_ENV_OFFSET=0x400000
13 +CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-emmc"
14 +CONFIG_OF_LIBFDT_OVERLAY=y
15 +CONFIG_TARGET_MT7988=y
16 +CONFIG_SYS_LOAD_ADDR=0x50000000
17 +CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
18 +CONFIG_DEBUG_UART_BASE=0x11000000
19 +CONFIG_DEBUG_UART_CLOCK=40000000
20 +CONFIG_ENV_OFFSET_REDUND=0x440000
26 +CONFIG_AUTOBOOT_KEYED=y
27 +CONFIG_AUTOBOOT_MENU_SHOW=y
28 +CONFIG_OF_SYSTEM_SETUP=y
29 +CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-emmc.dtb"
30 +CONFIG_SYS_CBSIZE=512
31 +CONFIG_SYS_PBSIZE=1049
33 +CONFIG_PRE_CONSOLE_BUFFER=y
35 +CONFIG_BOARD_LATE_INIT=y
37 +CONFIG_SYS_PROMPT="MT7988> "
40 +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
41 +CONFIG_CMD_BOOTMENU=y
43 +CONFIG_CMD_ERASEENV=y
44 +CONFIG_CMD_ENV_FLAGS=y
60 +CONFIG_CMD_LINK_LOCAL=y
67 +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
73 +CONFIG_CMD_FS_GENERIC=y
76 +CONFIG_CMD_UBI_RENAME=y
78 +CONFIG_ENV_OVERWRITE=y
79 +CONFIG_ENV_IS_IN_MMC=y
80 +CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
81 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
82 +CONFIG_USE_DEFAULT_ENV_FILE=y
83 +CONFIG_DEFAULT_ENV_FILE="defenvs/bananapi_bpi-r4_emmc_env"
84 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
85 +CONFIG_VERSION_VARIABLE=y
88 +CONFIG_IPADDR="192.168.1.1"
89 +CONFIG_USE_SERVERIP=y
90 +CONFIG_SERVERIP="192.168.1.254"
91 +CONFIG_NET_RANDOM_ETHADDR=y
102 +CONFIG_SUPPORT_EMMC_BOOT=y
103 +CONFIG_MMC_HS200_SUPPORT=y
107 +CONFIG_MTD_SPI_NAND=y
108 +CONFIG_DM_SPI_FLASH=y
109 +CONFIG_SPI_FLASH_WINBOND=y
110 +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
111 +CONFIG_SPI_FLASH_MTD=y
112 +CONFIG_MTD_UBI_FASTMAP=y
114 +CONFIG_MEDIATEK_ETH=y
115 +CONFIG_PCIE_MEDIATEK=y
117 +CONFIG_PHY_MTK_TPHY=y
120 +CONFIG_PINCTRL_MT7988=y
121 +CONFIG_POWER_DOMAIN=y
122 +CONFIG_MTK_POWER_DOMAIN=y
123 +CONFIG_DM_REGULATOR=y
124 +CONFIG_DM_REGULATOR_FIXED=y
125 +CONFIG_DM_REGULATOR_GPIO=y
131 +CONFIG_SERIAL_RX_BUFFER=y
137 +CONFIG_USB_XHCI_HCD=y
138 +CONFIG_USB_XHCI_MTK=y
139 +CONFIG_USB_STORAGE=y
143 +++ b/configs/mt7988a_bananapi_bpi-r4-sdmmc_defconfig
146 +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
147 +CONFIG_POSITION_INDEPENDENT=y
148 +CONFIG_ARCH_MEDIATEK=y
149 +CONFIG_TEXT_BASE=0x41e00000
150 +CONFIG_SYS_MALLOC_F_LEN=0x4000
151 +CONFIG_NR_DRAM_BANKS=1
152 +CONFIG_ENV_SIZE=0x40000
153 +CONFIG_ENV_OFFSET=0x400000
154 +CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-sd"
155 +CONFIG_OF_LIBFDT_OVERLAY=y
156 +CONFIG_TARGET_MT7988=y
157 +CONFIG_SYS_LOAD_ADDR=0x50000000
158 +CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
159 +CONFIG_DEBUG_UART_BASE=0x11000000
160 +CONFIG_DEBUG_UART_CLOCK=40000000
161 +CONFIG_ENV_OFFSET_REDUND=0x440000
167 +CONFIG_AUTOBOOT_KEYED=y
168 +CONFIG_AUTOBOOT_MENU_SHOW=y
169 +CONFIG_OF_SYSTEM_SETUP=y
170 +CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-sd.dtb"
171 +CONFIG_SYS_CBSIZE=512
172 +CONFIG_SYS_PBSIZE=1049
174 +CONFIG_PRE_CONSOLE_BUFFER=y
176 +CONFIG_BOARD_LATE_INIT=y
177 +CONFIG_HUSH_PARSER=y
178 +CONFIG_SYS_PROMPT="MT7988> "
180 +CONFIG_CMD_LICENSE=y
181 +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
182 +CONFIG_CMD_BOOTMENU=y
184 +CONFIG_CMD_ERASEENV=y
185 +CONFIG_CMD_ENV_FLAGS=y
186 +CONFIG_CMD_STRINGS=y
195 +CONFIG_CMD_SF_TEST=y
197 +CONFIG_CMD_TFTPSRV=y
201 +CONFIG_CMD_LINK_LOCAL=y
208 +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
214 +CONFIG_CMD_FS_GENERIC=y
215 +CONFIG_CMD_FS_UUID=y
217 +CONFIG_CMD_UBI_RENAME=y
219 +CONFIG_ENV_OVERWRITE=y
220 +CONFIG_ENV_IS_IN_MMC=y
221 +CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
222 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
223 +CONFIG_USE_DEFAULT_ENV_FILE=y
224 +CONFIG_DEFAULT_ENV_FILE="defenvs/bananapi_bpi-r4_sdmmc_env"
225 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
226 +CONFIG_VERSION_VARIABLE=y
229 +CONFIG_IPADDR="192.168.1.1"
230 +CONFIG_USE_SERVERIP=y
231 +CONFIG_SERVERIP="192.168.1.254"
232 +CONFIG_NET_RANDOM_ETHADDR=y
237 +CONFIG_BUTTON_GPIO=y
243 +CONFIG_SUPPORT_EMMC_BOOT=y
244 +CONFIG_MMC_HS200_SUPPORT=y
248 +CONFIG_MTD_SPI_NAND=y
249 +CONFIG_DM_SPI_FLASH=y
250 +CONFIG_SPI_FLASH_WINBOND=y
251 +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
252 +CONFIG_SPI_FLASH_MTD=y
253 +CONFIG_MTD_UBI_FASTMAP=y
255 +CONFIG_MEDIATEK_ETH=y
256 +CONFIG_PCIE_MEDIATEK=y
258 +CONFIG_PHY_MTK_TPHY=y
261 +CONFIG_PINCTRL_MT7988=y
262 +CONFIG_POWER_DOMAIN=y
263 +CONFIG_MTK_POWER_DOMAIN=y
264 +CONFIG_DM_REGULATOR=y
265 +CONFIG_DM_REGULATOR_FIXED=y
266 +CONFIG_DM_REGULATOR_GPIO=y
272 +CONFIG_SERIAL_RX_BUFFER=y
278 +CONFIG_USB_XHCI_HCD=y
279 +CONFIG_USB_XHCI_MTK=y
280 +CONFIG_USB_STORAGE=y
284 +++ b/configs/mt7988a_bananapi_bpi-r4-snand_defconfig
287 +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
288 +CONFIG_POSITION_INDEPENDENT=y
289 +CONFIG_ARCH_MEDIATEK=y
290 +CONFIG_TEXT_BASE=0x41e00000
291 +CONFIG_SYS_MALLOC_F_LEN=0x4000
292 +CONFIG_NR_DRAM_BANKS=1
293 +CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-emmc"
294 +CONFIG_OF_LIBFDT_OVERLAY=y
295 +CONFIG_TARGET_MT7988=y
296 +CONFIG_SYS_LOAD_ADDR=0x50000000
297 +CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
298 +CONFIG_DEBUG_UART_BASE=0x11000000
299 +CONFIG_DEBUG_UART_CLOCK=40000000
305 +CONFIG_AUTOBOOT_KEYED=y
306 +CONFIG_AUTOBOOT_MENU_SHOW=y
307 +CONFIG_OF_SYSTEM_SETUP=y
308 +CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-emmc.dtb"
309 +CONFIG_SYS_CBSIZE=512
310 +CONFIG_SYS_PBSIZE=1049
312 +CONFIG_PRE_CONSOLE_BUFFER=y
314 +CONFIG_BOARD_LATE_INIT=y
315 +CONFIG_HUSH_PARSER=y
316 +CONFIG_SYS_PROMPT="MT7988> "
318 +CONFIG_CMD_LICENSE=y
319 +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
320 +CONFIG_CMD_BOOTMENU=y
322 +CONFIG_CMD_ERASEENV=y
323 +CONFIG_CMD_ENV_FLAGS=y
324 +CONFIG_CMD_STRINGS=y
333 +CONFIG_CMD_SF_TEST=y
335 +CONFIG_CMD_TFTPSRV=y
339 +CONFIG_CMD_LINK_LOCAL=y
346 +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
352 +CONFIG_CMD_FS_GENERIC=y
353 +CONFIG_CMD_FS_UUID=y
355 +CONFIG_CMD_UBI_RENAME=y
357 +CONFIG_ENV_OVERWRITE=y
358 +CONFIG_ENV_IS_IN_UBI=y
359 +CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
360 +CONFIG_ENV_UBI_PART="ubi"
361 +CONFIG_ENV_UBI_VOLUME="ubootenv"
362 +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2"
363 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
364 +CONFIG_USE_DEFAULT_ENV_FILE=y
365 +CONFIG_DEFAULT_ENV_FILE="defenvs/bananapi_bpi-r4_snand_env"
366 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
367 +CONFIG_VERSION_VARIABLE=y
370 +CONFIG_IPADDR="192.168.1.1"
371 +CONFIG_USE_SERVERIP=y
372 +CONFIG_SERVERIP="192.168.1.254"
373 +CONFIG_NET_RANDOM_ETHADDR=y
378 +CONFIG_BUTTON_GPIO=y
384 +CONFIG_SUPPORT_EMMC_BOOT=y
385 +CONFIG_MMC_HS200_SUPPORT=y
389 +CONFIG_MTD_SPI_NAND=y
390 +CONFIG_DM_SPI_FLASH=y
391 +CONFIG_SPI_FLASH_WINBOND=y
392 +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
393 +CONFIG_SPI_FLASH_MTD=y
394 +CONFIG_MTD_UBI_FASTMAP=y
396 +CONFIG_MEDIATEK_ETH=y
397 +CONFIG_PCIE_MEDIATEK=y
399 +CONFIG_PHY_MTK_TPHY=y
402 +CONFIG_PINCTRL_MT7988=y
403 +CONFIG_POWER_DOMAIN=y
404 +CONFIG_MTK_POWER_DOMAIN=y
405 +CONFIG_DM_REGULATOR=y
406 +CONFIG_DM_REGULATOR_FIXED=y
407 +CONFIG_DM_REGULATOR_GPIO=y
413 +CONFIG_SERIAL_RX_BUFFER=y
419 +CONFIG_USB_XHCI_HCD=y
420 +CONFIG_USB_XHCI_MTK=y
421 +CONFIG_USB_STORAGE=y
425 +++ b/defenvs/bananapi_bpi-r4_sdmmc_env
428 +serverip=192.168.1.254
430 +bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait
431 +bootcmd=if pstore check ; then run boot_recovery ; else run boot_sdmmc ; fi
432 +bootconf=config-mt7988a-bananapi-bpi-r4
433 +bootconf_sd=mt7988a-bananapi-bpi-r4-sd
434 +bootconf_emmc=mt7988a-bananapi-bpi-r4-emmc
437 +bootfile=openwrt-mediatek-filogic-bananapi_bpi-r4-initramfs-recovery.itb
438 +bootfile_upg=openwrt-mediatek-filogic-bananapi_bpi-r4-squashfs-sysupgrade.itb
439 +bootled_pwr=green:status
440 +bootled_rec=blue:status
441 +bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
444 +bootmenu_title=
\e[0;34m( ( (
\e[1;39mOpenWrt
\e[0;34m ) ) )
\e[0;36m[SD card]
\e[0m
445 +bootmenu_0=Initialize environment.=run _firstboot
446 +bootmenu_0d=Run default boot command.=run boot_default
447 +bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
448 +bootmenu_2=Boot production system from SD card.=run boot_production ; run bootmenu_confirm_return
449 +bootmenu_3=Boot recovery system from SD card.=run boot_recovery ; run bootmenu_confirm_return
450 +bootmenu_4=Load production system via TFTP then write to SD card.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
451 +bootmenu_5=Load recovery system via TFTP then write to SD card.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
452 +bootmenu_6=
\e[31mInstall bootloader, recovery and production to NAND.
\e[0m=if nand info ; then run ubi_init ; else echo "NAND not detected" ; fi ; run bootmenu_confirm_return
453 +bootmenu_7=Reboot.=reset
454 +bootmenu_8=Reset all settings to factory defaults.=run reset_factory ; reset
455 +boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
456 +boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
457 +boot_production=led $bootled_pwr on ; run sdmmc_read_production && bootm $loadaddr#$bootconf#$bootconf_sd#$bootconf_extra ; led $bootled_pwr off
458 +boot_recovery=led $bootled_rec on ; run sdmmc_read_recovery && bootm $loadaddr#$bootconf#$bootconf_emmc ; led $bootled_rec off
459 +boot_sdmmc=run boot_production ; run boot_recovery
460 +boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
461 +boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run sdmmc_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf#$bootconf_sd#$bootconf_extra ; fi
462 +boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run sdmmc_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf#$bootconf_sd ; fi
463 +boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf#$bootconf_sd
464 +mmc_write_vol=imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc erase 0x$part_addr 0x$image_size && mmc write $loadaddr 0x$part_addr 0x$image_size
465 +mmc_read_vol=mmc read $loadaddr $part_addr 0x100 && imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc read $loadaddr 0x$part_addr 0x$image_size && setexpr filesize $image_size * 0x200
466 +part_default=production
467 +part_recovery=recovery
468 +reset_factory=eraseenv && reset
469 +sdmmc_read_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_read_vol
470 +sdmmc_read_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_read_vol
471 +sdmmc_read_snand_bl2=part start mmc 0 install part_addr && mmc read $loadaddr $part_addr 0x400
472 +sdmmc_read_snand_fip=part start mmc 0 install part_addr && setexpr offset $part_addr + 0x800 && mmc read $loadaddr $offset 0x1000
473 +sdmmc_read_emmc_install=part start mmc 0 install part_addr && setexpr offset $part_addr + 0x3800 && mmc read $loadaddr $offset 0x4000
474 +sdmmc_write_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_write_vol
475 +sdmmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
476 +snand_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr 0x0 0x80000 && mtd write bl2 $loadaddr 0x80000 0x80000 && mtd write bl2 $loadaddr 0x100000 0x80000 && mtd write bl2 $loadaddr 0x180000 0x80000
477 +ubi_create_env=ubi create ubootenv 0x100000 dynamic ; ubi create ubootenv2 0x100000 dynamic
478 +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi
479 +ubi_init=run ubi_format && run ubi_init_bl && run ubi_create_env && run ubi_init_openwrt && run ubi_init_emmc_install
480 +ubi_init_openwrt=run sdmmc_read_recovery && iminfo $loadaddr && run ubi_write_recovery ; run sdmmc_read_production && iminfo $loadaddr && run ubi_write_production
481 +ubi_init_bl=run sdmmc_read_snand_bl2 && run snand_write_bl2 && run sdmmc_read_snand_fip && run ubi_write_fip
482 +ubi_init_emmc_install=run sdmmc_read_emmc_install && run ubi_write_emmc_install
483 +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
484 +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
485 +ubi_write_fip=run ubi_remove_rootfs ; ubi check fip && ubi remove fip ; ubi create fip 0x200000 static ; ubi write $loadaddr fip 0x200000
486 +ubi_write_emmc_install=ubi check emmc_install && ubi remove emmc_install ; ubi create emmc_install 0x800000 dynamic ; ubi write $loadaddr emmc_install 0x800000
487 +ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
488 +ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
489 +_init_env=setenv _init_env ; setenv _create_env ; saveenv ; saveenv
490 +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first
491 +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
492 +_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title
\e[33m$ver
\e[0m"
494 +++ b/defenvs/bananapi_bpi-r4_snand_env
497 +serverip=192.168.1.254
499 +bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait ubi.block=0,fit
500 +bootconf=config-mt7988a-bananapi-bpi-r4
501 +bootconf_extra=mt7988a-bananapi-bpi-r4-emmc
502 +bootcmd=if pstore check ; then run boot_recovery ; else run boot_ubi ; fi
504 +bootfile=openwrt-mediatek-filogic-bananapi_bpi-r4-initramfs-recovery.itb
505 +bootfile_bl2=openwrt-mediatek-filogic-bananapi_bpi-r4-snand-preloader.bin
506 +bootfile_fip=openwrt-mediatek-filogic-bananapi_bpi-r4-snand-bl31-uboot.fip
507 +bootfile_upg=openwrt-mediatek-filogic-bananapi_bpi-r4-squashfs-sysupgrade.itb
508 +bootled_pwr=green:status
509 +bootled_rec=blue:status
510 +bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
513 +bootmenu_title=
\e[0;34m( ( (
\e[1;39mOpenWrt
\e[0;34m ) ) )
\e[0;36m[SPI-NAND]
\e[0m
514 +bootmenu_0=Initialize environment.=run _firstboot
515 +bootmenu_0d=Run default boot command.=run boot_default
516 +bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
517 +bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return
518 +bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return
519 +bootmenu_4=Load production system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
520 +bootmenu_5=Load recovery system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
521 +bootmenu_6=
\e[31mLoad BL31+U-Boot FIP via TFTP then write to NAND.
\e[0m=run boot_tftp_write_fip ; run bootmenu_confirm_return
522 +bootmenu_7=
\e[31mLoad BL2 preloader via TFTP then write to NAND.
\e[0m=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
523 +bootmenu_8=
\e[31mInstall bootloader, recovery and production to eMMC.
\e[0m=if mmc partconf 0 ; then run emmc_init ; else echo "eMMC not detected" ; fi ; run bootmenu_confirm_return
524 +bootmenu_9=Reboot.=reset
525 +bootmenu_10=Reset all settings to factory defaults.=run reset_factory ; reset
526 +boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
527 +boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
528 +boot_production=led $bootled_pwr on ; run ubi_read_production && bootm $loadaddr#$bootconf#$bootconf_extra ; led $bootled_pwr off
529 +boot_recovery=led $bootled_rec on ; run ubi_read_recovery && bootm $loadaddr#$bootconf ; led $bootled_rec off
530 +boot_ubi=run boot_production ; run boot_recovery
531 +boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
532 +boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run ubi_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf#$bootconf_extra ; fi
533 +boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run ubi_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
534 +boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
535 +boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run ubi_write_fip && run reset_factory
536 +boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run snand_write_bl2
537 +part_default=production
538 +part_recovery=recovery
539 +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800
540 +snand_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr 0x0 0x80000 && mtd write bl2 $loadaddr 0x80000 0x80000 && mtd write bl2 $loadaddr 0x100000 0x80000 && mtd write bl2 $loadaddr 0x180000 0x80000
541 +ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic
542 +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
543 +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs
544 +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery
545 +ubi_read_emmc_install=ubi check emmc_install && ubi read $loadaddr emmc_install
546 +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
547 +ubi_write_fip=run ubi_remove_rootfs ; ubi check fip && ubi remove fip ; ubi create fip 0x200000 static ; ubi write $loadaddr fip 0x200000
548 +ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
549 +ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
550 +mmc_write_vol=imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc erase 0x$part_addr 0x$image_size && mmc write $loadaddr 0x$part_addr 0x$image_size
551 +emmc_init=mmc dev 0 && mmc bootbus 0 0 0 0 && run emmc_init_bl && run emmc_init_openwrt ; env default bootcmd ; saveenv ; saveenv
552 +emmc_init_bl=run ubi_read_emmc_install && setenv fileaddr $loadaddr && run emmc_write_bl2 && setexpr fileaddr $loadaddr + 0x100000 && run emmc_write_fip && setexpr fileaddr $loadaddr + 0x500000 && run emmc_write_hdr
553 +emmc_init_openwrt=run ubi_read_recovery && iminfo $loadaddr && run emmc_write_recovery ; run ubi_read_production && iminfo $loadaddr && run emmc_write_production
554 +emmc_write_bl2=mmc partconf 0 1 1 1 && mmc erase 0x0 0x400 && mmc write $fileaddr 0x0 0x400 ; mmc partconf 0 1 1 0
555 +emmc_write_fip=mmc erase 0x3400 0x2000 && mmc write $fileaddr 0x3400 0x2000 && mmc erase 0x2000 0x800
556 +emmc_write_hdr=mmc erase 0x0 0x40 && mmc write $fileaddr 0x0 0x40
557 +emmc_write_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_write_vol
558 +emmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
559 +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
560 +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first
561 +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
562 +_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title
\e[33m$ver
\e[0m"
564 +++ b/defenvs/bananapi_bpi-r4_emmc_env
567 +serverip=192.168.1.254
569 +bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait
570 +bootcmd=if pstore check ; then run boot_recovery ; else run boot_emmc ; fi
571 +bootconf=config-mt7988a-bananapi-bpi-r4
572 +bootconf_base=config-mt7988a-bananapi-bpi-r4
573 +bootconf_emmc=mt7988a-bananapi-bpi-r4-emmc
576 +bootfile=openwrt-mediatek-filogic-bananapi_bpi-r4-initramfs-recovery.itb
577 +bootfile_bl2=openwrt-mediatek-filogic-bananapi_bpi-r4-emmc-preloader.bin
578 +bootfile_fip=openwrt-mediatek-filogic-bananapi_bpi-r4-emmc-bl31-uboot.fip
579 +bootfile_upg=openwrt-mediatek-filogic-bananapi_bpi-r4-squashfs-sysupgrade.itb
580 +bootled_pwr=green:status
581 +bootled_rec=blue:status
582 +bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
585 +bootmenu_title=
\e[0;34m( ( (
\e[1;39mOpenWrt
\e[0;34m ) ) )
\e[0;36m[eMMC]
\e[0m
586 +bootmenu_0=Initialize environment.=run _firstboot
587 +bootmenu_0d=Run default boot command.=run boot_default
588 +bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
589 +bootmenu_2=Boot production system from eMMC.=run boot_production ; run bootmenu_confirm_return
590 +bootmenu_3=Boot recovery system from eMMC.=run boot_recovery ; run bootmenu_confirm_return
591 +bootmenu_4=Load production system via TFTP then write to eMMC.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
592 +bootmenu_5=Load recovery system via TFTP then write to eMMC.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
593 +bootmenu_6=
\e[31mLoad BL31+U-Boot FIP via TFTP then write to eMMC.
\e[0m=run boot_tftp_write_fip ; run bootmenu_confirm_return
594 +bootmenu_7=
\e[31mLoad BL2 preloader via TFTP then write to eMMC.
\e[0m=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
595 +bootmenu_8=Reboot.=reset
596 +bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
597 +boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
598 +boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
599 +boot_production=led $bootled_pwr on ; run emmc_read_production && bootm $loadaddr#$bootconf#$bootconf_emmc#$bootconf_extra ; led $bootled_pwr off
600 +boot_recovery=led $bootled_rec on ; run emmc_read_recovery && bootm $loadaddr#$bootconf#$bootconf_emmc#$bootconf_extra ; led $bootled_rec off
601 +boot_emmc=run boot_production ; run boot_recovery
602 +boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
603 +boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run emmc_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf#$bootconf_emmc#$bootconf_extra ; fi
604 +boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run emmc_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf#$bootconf_emmc ; fi
605 +boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run emmc_write_fip
606 +boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run emmc_write_bl2
607 +boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
608 +mmc_write_vol=imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc erase 0x$part_addr 0x$image_size && mmc write $loadaddr 0x$part_addr 0x$image_size
609 +mmc_read_vol=mmc read $loadaddr $part_addr 0x100 && imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc read $loadaddr 0x$part_addr 0x$image_size && setexpr filesize $image_size * 0x200
610 +part_default=production
611 +part_recovery=recovery
612 +reset_factory=eraseenv && reset
613 +emmc_read_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_read_vol
614 +emmc_read_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_read_vol
615 +emmc_write_bl2=mmc partconf 0 1 1 1 && mmc erase 0x0 0x400 && mmc write $fileaddr 0x0 0x400 ; mmc partconf 0 1 1 0
616 +emmc_write_fip=mmc erase 0x3400 0x2000 && mmc write $fileaddr 0x3400 0x2000 && mmc erase 0x2000 0x800
617 +emmc_write_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_write_vol
618 +emmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
619 +_init_env=setenv _init_env ; setenv _create_env ; saveenv ; saveenv
620 +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first
621 +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
622 +_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title
\e[33m$ver
\e[0m"
624 +++ b/arch/arm/dts/mt7988a-bananapi-bpi-r4.dtsi
626 +// SPDX-License-Identifier: GPL-2.0
628 + * Copyright (c) 2022 MediaTek Inc.
629 + * Author: Sam Shih <sam.shih@mediatek.com>
633 +#include "mt7988.dtsi"
634 +#include <dt-bindings/gpio/gpio.h>
635 +#include <dt-bindings/input/linux-event-codes.h>
638 + model = "Bananapi BPI-R4";
639 + compatible = "bananapi,bpi-r4", "mediatek,mt7988";
642 + stdout-path = &uart0;
646 + device_type = "memory";
647 + reg = <0 0x40000000 0 0x10000000>;
650 + reg_3p3v: regulator-3p3v {
651 + compatible = "regulator-fixed";
652 + regulator-name = "fixed-3.3V";
653 + regulator-min-microvolt = <3300000>;
654 + regulator-max-microvolt = <3300000>;
656 + regulator-always-on;
659 + reg_1p8v: regulator-1p8v {
660 + compatible = "regulator-fixed";
661 + regulator-name = "fixed-1.8V";
662 + regulator-min-microvolt = <1800000>;
663 + regulator-max-microvolt = <1800000>;
665 + regulator-always-on;
669 + compatible = "gpio-keys";
673 + linux,code = <KEY_RESTART>;
674 + gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
679 + compatible = "gpio-leds";
681 + led_status_green: led-green {
682 + label = "green:status";
683 + gpios = <&gpio 79 GPIO_ACTIVE_HIGH>;
686 + led_status_blue: led-blue {
687 + label = "blue:status";
688 + gpios = <&gpio 63 GPIO_ACTIVE_HIGH>;
698 + pinctrl-names = "default";
699 + pinctrl-0 = <&i2c1_pins>;
705 + mediatek,gmac-id = <0>;
706 + phy-mode = "usxgmii";
707 + mediatek,switch = "mt7988";
717 + i2c1_pins: i2c1-pins {
724 + pwm_pins: pwm-pins {
727 + groups = "pwm0", "pwm1", "pwm2", "pwm3", "pwm4",
728 + "pwm5", "pwm6", "pwm7";
732 + spi0_pins: spi0-pins {
735 + groups = "spi0", "spi0_wp_hold";
739 + mmc0_pins_default: mmc0default {
741 + function = "flash";
742 + groups = "emmc_51";
746 + pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
747 + "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
748 + "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
761 + pins = "EMMC_RSTB";
765 + mmc1_pins_default: mmc1default {
767 + function = "flash";
768 + groups = "emmc_45";
772 + pins = "SPI2_CSB", "SPI2_MISO", "SPI2_MOSI",
773 + "SPI2_CLK", "SPI2_HOLD";
784 + pinctrl-names = "default";
785 + pinctrl-0 = <&pwm_pins>;
790 + pinctrl-names = "default";
791 + pinctrl-0 = <&spi0_pins>;
792 + #address-cells = <1>;
804 + compatible = "spi-nand";
806 + spi-max-frequency = <52000000>;
808 + compatible = "fixed-partitions";
809 + #address-cells = <1>;
814 + reg = <0x0 0x200000>;
819 + reg = <0x200000 0x7e00000>;
820 + compatible = "linux,ubi";
826 +++ b/arch/arm/dts/mt7988a-bananapi-bpi-r4-sd.dts
828 +// SPDX-License-Identifier: GPL-2.0
830 + * Copyright (c) 2022 MediaTek Inc.
831 + * Author: Sam Shih <sam.shih@mediatek.com>
835 +#include "mt7988a-bananapi-bpi-r4.dtsi"
838 + pinctrl-names = "default";
839 + pinctrl-0 = <&mmc1_pins_default>;
840 + max-frequency = <52000000>;
843 + vmmc-supply = <®_3p3v>;
844 + vqmmc-supply = <®_3p3v>;
848 +++ b/arch/arm/dts/mt7988a-bananapi-bpi-r4-emmc.dts
850 +// SPDX-License-Identifier: GPL-2.0
852 + * Copyright (c) 2022 MediaTek Inc.
853 + * Author: Sam Shih <sam.shih@mediatek.com>
857 +#include "mt7988a-bananapi-bpi-r4.dtsi"
860 + pinctrl-names = "default";
861 + pinctrl-0 = <&mmc0_pins_default>;
862 + max-frequency = <52000000>;
866 + vmmc-supply = <®_3p3v>;
867 + vqmmc-supply = <®_1p8v>;
872 +++ b/configs/mt7988a_bananapi_bpi-r4-poe-emmc_defconfig
875 +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
876 +CONFIG_POSITION_INDEPENDENT=y
877 +CONFIG_ARCH_MEDIATEK=y
878 +CONFIG_TEXT_BASE=0x41e00000
879 +CONFIG_SYS_MALLOC_F_LEN=0x4000
880 +CONFIG_NR_DRAM_BANKS=1
881 +CONFIG_ENV_SIZE=0x40000
882 +CONFIG_ENV_OFFSET=0x400000
883 +CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-emmc"
884 +CONFIG_OF_LIBFDT_OVERLAY=y
885 +CONFIG_TARGET_MT7988=y
886 +CONFIG_SYS_LOAD_ADDR=0x50000000
887 +CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
888 +CONFIG_DEBUG_UART_BASE=0x11000000
889 +CONFIG_DEBUG_UART_CLOCK=40000000
890 +CONFIG_ENV_OFFSET_REDUND=0x440000
896 +CONFIG_AUTOBOOT_KEYED=y
897 +CONFIG_AUTOBOOT_MENU_SHOW=y
898 +CONFIG_OF_SYSTEM_SETUP=y
899 +CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-emmc.dtb"
900 +CONFIG_SYS_CBSIZE=512
901 +CONFIG_SYS_PBSIZE=1049
903 +CONFIG_PRE_CONSOLE_BUFFER=y
905 +CONFIG_BOARD_LATE_INIT=y
906 +CONFIG_HUSH_PARSER=y
907 +CONFIG_SYS_PROMPT="MT7988> "
909 +CONFIG_CMD_LICENSE=y
910 +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
911 +CONFIG_CMD_BOOTMENU=y
913 +CONFIG_CMD_ERASEENV=y
914 +CONFIG_CMD_ENV_FLAGS=y
915 +CONFIG_CMD_STRINGS=y
924 +CONFIG_CMD_SF_TEST=y
926 +CONFIG_CMD_TFTPSRV=y
930 +CONFIG_CMD_LINK_LOCAL=y
937 +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
943 +CONFIG_CMD_FS_GENERIC=y
944 +CONFIG_CMD_FS_UUID=y
946 +CONFIG_CMD_UBI_RENAME=y
948 +CONFIG_ENV_OVERWRITE=y
949 +CONFIG_ENV_IS_IN_MMC=y
950 +CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
951 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
952 +CONFIG_USE_DEFAULT_ENV_FILE=y
953 +CONFIG_DEFAULT_ENV_FILE="defenvs/bananapi_bpi-r4-poe_emmc_env"
954 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
955 +CONFIG_VERSION_VARIABLE=y
958 +CONFIG_IPADDR="192.168.1.1"
959 +CONFIG_USE_SERVERIP=y
960 +CONFIG_SERVERIP="192.168.1.254"
961 +CONFIG_NET_RANDOM_ETHADDR=y
966 +CONFIG_BUTTON_GPIO=y
972 +CONFIG_SUPPORT_EMMC_BOOT=y
973 +CONFIG_MMC_HS200_SUPPORT=y
977 +CONFIG_MTD_SPI_NAND=y
978 +CONFIG_DM_SPI_FLASH=y
979 +CONFIG_SPI_FLASH_WINBOND=y
980 +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
981 +CONFIG_SPI_FLASH_MTD=y
982 +CONFIG_MTD_UBI_FASTMAP=y
984 +CONFIG_MEDIATEK_ETH=y
985 +CONFIG_PCIE_MEDIATEK=y
987 +CONFIG_PHY_MTK_TPHY=y
990 +CONFIG_PINCTRL_MT7988=y
991 +CONFIG_POWER_DOMAIN=y
992 +CONFIG_MTK_POWER_DOMAIN=y
993 +CONFIG_DM_REGULATOR=y
994 +CONFIG_DM_REGULATOR_FIXED=y
995 +CONFIG_DM_REGULATOR_GPIO=y
1001 +CONFIG_SERIAL_RX_BUFFER=y
1002 +CONFIG_MTK_SERIAL=y
1007 +CONFIG_USB_XHCI_HCD=y
1008 +CONFIG_USB_XHCI_MTK=y
1009 +CONFIG_USB_STORAGE=y
1013 +++ b/configs/mt7988a_bananapi_bpi-r4-poe-sdmmc_defconfig
1016 +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
1017 +CONFIG_POSITION_INDEPENDENT=y
1018 +CONFIG_ARCH_MEDIATEK=y
1019 +CONFIG_TEXT_BASE=0x41e00000
1020 +CONFIG_SYS_MALLOC_F_LEN=0x4000
1021 +CONFIG_NR_DRAM_BANKS=1
1022 +CONFIG_ENV_SIZE=0x40000
1023 +CONFIG_ENV_OFFSET=0x400000
1024 +CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-sd"
1025 +CONFIG_OF_LIBFDT_OVERLAY=y
1026 +CONFIG_TARGET_MT7988=y
1027 +CONFIG_SYS_LOAD_ADDR=0x50000000
1028 +CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
1029 +CONFIG_DEBUG_UART_BASE=0x11000000
1030 +CONFIG_DEBUG_UART_CLOCK=40000000
1031 +CONFIG_ENV_OFFSET_REDUND=0x440000
1033 +CONFIG_DEBUG_UART=y
1036 +CONFIG_BOOTDELAY=30
1037 +CONFIG_AUTOBOOT_KEYED=y
1038 +CONFIG_AUTOBOOT_MENU_SHOW=y
1039 +CONFIG_OF_SYSTEM_SETUP=y
1040 +CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-sd.dtb"
1041 +CONFIG_SYS_CBSIZE=512
1042 +CONFIG_SYS_PBSIZE=1049
1044 +CONFIG_PRE_CONSOLE_BUFFER=y
1046 +CONFIG_BOARD_LATE_INIT=y
1047 +CONFIG_HUSH_PARSER=y
1048 +CONFIG_SYS_PROMPT="MT7988> "
1050 +CONFIG_CMD_LICENSE=y
1051 +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
1052 +CONFIG_CMD_BOOTMENU=y
1053 +CONFIG_CMD_ASKENV=y
1054 +CONFIG_CMD_ERASEENV=y
1055 +CONFIG_CMD_ENV_FLAGS=y
1056 +CONFIG_CMD_STRINGS=y
1065 +CONFIG_CMD_SF_TEST=y
1067 +CONFIG_CMD_TFTPSRV=y
1071 +CONFIG_CMD_LINK_LOCAL=y
1077 +CONFIG_CMD_PSTORE=y
1078 +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
1084 +CONFIG_CMD_FS_GENERIC=y
1085 +CONFIG_CMD_FS_UUID=y
1087 +CONFIG_CMD_UBI_RENAME=y
1089 +CONFIG_ENV_OVERWRITE=y
1090 +CONFIG_ENV_IS_IN_MMC=y
1091 +CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
1092 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
1093 +CONFIG_USE_DEFAULT_ENV_FILE=y
1094 +CONFIG_DEFAULT_ENV_FILE="defenvs/bananapi_bpi-r4-poe_sdmmc_env"
1095 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
1096 +CONFIG_VERSION_VARIABLE=y
1097 +CONFIG_NETCONSOLE=y
1098 +CONFIG_USE_IPADDR=y
1099 +CONFIG_IPADDR="192.168.1.1"
1100 +CONFIG_USE_SERVERIP=y
1101 +CONFIG_SERVERIP="192.168.1.254"
1102 +CONFIG_NET_RANDOM_ETHADDR=y
1107 +CONFIG_BUTTON_GPIO=y
1113 +CONFIG_SUPPORT_EMMC_BOOT=y
1114 +CONFIG_MMC_HS200_SUPPORT=y
1118 +CONFIG_MTD_SPI_NAND=y
1119 +CONFIG_DM_SPI_FLASH=y
1120 +CONFIG_SPI_FLASH_WINBOND=y
1121 +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
1122 +CONFIG_SPI_FLASH_MTD=y
1123 +CONFIG_MTD_UBI_FASTMAP=y
1125 +CONFIG_MEDIATEK_ETH=y
1126 +CONFIG_PCIE_MEDIATEK=y
1128 +CONFIG_PHY_MTK_TPHY=y
1131 +CONFIG_PINCTRL_MT7988=y
1132 +CONFIG_POWER_DOMAIN=y
1133 +CONFIG_MTK_POWER_DOMAIN=y
1134 +CONFIG_DM_REGULATOR=y
1135 +CONFIG_DM_REGULATOR_FIXED=y
1136 +CONFIG_DM_REGULATOR_GPIO=y
1142 +CONFIG_SERIAL_RX_BUFFER=y
1143 +CONFIG_MTK_SERIAL=y
1148 +CONFIG_USB_XHCI_HCD=y
1149 +CONFIG_USB_XHCI_MTK=y
1150 +CONFIG_USB_STORAGE=y
1154 +++ b/configs/mt7988a_bananapi_bpi-r4-poe-snand_defconfig
1157 +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
1158 +CONFIG_POSITION_INDEPENDENT=y
1159 +CONFIG_ARCH_MEDIATEK=y
1160 +CONFIG_TEXT_BASE=0x41e00000
1161 +CONFIG_SYS_MALLOC_F_LEN=0x4000
1162 +CONFIG_NR_DRAM_BANKS=1
1163 +CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-emmc"
1164 +CONFIG_OF_LIBFDT_OVERLAY=y
1165 +CONFIG_TARGET_MT7988=y
1166 +CONFIG_SYS_LOAD_ADDR=0x50000000
1167 +CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
1168 +CONFIG_DEBUG_UART_BASE=0x11000000
1169 +CONFIG_DEBUG_UART_CLOCK=40000000
1171 +CONFIG_DEBUG_UART=y
1174 +CONFIG_BOOTDELAY=30
1175 +CONFIG_AUTOBOOT_KEYED=y
1176 +CONFIG_AUTOBOOT_MENU_SHOW=y
1177 +CONFIG_OF_SYSTEM_SETUP=y
1178 +CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-emmc.dtb"
1179 +CONFIG_SYS_CBSIZE=512
1180 +CONFIG_SYS_PBSIZE=1049
1182 +CONFIG_PRE_CONSOLE_BUFFER=y
1184 +CONFIG_BOARD_LATE_INIT=y
1185 +CONFIG_HUSH_PARSER=y
1186 +CONFIG_SYS_PROMPT="MT7988> "
1188 +CONFIG_CMD_LICENSE=y
1189 +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
1190 +CONFIG_CMD_BOOTMENU=y
1191 +CONFIG_CMD_ASKENV=y
1192 +CONFIG_CMD_ERASEENV=y
1193 +CONFIG_CMD_ENV_FLAGS=y
1194 +CONFIG_CMD_STRINGS=y
1203 +CONFIG_CMD_SF_TEST=y
1205 +CONFIG_CMD_TFTPSRV=y
1209 +CONFIG_CMD_LINK_LOCAL=y
1215 +CONFIG_CMD_PSTORE=y
1216 +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
1222 +CONFIG_CMD_FS_GENERIC=y
1223 +CONFIG_CMD_FS_UUID=y
1225 +CONFIG_CMD_UBI_RENAME=y
1227 +CONFIG_ENV_OVERWRITE=y
1228 +CONFIG_ENV_IS_IN_UBI=y
1229 +CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
1230 +CONFIG_ENV_UBI_PART="ubi"
1231 +CONFIG_ENV_UBI_VOLUME="ubootenv"
1232 +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2"
1233 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
1234 +CONFIG_USE_DEFAULT_ENV_FILE=y
1235 +CONFIG_DEFAULT_ENV_FILE="defenvs/bananapi_bpi-r4-poe_snand_env"
1236 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
1237 +CONFIG_VERSION_VARIABLE=y
1238 +CONFIG_NETCONSOLE=y
1239 +CONFIG_USE_IPADDR=y
1240 +CONFIG_IPADDR="192.168.1.1"
1241 +CONFIG_USE_SERVERIP=y
1242 +CONFIG_SERVERIP="192.168.1.254"
1243 +CONFIG_NET_RANDOM_ETHADDR=y
1248 +CONFIG_BUTTON_GPIO=y
1254 +CONFIG_SUPPORT_EMMC_BOOT=y
1255 +CONFIG_MMC_HS200_SUPPORT=y
1259 +CONFIG_MTD_SPI_NAND=y
1260 +CONFIG_DM_SPI_FLASH=y
1261 +CONFIG_SPI_FLASH_WINBOND=y
1262 +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
1263 +CONFIG_SPI_FLASH_MTD=y
1264 +CONFIG_MTD_UBI_FASTMAP=y
1266 +CONFIG_MEDIATEK_ETH=y
1267 +CONFIG_PCIE_MEDIATEK=y
1269 +CONFIG_PHY_MTK_TPHY=y
1272 +CONFIG_PINCTRL_MT7988=y
1273 +CONFIG_POWER_DOMAIN=y
1274 +CONFIG_MTK_POWER_DOMAIN=y
1275 +CONFIG_DM_REGULATOR=y
1276 +CONFIG_DM_REGULATOR_FIXED=y
1277 +CONFIG_DM_REGULATOR_GPIO=y
1283 +CONFIG_SERIAL_RX_BUFFER=y
1284 +CONFIG_MTK_SERIAL=y
1289 +CONFIG_USB_XHCI_HCD=y
1290 +CONFIG_USB_XHCI_MTK=y
1291 +CONFIG_USB_STORAGE=y
1295 +++ b/defenvs/bananapi_bpi-r4-poe_emmc_env
1298 +serverip=192.168.1.254
1299 +loadaddr=0x50000000
1300 +bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait
1301 +bootcmd=if pstore check ; then run boot_recovery ; else run boot_emmc ; fi
1302 +bootconf=config-mt7988a-bananapi-bpi-r4-poe
1303 +bootconf_base=config-mt7988a-bananapi-bpi-r4-poe
1304 +bootconf_emmc=mt7988a-bananapi-bpi-r4-emmc
1307 +bootfile=openwrt-mediatek-filogic-bananapi_bpi-r4-poe-initramfs-recovery.itb
1308 +bootfile_bl2=openwrt-mediatek-filogic-bananapi_bpi-r4-poe-emmc-preloader.bin
1309 +bootfile_fip=openwrt-mediatek-filogic-bananapi_bpi-r4-poe-emmc-bl31-uboot.fip
1310 +bootfile_upg=openwrt-mediatek-filogic-bananapi_bpi-r4-poe-squashfs-sysupgrade.itb
1311 +bootled_pwr=green:status
1312 +bootled_rec=blue:status
1313 +bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
1316 +bootmenu_title=
\e[0;34m( ( (
\e[1;39mOpenWrt
\e[0;34m ) ) )
\e[0;36m[eMMC]
\e[0m
1317 +bootmenu_0=Initialize environment.=run _firstboot
1318 +bootmenu_0d=Run default boot command.=run boot_default
1319 +bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
1320 +bootmenu_2=Boot production system from eMMC.=run boot_production ; run bootmenu_confirm_return
1321 +bootmenu_3=Boot recovery system from eMMC.=run boot_recovery ; run bootmenu_confirm_return
1322 +bootmenu_4=Load production system via TFTP then write to eMMC.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
1323 +bootmenu_5=Load recovery system via TFTP then write to eMMC.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
1324 +bootmenu_6=
\e[31mLoad BL31+U-Boot FIP via TFTP then write to eMMC.
\e[0m=run boot_tftp_write_fip ; run bootmenu_confirm_return
1325 +bootmenu_7=
\e[31mLoad BL2 preloader via TFTP then write to eMMC.
\e[0m=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
1326 +bootmenu_8=Reboot.=reset
1327 +bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
1328 +boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
1329 +boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
1330 +boot_production=led $bootled_pwr on ; run emmc_read_production && bootm $loadaddr#$bootconf#$bootconf_emmc#$bootconf_extra ; led $bootled_pwr off
1331 +boot_recovery=led $bootled_rec on ; run emmc_read_recovery && bootm $loadaddr#$bootconf#$bootconf_emmc#$bootconf_extra ; led $bootled_rec off
1332 +boot_emmc=run boot_production ; run boot_recovery
1333 +boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
1334 +boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run emmc_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf#$bootconf_emmc#$bootconf_extra ; fi
1335 +boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run emmc_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf#$bootconf_emmc ; fi
1336 +boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run emmc_write_fip
1337 +boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run emmc_write_bl2
1338 +boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
1339 +mmc_write_vol=imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc erase 0x$part_addr 0x$image_size && mmc write $loadaddr 0x$part_addr 0x$image_size
1340 +mmc_read_vol=mmc read $loadaddr $part_addr 0x100 && imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc read $loadaddr 0x$part_addr 0x$image_size && setexpr filesize $image_size * 0x200
1341 +part_default=production
1342 +part_recovery=recovery
1343 +reset_factory=eraseenv && reset
1344 +emmc_read_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_read_vol
1345 +emmc_read_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_read_vol
1346 +emmc_write_bl2=mmc partconf 0 1 1 1 && mmc erase 0x0 0x400 && mmc write $fileaddr 0x0 0x400 ; mmc partconf 0 1 1 0
1347 +emmc_write_fip=mmc erase 0x3400 0x2000 && mmc write $fileaddr 0x3400 0x2000 && mmc erase 0x2000 0x800
1348 +emmc_write_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_write_vol
1349 +emmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
1350 +_init_env=setenv _init_env ; setenv _create_env ; saveenv ; saveenv
1351 +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first
1352 +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
1353 +_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title
\e[33m$ver
\e[0m"
1355 +++ b/defenvs/bananapi_bpi-r4-poe_sdmmc_env
1358 +serverip=192.168.1.254
1359 +loadaddr=0x50000000
1360 +bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait
1361 +bootcmd=if pstore check ; then run boot_recovery ; else run boot_sdmmc ; fi
1362 +bootconf=config-mt7988a-bananapi-bpi-r4-poe
1363 +bootconf_sd=mt7988a-bananapi-bpi-r4-sd
1364 +bootconf_emmc=mt7988a-bananapi-bpi-r4-emmc
1367 +bootfile=openwrt-mediatek-filogic-bananapi_bpi-r4-poe-initramfs-recovery.itb
1368 +bootfile_upg=openwrt-mediatek-filogic-bananapi_bpi-r4-poe-squashfs-sysupgrade.itb
1369 +bootled_pwr=green:status
1370 +bootled_rec=blue:status
1371 +bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
1374 +bootmenu_title=
\e[0;34m( ( (
\e[1;39mOpenWrt
\e[0;34m ) ) )
\e[0;36m[SD card]
\e[0m
1375 +bootmenu_0=Initialize environment.=run _firstboot
1376 +bootmenu_0d=Run default boot command.=run boot_default
1377 +bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
1378 +bootmenu_2=Boot production system from SD card.=run boot_production ; run bootmenu_confirm_return
1379 +bootmenu_3=Boot recovery system from SD card.=run boot_recovery ; run bootmenu_confirm_return
1380 +bootmenu_4=Load production system via TFTP then write to SD card.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
1381 +bootmenu_5=Load recovery system via TFTP then write to SD card.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
1382 +bootmenu_6=
\e[31mInstall bootloader, recovery and production to NAND.
\e[0m=if nand info ; then run ubi_init ; else echo "NAND not detected" ; fi ; run bootmenu_confirm_return
1383 +bootmenu_7=Reboot.=reset
1384 +bootmenu_8=Reset all settings to factory defaults.=run reset_factory ; reset
1385 +boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
1386 +boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
1387 +boot_production=led $bootled_pwr on ; run sdmmc_read_production && bootm $loadaddr#$bootconf#$bootconf_sd#$bootconf_extra ; led $bootled_pwr off
1388 +boot_recovery=led $bootled_rec on ; run sdmmc_read_recovery && bootm $loadaddr#$bootconf#$bootconf_emmc ; led $bootled_rec off
1389 +boot_sdmmc=run boot_production ; run boot_recovery
1390 +boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
1391 +boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run sdmmc_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf#$bootconf_sd#$bootconf_extra ; fi
1392 +boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run sdmmc_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf#$bootconf_sd ; fi
1393 +boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf#$bootconf_sd
1394 +mmc_write_vol=imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc erase 0x$part_addr 0x$image_size && mmc write $loadaddr 0x$part_addr 0x$image_size
1395 +mmc_read_vol=mmc read $loadaddr $part_addr 0x100 && imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc read $loadaddr 0x$part_addr 0x$image_size && setexpr filesize $image_size * 0x200
1396 +part_default=production
1397 +part_recovery=recovery
1398 +reset_factory=eraseenv && reset
1399 +sdmmc_read_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_read_vol
1400 +sdmmc_read_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_read_vol
1401 +sdmmc_read_snand_bl2=part start mmc 0 install part_addr && mmc read $loadaddr $part_addr 0x400
1402 +sdmmc_read_snand_fip=part start mmc 0 install part_addr && setexpr offset $part_addr + 0x800 && mmc read $loadaddr $offset 0x1000
1403 +sdmmc_read_emmc_install=part start mmc 0 install part_addr && setexpr offset $part_addr + 0x3800 && mmc read $loadaddr $offset 0x4000
1404 +sdmmc_write_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_write_vol
1405 +sdmmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
1406 +snand_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr 0x0 0x80000 && mtd write bl2 $loadaddr 0x80000 0x80000 && mtd write bl2 $loadaddr 0x100000 0x80000 && mtd write bl2 $loadaddr 0x180000 0x80000
1407 +ubi_create_env=ubi create ubootenv 0x100000 dynamic ; ubi create ubootenv2 0x100000 dynamic
1408 +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi
1409 +ubi_init=run ubi_format && run ubi_init_bl && run ubi_create_env && run ubi_init_openwrt && run ubi_init_emmc_install
1410 +ubi_init_openwrt=run sdmmc_read_recovery && iminfo $loadaddr && run ubi_write_recovery ; run sdmmc_read_production && iminfo $loadaddr && run ubi_write_production
1411 +ubi_init_bl=run sdmmc_read_snand_bl2 && run snand_write_bl2 && run sdmmc_read_snand_fip && run ubi_write_fip
1412 +ubi_init_emmc_install=run sdmmc_read_emmc_install && run ubi_write_emmc_install
1413 +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
1414 +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
1415 +ubi_write_fip=run ubi_remove_rootfs ; ubi check fip && ubi remove fip ; ubi create fip 0x200000 static ; ubi write $loadaddr fip 0x200000
1416 +ubi_write_emmc_install=ubi check emmc_install && ubi remove emmc_install ; ubi create emmc_install 0x800000 dynamic ; ubi write $loadaddr emmc_install 0x800000
1417 +ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
1418 +ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
1419 +_init_env=setenv _init_env ; setenv _create_env ; saveenv ; saveenv
1420 +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first
1421 +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
1422 +_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title
\e[33m$ver
\e[0m"
1424 +++ b/defenvs/bananapi_bpi-r4-poe_snand_env
1427 +serverip=192.168.1.254
1428 +loadaddr=0x50000000
1429 +bootargs=console=ttyS0,115200n1 pci=pcie_bus_perf root=/dev/fit0 rootwait ubi.block=0,fit
1430 +bootconf=config-mt7988a-bananapi-bpi-r4-poe
1431 +bootconf_extra=mt7988a-bananapi-bpi-r4-emmc
1432 +bootcmd=if pstore check ; then run boot_recovery ; else run boot_ubi ; fi
1434 +bootfile=openwrt-mediatek-filogic-bananapi_bpi-r4-poe-initramfs-recovery.itb
1435 +bootfile_bl2=openwrt-mediatek-filogic-bananapi_bpi-r4-poe-snand-preloader.bin
1436 +bootfile_fip=openwrt-mediatek-filogic-bananapi_bpi-r4-poe-snand-bl31-uboot.fip
1437 +bootfile_upg=openwrt-mediatek-filogic-bananapi_bpi-r4-poe-squashfs-sysupgrade.itb
1438 +bootled_pwr=green:status
1439 +bootled_rec=blue:status
1440 +bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
1443 +bootmenu_title=
\e[0;34m( ( (
\e[1;39mOpenWrt
\e[0;34m ) ) )
\e[0;36m[SPI-NAND]
\e[0m
1444 +bootmenu_0=Initialize environment.=run _firstboot
1445 +bootmenu_0d=Run default boot command.=run boot_default
1446 +bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
1447 +bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return
1448 +bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return
1449 +bootmenu_4=Load production system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
1450 +bootmenu_5=Load recovery system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
1451 +bootmenu_6=
\e[31mLoad BL31+U-Boot FIP via TFTP then write to NAND.
\e[0m=run boot_tftp_write_fip ; run bootmenu_confirm_return
1452 +bootmenu_7=
\e[31mLoad BL2 preloader via TFTP then write to NAND.
\e[0m=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
1453 +bootmenu_8=
\e[31mInstall bootloader, recovery and production to eMMC.
\e[0m=if mmc partconf 0 ; then run emmc_init ; else echo "eMMC not detected" ; fi ; run bootmenu_confirm_return
1454 +bootmenu_9=Reboot.=reset
1455 +bootmenu_10=Reset all settings to factory defaults.=run reset_factory ; reset
1456 +boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
1457 +boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
1458 +boot_production=led $bootled_pwr on ; run ubi_read_production && bootm $loadaddr#$bootconf#$bootconf_extra ; led $bootled_pwr off
1459 +boot_recovery=led $bootled_rec on ; run ubi_read_recovery && bootm $loadaddr#$bootconf ; led $bootled_rec off
1460 +boot_ubi=run boot_production ; run boot_recovery
1461 +boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
1462 +boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run ubi_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf#$bootconf_extra ; fi
1463 +boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run ubi_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
1464 +boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
1465 +boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run ubi_write_fip && run reset_factory
1466 +boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run snand_write_bl2
1467 +part_default=production
1468 +part_recovery=recovery
1469 +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800
1470 +snand_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr 0x0 0x80000 && mtd write bl2 $loadaddr 0x80000 0x80000 && mtd write bl2 $loadaddr 0x100000 0x80000 && mtd write bl2 $loadaddr 0x180000 0x80000
1471 +ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic
1472 +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
1473 +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs
1474 +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery
1475 +ubi_read_emmc_install=ubi check emmc_install && ubi read $loadaddr emmc_install
1476 +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
1477 +ubi_write_fip=run ubi_remove_rootfs ; ubi check fip && ubi remove fip ; ubi create fip 0x200000 static ; ubi write $loadaddr fip 0x200000
1478 +ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
1479 +ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
1480 +mmc_write_vol=imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc erase 0x$part_addr 0x$image_size && mmc write $loadaddr 0x$part_addr 0x$image_size
1481 +emmc_init=mmc dev 0 && mmc bootbus 0 0 0 0 && run emmc_init_bl && run emmc_init_openwrt ; env default bootcmd ; saveenv ; saveenv
1482 +emmc_init_bl=run ubi_read_emmc_install && setenv fileaddr $loadaddr && run emmc_write_bl2 && setexpr fileaddr $loadaddr + 0x100000 && run emmc_write_fip && setexpr fileaddr $loadaddr + 0x500000 && run emmc_write_hdr
1483 +emmc_init_openwrt=run ubi_read_recovery && iminfo $loadaddr && run emmc_write_recovery ; run ubi_read_production && iminfo $loadaddr && run emmc_write_production
1484 +emmc_write_bl2=mmc partconf 0 1 1 1 && mmc erase 0x0 0x400 && mmc write $fileaddr 0x0 0x400 ; mmc partconf 0 1 1 0
1485 +emmc_write_fip=mmc erase 0x3400 0x2000 && mmc write $fileaddr 0x3400 0x2000 && mmc erase 0x2000 0x800
1486 +emmc_write_hdr=mmc erase 0x0 0x40 && mmc write $fileaddr 0x0 0x40
1487 +emmc_write_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_write_vol
1488 +emmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
1489 +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
1490 +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first
1491 +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
1492 +_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title
\e[33m$ver
\e[0m"