450-add-bpi-r4.patch 60 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492
  1. --- /dev/null
  2. +++ b/configs/mt7988a_bananapi_bpi-r4-emmc_defconfig
  3. @@ -0,0 +1,138 @@
  4. +CONFIG_ARM=y
  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
  21. +CONFIG_PCI=y
  22. +CONFIG_DEBUG_UART=y
  23. +CONFIG_AHCI=y
  24. +CONFIG_FIT=y
  25. +CONFIG_BOOTDELAY=30
  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
  32. +CONFIG_LOGLEVEL=7
  33. +CONFIG_PRE_CONSOLE_BUFFER=y
  34. +CONFIG_LOG=y
  35. +CONFIG_BOARD_LATE_INIT=y
  36. +CONFIG_HUSH_PARSER=y
  37. +CONFIG_SYS_PROMPT="MT7988> "
  38. +CONFIG_CMD_CPU=y
  39. +CONFIG_CMD_LICENSE=y
  40. +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
  41. +CONFIG_CMD_BOOTMENU=y
  42. +CONFIG_CMD_ASKENV=y
  43. +CONFIG_CMD_ERASEENV=y
  44. +CONFIG_CMD_ENV_FLAGS=y
  45. +CONFIG_CMD_STRINGS=y
  46. +CONFIG_CMD_DM=y
  47. +CONFIG_CMD_GPIO=y
  48. +CONFIG_CMD_PWM=y
  49. +CONFIG_CMD_GPT=y
  50. +CONFIG_CMD_MMC=y
  51. +CONFIG_CMD_MTD=y
  52. +CONFIG_CMD_PART=y
  53. +CONFIG_CMD_PCI=y
  54. +CONFIG_CMD_SF_TEST=y
  55. +CONFIG_CMD_USB=y
  56. +CONFIG_CMD_TFTPSRV=y
  57. +CONFIG_CMD_RARP=y
  58. +CONFIG_CMD_CDP=y
  59. +CONFIG_CMD_SNTP=y
  60. +CONFIG_CMD_LINK_LOCAL=y
  61. +CONFIG_CMD_DHCP=y
  62. +CONFIG_CMD_DNS=y
  63. +CONFIG_CMD_PING=y
  64. +CONFIG_CMD_PXE=y
  65. +CONFIG_CMD_CACHE=y
  66. +CONFIG_CMD_PSTORE=y
  67. +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
  68. +CONFIG_CMD_UUID=y
  69. +CONFIG_CMD_HASH=y
  70. +CONFIG_CMD_SMC=y
  71. +CONFIG_CMD_EXT4=y
  72. +CONFIG_CMD_FAT=y
  73. +CONFIG_CMD_FS_GENERIC=y
  74. +CONFIG_CMD_FS_UUID=y
  75. +CONFIG_CMD_UBI=y
  76. +CONFIG_CMD_UBI_RENAME=y
  77. +CONFIG_OF_EMBED=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
  86. +CONFIG_NETCONSOLE=y
  87. +CONFIG_USE_IPADDR=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
  92. +CONFIG_SCSI_AHCI=y
  93. +CONFIG_AHCI_PCI=y
  94. +CONFIG_MTK_AHCI=y
  95. +CONFIG_BUTTON=y
  96. +CONFIG_BUTTON_GPIO=y
  97. +CONFIG_CLK=y
  98. +CONFIG_GPIO_HOG=y
  99. +CONFIG_LED=y
  100. +CONFIG_LED_BLINK=y
  101. +CONFIG_LED_GPIO=y
  102. +CONFIG_SUPPORT_EMMC_BOOT=y
  103. +CONFIG_MMC_HS200_SUPPORT=y
  104. +CONFIG_MMC_MTK=y
  105. +CONFIG_MTD=y
  106. +CONFIG_DM_MTD=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
  113. +CONFIG_PHY_FIXED=y
  114. +CONFIG_MEDIATEK_ETH=y
  115. +CONFIG_PCIE_MEDIATEK=y
  116. +CONFIG_PHY=y
  117. +CONFIG_PHY_MTK_TPHY=y
  118. +CONFIG_PINCTRL=y
  119. +CONFIG_PINCONF=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
  126. +CONFIG_DM_PWM=y
  127. +CONFIG_PWM_MTK=y
  128. +CONFIG_RAM=y
  129. +CONFIG_SCSI=y
  130. +CONFIG_DM_SERIAL=y
  131. +CONFIG_SERIAL_RX_BUFFER=y
  132. +CONFIG_MTK_SERIAL=y
  133. +CONFIG_SPI=y
  134. +CONFIG_DM_SPI=y
  135. +CONFIG_MTK_SPIM=y
  136. +CONFIG_USB=y
  137. +CONFIG_USB_XHCI_HCD=y
  138. +CONFIG_USB_XHCI_MTK=y
  139. +CONFIG_USB_STORAGE=y
  140. +CONFIG_ZSTD=y
  141. +CONFIG_HEXDUMP=y
  142. --- /dev/null
  143. +++ b/configs/mt7988a_bananapi_bpi-r4-sdmmc_defconfig
  144. @@ -0,0 +1,138 @@
  145. +CONFIG_ARM=y
  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
  162. +CONFIG_PCI=y
  163. +CONFIG_DEBUG_UART=y
  164. +CONFIG_AHCI=y
  165. +CONFIG_FIT=y
  166. +CONFIG_BOOTDELAY=30
  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
  173. +CONFIG_LOGLEVEL=7
  174. +CONFIG_PRE_CONSOLE_BUFFER=y
  175. +CONFIG_LOG=y
  176. +CONFIG_BOARD_LATE_INIT=y
  177. +CONFIG_HUSH_PARSER=y
  178. +CONFIG_SYS_PROMPT="MT7988> "
  179. +CONFIG_CMD_CPU=y
  180. +CONFIG_CMD_LICENSE=y
  181. +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
  182. +CONFIG_CMD_BOOTMENU=y
  183. +CONFIG_CMD_ASKENV=y
  184. +CONFIG_CMD_ERASEENV=y
  185. +CONFIG_CMD_ENV_FLAGS=y
  186. +CONFIG_CMD_STRINGS=y
  187. +CONFIG_CMD_DM=y
  188. +CONFIG_CMD_GPIO=y
  189. +CONFIG_CMD_PWM=y
  190. +CONFIG_CMD_GPT=y
  191. +CONFIG_CMD_MMC=y
  192. +CONFIG_CMD_MTD=y
  193. +CONFIG_CMD_PART=y
  194. +CONFIG_CMD_PCI=y
  195. +CONFIG_CMD_SF_TEST=y
  196. +CONFIG_CMD_USB=y
  197. +CONFIG_CMD_TFTPSRV=y
  198. +CONFIG_CMD_RARP=y
  199. +CONFIG_CMD_CDP=y
  200. +CONFIG_CMD_SNTP=y
  201. +CONFIG_CMD_LINK_LOCAL=y
  202. +CONFIG_CMD_DHCP=y
  203. +CONFIG_CMD_DNS=y
  204. +CONFIG_CMD_PING=y
  205. +CONFIG_CMD_PXE=y
  206. +CONFIG_CMD_CACHE=y
  207. +CONFIG_CMD_PSTORE=y
  208. +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
  209. +CONFIG_CMD_UUID=y
  210. +CONFIG_CMD_HASH=y
  211. +CONFIG_CMD_SMC=y
  212. +CONFIG_CMD_EXT4=y
  213. +CONFIG_CMD_FAT=y
  214. +CONFIG_CMD_FS_GENERIC=y
  215. +CONFIG_CMD_FS_UUID=y
  216. +CONFIG_CMD_UBI=y
  217. +CONFIG_CMD_UBI_RENAME=y
  218. +CONFIG_OF_EMBED=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
  227. +CONFIG_NETCONSOLE=y
  228. +CONFIG_USE_IPADDR=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
  233. +CONFIG_SCSI_AHCI=y
  234. +CONFIG_AHCI_PCI=y
  235. +CONFIG_MTK_AHCI=y
  236. +CONFIG_BUTTON=y
  237. +CONFIG_BUTTON_GPIO=y
  238. +CONFIG_CLK=y
  239. +CONFIG_GPIO_HOG=y
  240. +CONFIG_LED=y
  241. +CONFIG_LED_BLINK=y
  242. +CONFIG_LED_GPIO=y
  243. +CONFIG_SUPPORT_EMMC_BOOT=y
  244. +CONFIG_MMC_HS200_SUPPORT=y
  245. +CONFIG_MMC_MTK=y
  246. +CONFIG_MTD=y
  247. +CONFIG_DM_MTD=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
  254. +CONFIG_PHY_FIXED=y
  255. +CONFIG_MEDIATEK_ETH=y
  256. +CONFIG_PCIE_MEDIATEK=y
  257. +CONFIG_PHY=y
  258. +CONFIG_PHY_MTK_TPHY=y
  259. +CONFIG_PINCTRL=y
  260. +CONFIG_PINCONF=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
  267. +CONFIG_DM_PWM=y
  268. +CONFIG_PWM_MTK=y
  269. +CONFIG_RAM=y
  270. +CONFIG_SCSI=y
  271. +CONFIG_DM_SERIAL=y
  272. +CONFIG_SERIAL_RX_BUFFER=y
  273. +CONFIG_MTK_SERIAL=y
  274. +CONFIG_SPI=y
  275. +CONFIG_DM_SPI=y
  276. +CONFIG_MTK_SPIM=y
  277. +CONFIG_USB=y
  278. +CONFIG_USB_XHCI_HCD=y
  279. +CONFIG_USB_XHCI_MTK=y
  280. +CONFIG_USB_STORAGE=y
  281. +CONFIG_ZSTD=y
  282. +CONFIG_HEXDUMP=y
  283. --- /dev/null
  284. +++ b/configs/mt7988a_bananapi_bpi-r4-snand_defconfig
  285. @@ -0,0 +1,138 @@
  286. +CONFIG_ARM=y
  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
  300. +CONFIG_PCI=y
  301. +CONFIG_DEBUG_UART=y
  302. +CONFIG_AHCI=y
  303. +CONFIG_FIT=y
  304. +CONFIG_BOOTDELAY=30
  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
  311. +CONFIG_LOGLEVEL=7
  312. +CONFIG_PRE_CONSOLE_BUFFER=y
  313. +CONFIG_LOG=y
  314. +CONFIG_BOARD_LATE_INIT=y
  315. +CONFIG_HUSH_PARSER=y
  316. +CONFIG_SYS_PROMPT="MT7988> "
  317. +CONFIG_CMD_CPU=y
  318. +CONFIG_CMD_LICENSE=y
  319. +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
  320. +CONFIG_CMD_BOOTMENU=y
  321. +CONFIG_CMD_ASKENV=y
  322. +CONFIG_CMD_ERASEENV=y
  323. +CONFIG_CMD_ENV_FLAGS=y
  324. +CONFIG_CMD_STRINGS=y
  325. +CONFIG_CMD_DM=y
  326. +CONFIG_CMD_GPIO=y
  327. +CONFIG_CMD_PWM=y
  328. +CONFIG_CMD_GPT=y
  329. +CONFIG_CMD_MMC=y
  330. +CONFIG_CMD_MTD=y
  331. +CONFIG_CMD_PART=y
  332. +CONFIG_CMD_PCI=y
  333. +CONFIG_CMD_SF_TEST=y
  334. +CONFIG_CMD_USB=y
  335. +CONFIG_CMD_TFTPSRV=y
  336. +CONFIG_CMD_RARP=y
  337. +CONFIG_CMD_CDP=y
  338. +CONFIG_CMD_SNTP=y
  339. +CONFIG_CMD_LINK_LOCAL=y
  340. +CONFIG_CMD_DHCP=y
  341. +CONFIG_CMD_DNS=y
  342. +CONFIG_CMD_PING=y
  343. +CONFIG_CMD_PXE=y
  344. +CONFIG_CMD_CACHE=y
  345. +CONFIG_CMD_PSTORE=y
  346. +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
  347. +CONFIG_CMD_UUID=y
  348. +CONFIG_CMD_HASH=y
  349. +CONFIG_CMD_SMC=y
  350. +CONFIG_CMD_EXT4=y
  351. +CONFIG_CMD_FAT=y
  352. +CONFIG_CMD_FS_GENERIC=y
  353. +CONFIG_CMD_FS_UUID=y
  354. +CONFIG_CMD_UBI=y
  355. +CONFIG_CMD_UBI_RENAME=y
  356. +CONFIG_OF_EMBED=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
  368. +CONFIG_NETCONSOLE=y
  369. +CONFIG_USE_IPADDR=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
  374. +CONFIG_SCSI_AHCI=y
  375. +CONFIG_AHCI_PCI=y
  376. +CONFIG_MTK_AHCI=y
  377. +CONFIG_BUTTON=y
  378. +CONFIG_BUTTON_GPIO=y
  379. +CONFIG_CLK=y
  380. +CONFIG_GPIO_HOG=y
  381. +CONFIG_LED=y
  382. +CONFIG_LED_BLINK=y
  383. +CONFIG_LED_GPIO=y
  384. +CONFIG_SUPPORT_EMMC_BOOT=y
  385. +CONFIG_MMC_HS200_SUPPORT=y
  386. +CONFIG_MMC_MTK=y
  387. +CONFIG_MTD=y
  388. +CONFIG_DM_MTD=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
  395. +CONFIG_PHY_FIXED=y
  396. +CONFIG_MEDIATEK_ETH=y
  397. +CONFIG_PCIE_MEDIATEK=y
  398. +CONFIG_PHY=y
  399. +CONFIG_PHY_MTK_TPHY=y
  400. +CONFIG_PINCTRL=y
  401. +CONFIG_PINCONF=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
  408. +CONFIG_DM_PWM=y
  409. +CONFIG_PWM_MTK=y
  410. +CONFIG_RAM=y
  411. +CONFIG_SCSI=y
  412. +CONFIG_DM_SERIAL=y
  413. +CONFIG_SERIAL_RX_BUFFER=y
  414. +CONFIG_MTK_SERIAL=y
  415. +CONFIG_SPI=y
  416. +CONFIG_DM_SPI=y
  417. +CONFIG_MTK_SPIM=y
  418. +CONFIG_USB=y
  419. +CONFIG_USB_XHCI_HCD=y
  420. +CONFIG_USB_XHCI_MTK=y
  421. +CONFIG_USB_STORAGE=y
  422. +CONFIG_ZSTD=y
  423. +CONFIG_HEXDUMP=y
  424. --- /dev/null
  425. +++ b/defenvs/bananapi_bpi-r4_sdmmc_env
  426. @@ -0,0 +1,66 @@
  427. +ipaddr=192.168.1.1
  428. +serverip=192.168.1.254
  429. +loadaddr=0x50000000
  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
  435. +bootconf_extra=
  436. +bootdelay=0
  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
  442. +bootmenu_default=0
  443. +bootmenu_delay=0
  444. +bootmenu_title= ( ( ( OpenWrt ) ) ) [SD card]
  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=Install bootloader, recovery and production to NAND.=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 $ver"
  493. --- /dev/null
  494. +++ b/defenvs/bananapi_bpi-r4_snand_env
  495. @@ -0,0 +1,67 @@
  496. +ipaddr=192.168.1.1
  497. +serverip=192.168.1.254
  498. +loadaddr=0x50000000
  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
  503. +bootdelay=0
  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
  511. +bootmenu_default=0
  512. +bootmenu_delay=0
  513. +bootmenu_title= ( ( ( OpenWrt ) ) ) [SPI-NAND]
  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=Load BL31+U-Boot FIP via TFTP then write to NAND.=run boot_tftp_write_fip ; run bootmenu_confirm_return
  522. +bootmenu_7=Load BL2 preloader via TFTP then write to NAND.=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
  523. +bootmenu_8=Install bootloader, recovery and production to eMMC.=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 $ver"
  563. --- /dev/null
  564. +++ b/defenvs/bananapi_bpi-r4_emmc_env
  565. @@ -0,0 +1,57 @@
  566. +ipaddr=192.168.1.1
  567. +serverip=192.168.1.254
  568. +loadaddr=0x50000000
  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
  574. +bootconf_extra=
  575. +bootdelay=0
  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
  583. +bootmenu_default=0
  584. +bootmenu_delay=0
  585. +bootmenu_title= ( ( ( OpenWrt ) ) ) [eMMC]
  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=Load BL31+U-Boot FIP via TFTP then write to eMMC.=run boot_tftp_write_fip ; run bootmenu_confirm_return
  594. +bootmenu_7=Load BL2 preloader via TFTP then write to eMMC.=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 $ver"
  623. --- /dev/null
  624. +++ b/arch/arm/dts/mt7988a-bananapi-bpi-r4.dtsi
  625. @@ -0,0 +1,199 @@
  626. +// SPDX-License-Identifier: GPL-2.0
  627. +/*
  628. + * Copyright (c) 2022 MediaTek Inc.
  629. + * Author: Sam Shih <[email protected]>
  630. + */
  631. +
  632. +/dts-v1/;
  633. +#include "mt7988.dtsi"
  634. +#include <dt-bindings/gpio/gpio.h>
  635. +#include <dt-bindings/input/linux-event-codes.h>
  636. +
  637. +/ {
  638. + model = "Bananapi BPI-R4";
  639. + compatible = "bananapi,bpi-r4", "mediatek,mt7988";
  640. +
  641. + chosen {
  642. + stdout-path = &uart0;
  643. + };
  644. +
  645. + memory@40000000 {
  646. + device_type = "memory";
  647. + reg = <0 0x40000000 0 0x10000000>;
  648. + };
  649. +
  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>;
  655. + regulator-boot-on;
  656. + regulator-always-on;
  657. + };
  658. +
  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>;
  664. + regulator-boot-on;
  665. + regulator-always-on;
  666. + };
  667. +
  668. + keys {
  669. + compatible = "gpio-keys";
  670. +
  671. + wps {
  672. + label = "reset";
  673. + linux,code = <KEY_RESTART>;
  674. + gpios = <&pio 14 GPIO_ACTIVE_LOW>;
  675. + };
  676. + };
  677. +
  678. + leds {
  679. + compatible = "gpio-leds";
  680. +
  681. + led_status_green: led-green {
  682. + label = "green:status";
  683. + gpios = <&pio 79 GPIO_ACTIVE_HIGH>;
  684. + };
  685. +
  686. + led_status_blue: led-blue {
  687. + label = "blue:status";
  688. + gpios = <&pio 63 GPIO_ACTIVE_HIGH>;
  689. + };
  690. + };
  691. +};
  692. +
  693. +&uart0 {
  694. + status = "okay";
  695. +};
  696. +
  697. +&i2c1 {
  698. + pinctrl-names = "default";
  699. + pinctrl-0 = <&i2c1_pins>;
  700. + status = "okay";
  701. +};
  702. +
  703. +&eth0 {
  704. + status = "okay";
  705. + mediatek,gmac-id = <0>;
  706. + phy-mode = "usxgmii";
  707. + mediatek,switch = "mt7988";
  708. +
  709. + fixed-link {
  710. + speed = <1000>;
  711. + full-duplex;
  712. + pause;
  713. + };
  714. +};
  715. +
  716. +&pio {
  717. + i2c1_pins: i2c1-pins {
  718. + mux {
  719. + function = "i2c";
  720. + groups = "i2c1_0";
  721. + };
  722. + };
  723. +
  724. + pwm_pins: pwm-pins {
  725. + mux {
  726. + function = "pwm";
  727. + groups = "pwm0", "pwm1", "pwm2", "pwm3", "pwm4",
  728. + "pwm5", "pwm6", "pwm7";
  729. + };
  730. + };
  731. +
  732. + spi0_pins: spi0-pins {
  733. + mux {
  734. + function = "spi";
  735. + groups = "spi0", "spi0_wp_hold";
  736. + };
  737. + };
  738. +
  739. + mmc0_pins_default: mmc0default {
  740. + mux {
  741. + function = "flash";
  742. + groups = "emmc_51";
  743. + };
  744. +
  745. + conf-cmd-dat {
  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";
  749. + input-enable;
  750. + };
  751. +
  752. + conf-clk {
  753. + pins = "EMMC_CK";
  754. + };
  755. +
  756. + conf-dsl {
  757. + pins = "EMMC_DSL";
  758. + };
  759. +
  760. + conf-rst {
  761. + pins = "EMMC_RSTB";
  762. + };
  763. + };
  764. +
  765. + mmc1_pins_default: mmc1default {
  766. + mux {
  767. + function = "flash";
  768. + groups = "emmc_45";
  769. + };
  770. +
  771. + conf-cmd-dat {
  772. + pins = "SPI2_CSB", "SPI2_MISO", "SPI2_MOSI",
  773. + "SPI2_CLK", "SPI2_HOLD";
  774. + input-enable;
  775. + };
  776. +
  777. + conf-clk {
  778. + pins = "SPI2_WP";
  779. + };
  780. + };
  781. +};
  782. +
  783. +&pwm {
  784. + pinctrl-names = "default";
  785. + pinctrl-0 = <&pwm_pins>;
  786. + status = "okay";
  787. +};
  788. +
  789. +&spi0 {
  790. + pinctrl-names = "default";
  791. + pinctrl-0 = <&spi0_pins>;
  792. + #address-cells = <1>;
  793. + #size-cells = <0>;
  794. + status = "okay";
  795. + must_tx;
  796. + enhance_timing;
  797. + dma_ext;
  798. + ipm_design;
  799. + support_quad;
  800. + tick_dly = <2>;
  801. + sample_sel = <0>;
  802. +
  803. + spi_nand@0 {
  804. + compatible = "spi-nand";
  805. + reg = <0>;
  806. + spi-max-frequency = <52000000>;
  807. + partitions {
  808. + compatible = "fixed-partitions";
  809. + #address-cells = <1>;
  810. + #size-cells = <1>;
  811. +
  812. + partition@0 {
  813. + label = "bl2";
  814. + reg = <0x0 0x200000>;
  815. + };
  816. +
  817. + partition@200000 {
  818. + label = "ubi";
  819. + reg = <0x200000 0x7e00000>;
  820. + compatible = "linux,ubi";
  821. + };
  822. + };
  823. + };
  824. +};
  825. --- /dev/null
  826. +++ b/arch/arm/dts/mt7988a-bananapi-bpi-r4-sd.dts
  827. @@ -0,0 +1,19 @@
  828. +// SPDX-License-Identifier: GPL-2.0
  829. +/*
  830. + * Copyright (c) 2022 MediaTek Inc.
  831. + * Author: Sam Shih <[email protected]>
  832. + */
  833. +
  834. +/dts-v1/;
  835. +#include "mt7988a-bananapi-bpi-r4.dtsi"
  836. +
  837. +&mmc0 {
  838. + pinctrl-names = "default";
  839. + pinctrl-0 = <&mmc1_pins_default>;
  840. + max-frequency = <52000000>;
  841. + bus-width = <4>;
  842. + cap-sd-highspeed;
  843. + vmmc-supply = <&reg_3p3v>;
  844. + vqmmc-supply = <&reg_3p3v>;
  845. + status = "okay";
  846. +};
  847. --- /dev/null
  848. +++ b/arch/arm/dts/mt7988a-bananapi-bpi-r4-emmc.dts
  849. @@ -0,0 +1,21 @@
  850. +// SPDX-License-Identifier: GPL-2.0
  851. +/*
  852. + * Copyright (c) 2022 MediaTek Inc.
  853. + * Author: Sam Shih <[email protected]>
  854. + */
  855. +
  856. +/dts-v1/;
  857. +#include "mt7988a-bananapi-bpi-r4.dtsi"
  858. +
  859. +&mmc0 {
  860. + pinctrl-names = "default";
  861. + pinctrl-0 = <&mmc0_pins_default>;
  862. + max-frequency = <52000000>;
  863. + bus-width = <8>;
  864. + cap-mmc-highspeed;
  865. + cap-mmc-hw-reset;
  866. + vmmc-supply = <&reg_3p3v>;
  867. + vqmmc-supply = <&reg_1p8v>;
  868. + non-removable;
  869. + status = "okay";
  870. +};
  871. --- /dev/null
  872. +++ b/configs/mt7988a_bananapi_bpi-r4-poe-emmc_defconfig
  873. @@ -0,0 +1,138 @@
  874. +CONFIG_ARM=y
  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
  891. +CONFIG_PCI=y
  892. +CONFIG_DEBUG_UART=y
  893. +CONFIG_AHCI=y
  894. +CONFIG_FIT=y
  895. +CONFIG_BOOTDELAY=30
  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
  902. +CONFIG_LOGLEVEL=7
  903. +CONFIG_PRE_CONSOLE_BUFFER=y
  904. +CONFIG_LOG=y
  905. +CONFIG_BOARD_LATE_INIT=y
  906. +CONFIG_HUSH_PARSER=y
  907. +CONFIG_SYS_PROMPT="MT7988> "
  908. +CONFIG_CMD_CPU=y
  909. +CONFIG_CMD_LICENSE=y
  910. +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set
  911. +CONFIG_CMD_BOOTMENU=y
  912. +CONFIG_CMD_ASKENV=y
  913. +CONFIG_CMD_ERASEENV=y
  914. +CONFIG_CMD_ENV_FLAGS=y
  915. +CONFIG_CMD_STRINGS=y
  916. +CONFIG_CMD_DM=y
  917. +CONFIG_CMD_GPIO=y
  918. +CONFIG_CMD_PWM=y
  919. +CONFIG_CMD_GPT=y
  920. +CONFIG_CMD_MMC=y
  921. +CONFIG_CMD_MTD=y
  922. +CONFIG_CMD_PART=y
  923. +CONFIG_CMD_PCI=y
  924. +CONFIG_CMD_SF_TEST=y
  925. +CONFIG_CMD_USB=y
  926. +CONFIG_CMD_TFTPSRV=y
  927. +CONFIG_CMD_RARP=y
  928. +CONFIG_CMD_CDP=y
  929. +CONFIG_CMD_SNTP=y
  930. +CONFIG_CMD_LINK_LOCAL=y
  931. +CONFIG_CMD_DHCP=y
  932. +CONFIG_CMD_DNS=y
  933. +CONFIG_CMD_PING=y
  934. +CONFIG_CMD_PXE=y
  935. +CONFIG_CMD_CACHE=y
  936. +CONFIG_CMD_PSTORE=y
  937. +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
  938. +CONFIG_CMD_UUID=y
  939. +CONFIG_CMD_HASH=y
  940. +CONFIG_CMD_SMC=y
  941. +CONFIG_CMD_EXT4=y
  942. +CONFIG_CMD_FAT=y
  943. +CONFIG_CMD_FS_GENERIC=y
  944. +CONFIG_CMD_FS_UUID=y
  945. +CONFIG_CMD_UBI=y
  946. +CONFIG_CMD_UBI_RENAME=y
  947. +CONFIG_OF_EMBED=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
  956. +CONFIG_NETCONSOLE=y
  957. +CONFIG_USE_IPADDR=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
  962. +CONFIG_SCSI_AHCI=y
  963. +CONFIG_AHCI_PCI=y
  964. +CONFIG_MTK_AHCI=y
  965. +CONFIG_BUTTON=y
  966. +CONFIG_BUTTON_GPIO=y
  967. +CONFIG_CLK=y
  968. +CONFIG_GPIO_HOG=y
  969. +CONFIG_LED=y
  970. +CONFIG_LED_BLINK=y
  971. +CONFIG_LED_GPIO=y
  972. +CONFIG_SUPPORT_EMMC_BOOT=y
  973. +CONFIG_MMC_HS200_SUPPORT=y
  974. +CONFIG_MMC_MTK=y
  975. +CONFIG_MTD=y
  976. +CONFIG_DM_MTD=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
  983. +CONFIG_PHY_FIXED=y
  984. +CONFIG_MEDIATEK_ETH=y
  985. +CONFIG_PCIE_MEDIATEK=y
  986. +CONFIG_PHY=y
  987. +CONFIG_PHY_MTK_TPHY=y
  988. +CONFIG_PINCTRL=y
  989. +CONFIG_PINCONF=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
  996. +CONFIG_DM_PWM=y
  997. +CONFIG_PWM_MTK=y
  998. +CONFIG_RAM=y
  999. +CONFIG_SCSI=y
  1000. +CONFIG_DM_SERIAL=y
  1001. +CONFIG_SERIAL_RX_BUFFER=y
  1002. +CONFIG_MTK_SERIAL=y
  1003. +CONFIG_SPI=y
  1004. +CONFIG_DM_SPI=y
  1005. +CONFIG_MTK_SPIM=y
  1006. +CONFIG_USB=y
  1007. +CONFIG_USB_XHCI_HCD=y
  1008. +CONFIG_USB_XHCI_MTK=y
  1009. +CONFIG_USB_STORAGE=y
  1010. +CONFIG_ZSTD=y
  1011. +CONFIG_HEXDUMP=y
  1012. --- /dev/null
  1013. +++ b/configs/mt7988a_bananapi_bpi-r4-poe-sdmmc_defconfig
  1014. @@ -0,0 +1,138 @@
  1015. +CONFIG_ARM=y
  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
  1032. +CONFIG_PCI=y
  1033. +CONFIG_DEBUG_UART=y
  1034. +CONFIG_AHCI=y
  1035. +CONFIG_FIT=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
  1043. +CONFIG_LOGLEVEL=7
  1044. +CONFIG_PRE_CONSOLE_BUFFER=y
  1045. +CONFIG_LOG=y
  1046. +CONFIG_BOARD_LATE_INIT=y
  1047. +CONFIG_HUSH_PARSER=y
  1048. +CONFIG_SYS_PROMPT="MT7988> "
  1049. +CONFIG_CMD_CPU=y
  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
  1057. +CONFIG_CMD_DM=y
  1058. +CONFIG_CMD_GPIO=y
  1059. +CONFIG_CMD_PWM=y
  1060. +CONFIG_CMD_GPT=y
  1061. +CONFIG_CMD_MMC=y
  1062. +CONFIG_CMD_MTD=y
  1063. +CONFIG_CMD_PART=y
  1064. +CONFIG_CMD_PCI=y
  1065. +CONFIG_CMD_SF_TEST=y
  1066. +CONFIG_CMD_USB=y
  1067. +CONFIG_CMD_TFTPSRV=y
  1068. +CONFIG_CMD_RARP=y
  1069. +CONFIG_CMD_CDP=y
  1070. +CONFIG_CMD_SNTP=y
  1071. +CONFIG_CMD_LINK_LOCAL=y
  1072. +CONFIG_CMD_DHCP=y
  1073. +CONFIG_CMD_DNS=y
  1074. +CONFIG_CMD_PING=y
  1075. +CONFIG_CMD_PXE=y
  1076. +CONFIG_CMD_CACHE=y
  1077. +CONFIG_CMD_PSTORE=y
  1078. +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
  1079. +CONFIG_CMD_UUID=y
  1080. +CONFIG_CMD_HASH=y
  1081. +CONFIG_CMD_SMC=y
  1082. +CONFIG_CMD_EXT4=y
  1083. +CONFIG_CMD_FAT=y
  1084. +CONFIG_CMD_FS_GENERIC=y
  1085. +CONFIG_CMD_FS_UUID=y
  1086. +CONFIG_CMD_UBI=y
  1087. +CONFIG_CMD_UBI_RENAME=y
  1088. +CONFIG_OF_EMBED=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
  1103. +CONFIG_SCSI_AHCI=y
  1104. +CONFIG_AHCI_PCI=y
  1105. +CONFIG_MTK_AHCI=y
  1106. +CONFIG_BUTTON=y
  1107. +CONFIG_BUTTON_GPIO=y
  1108. +CONFIG_CLK=y
  1109. +CONFIG_GPIO_HOG=y
  1110. +CONFIG_LED=y
  1111. +CONFIG_LED_BLINK=y
  1112. +CONFIG_LED_GPIO=y
  1113. +CONFIG_SUPPORT_EMMC_BOOT=y
  1114. +CONFIG_MMC_HS200_SUPPORT=y
  1115. +CONFIG_MMC_MTK=y
  1116. +CONFIG_MTD=y
  1117. +CONFIG_DM_MTD=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
  1124. +CONFIG_PHY_FIXED=y
  1125. +CONFIG_MEDIATEK_ETH=y
  1126. +CONFIG_PCIE_MEDIATEK=y
  1127. +CONFIG_PHY=y
  1128. +CONFIG_PHY_MTK_TPHY=y
  1129. +CONFIG_PINCTRL=y
  1130. +CONFIG_PINCONF=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
  1137. +CONFIG_DM_PWM=y
  1138. +CONFIG_PWM_MTK=y
  1139. +CONFIG_RAM=y
  1140. +CONFIG_SCSI=y
  1141. +CONFIG_DM_SERIAL=y
  1142. +CONFIG_SERIAL_RX_BUFFER=y
  1143. +CONFIG_MTK_SERIAL=y
  1144. +CONFIG_SPI=y
  1145. +CONFIG_DM_SPI=y
  1146. +CONFIG_MTK_SPIM=y
  1147. +CONFIG_USB=y
  1148. +CONFIG_USB_XHCI_HCD=y
  1149. +CONFIG_USB_XHCI_MTK=y
  1150. +CONFIG_USB_STORAGE=y
  1151. +CONFIG_ZSTD=y
  1152. +CONFIG_HEXDUMP=y
  1153. --- /dev/null
  1154. +++ b/configs/mt7988a_bananapi_bpi-r4-poe-snand_defconfig
  1155. @@ -0,0 +1,138 @@
  1156. +CONFIG_ARM=y
  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
  1170. +CONFIG_PCI=y
  1171. +CONFIG_DEBUG_UART=y
  1172. +CONFIG_AHCI=y
  1173. +CONFIG_FIT=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
  1181. +CONFIG_LOGLEVEL=7
  1182. +CONFIG_PRE_CONSOLE_BUFFER=y
  1183. +CONFIG_LOG=y
  1184. +CONFIG_BOARD_LATE_INIT=y
  1185. +CONFIG_HUSH_PARSER=y
  1186. +CONFIG_SYS_PROMPT="MT7988> "
  1187. +CONFIG_CMD_CPU=y
  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
  1195. +CONFIG_CMD_DM=y
  1196. +CONFIG_CMD_GPIO=y
  1197. +CONFIG_CMD_PWM=y
  1198. +CONFIG_CMD_GPT=y
  1199. +CONFIG_CMD_MMC=y
  1200. +CONFIG_CMD_MTD=y
  1201. +CONFIG_CMD_PART=y
  1202. +CONFIG_CMD_PCI=y
  1203. +CONFIG_CMD_SF_TEST=y
  1204. +CONFIG_CMD_USB=y
  1205. +CONFIG_CMD_TFTPSRV=y
  1206. +CONFIG_CMD_RARP=y
  1207. +CONFIG_CMD_CDP=y
  1208. +CONFIG_CMD_SNTP=y
  1209. +CONFIG_CMD_LINK_LOCAL=y
  1210. +CONFIG_CMD_DHCP=y
  1211. +CONFIG_CMD_DNS=y
  1212. +CONFIG_CMD_PING=y
  1213. +CONFIG_CMD_PXE=y
  1214. +CONFIG_CMD_CACHE=y
  1215. +CONFIG_CMD_PSTORE=y
  1216. +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
  1217. +CONFIG_CMD_UUID=y
  1218. +CONFIG_CMD_HASH=y
  1219. +CONFIG_CMD_SMC=y
  1220. +CONFIG_CMD_EXT4=y
  1221. +CONFIG_CMD_FAT=y
  1222. +CONFIG_CMD_FS_GENERIC=y
  1223. +CONFIG_CMD_FS_UUID=y
  1224. +CONFIG_CMD_UBI=y
  1225. +CONFIG_CMD_UBI_RENAME=y
  1226. +CONFIG_OF_EMBED=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
  1244. +CONFIG_SCSI_AHCI=y
  1245. +CONFIG_AHCI_PCI=y
  1246. +CONFIG_MTK_AHCI=y
  1247. +CONFIG_BUTTON=y
  1248. +CONFIG_BUTTON_GPIO=y
  1249. +CONFIG_CLK=y
  1250. +CONFIG_GPIO_HOG=y
  1251. +CONFIG_LED=y
  1252. +CONFIG_LED_BLINK=y
  1253. +CONFIG_LED_GPIO=y
  1254. +CONFIG_SUPPORT_EMMC_BOOT=y
  1255. +CONFIG_MMC_HS200_SUPPORT=y
  1256. +CONFIG_MMC_MTK=y
  1257. +CONFIG_MTD=y
  1258. +CONFIG_DM_MTD=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
  1265. +CONFIG_PHY_FIXED=y
  1266. +CONFIG_MEDIATEK_ETH=y
  1267. +CONFIG_PCIE_MEDIATEK=y
  1268. +CONFIG_PHY=y
  1269. +CONFIG_PHY_MTK_TPHY=y
  1270. +CONFIG_PINCTRL=y
  1271. +CONFIG_PINCONF=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
  1278. +CONFIG_DM_PWM=y
  1279. +CONFIG_PWM_MTK=y
  1280. +CONFIG_RAM=y
  1281. +CONFIG_SCSI=y
  1282. +CONFIG_DM_SERIAL=y
  1283. +CONFIG_SERIAL_RX_BUFFER=y
  1284. +CONFIG_MTK_SERIAL=y
  1285. +CONFIG_SPI=y
  1286. +CONFIG_DM_SPI=y
  1287. +CONFIG_MTK_SPIM=y
  1288. +CONFIG_USB=y
  1289. +CONFIG_USB_XHCI_HCD=y
  1290. +CONFIG_USB_XHCI_MTK=y
  1291. +CONFIG_USB_STORAGE=y
  1292. +CONFIG_ZSTD=y
  1293. +CONFIG_HEXDUMP=y
  1294. --- /dev/null
  1295. +++ b/defenvs/bananapi_bpi-r4-poe_emmc_env
  1296. @@ -0,0 +1,57 @@
  1297. +ipaddr=192.168.1.1
  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
  1305. +bootconf_extra=
  1306. +bootdelay=0
  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
  1314. +bootmenu_default=0
  1315. +bootmenu_delay=0
  1316. +bootmenu_title= ( ( ( OpenWrt ) ) ) [eMMC]
  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=Load BL31+U-Boot FIP via TFTP then write to eMMC.=run boot_tftp_write_fip ; run bootmenu_confirm_return
  1325. +bootmenu_7=Load BL2 preloader via TFTP then write to eMMC.=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 $ver"
  1354. --- /dev/null
  1355. +++ b/defenvs/bananapi_bpi-r4-poe_sdmmc_env
  1356. @@ -0,0 +1,66 @@
  1357. +ipaddr=192.168.1.1
  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
  1365. +bootconf_extra=
  1366. +bootdelay=0
  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
  1372. +bootmenu_default=0
  1373. +bootmenu_delay=0
  1374. +bootmenu_title= ( ( ( OpenWrt ) ) ) [SD card]
  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=Install bootloader, recovery and production to NAND.=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 $ver"
  1423. --- /dev/null
  1424. +++ b/defenvs/bananapi_bpi-r4-poe_snand_env
  1425. @@ -0,0 +1,67 @@
  1426. +ipaddr=192.168.1.1
  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
  1433. +bootdelay=0
  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
  1441. +bootmenu_default=0
  1442. +bootmenu_delay=0
  1443. +bootmenu_title= ( ( ( OpenWrt ) ) ) [SPI-NAND]
  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=Load BL31+U-Boot FIP via TFTP then write to NAND.=run boot_tftp_write_fip ; run bootmenu_confirm_return
  1452. +bootmenu_7=Load BL2 preloader via TFTP then write to NAND.=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
  1453. +bootmenu_8=Install bootloader, recovery and production to eMMC.=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 $ver"