在 2022/4/25 22:50, Pali Rohár 写道:
All *boot env commands overrides default boot source location via i2c.
After board reset without power off, BootROM then starts booting U-Boot
from this specified location instead of the default one.

Add new env command defboot which reverts boot location to the default
value, which in most cases is configurable by HW DIP switches.

And add new env commands norlowerboot, norupperboot, sd2boot to boot from
other locations. norlowerboot would instruct BootROM to boot from lower NOR
bank, norupperboot from upper NOR bank and sd2boot from SD card with
alternative configuration.

Signed-off-by: Pali Rohár <p...@kernel.org>

Not able to apply this patch. Please new version.

Thanks,
Peng.
---
Changes in v2:
* Fix commit message
* Adapt code to use p1_p2_bootsrc.h
---
  include/configs/p1_p2_bootsrc.h | 20 ++++++++++++++++++++
  include/configs/p1_p2_rdb_pc.h  | 13 +++++++++++++
  2 files changed, 33 insertions(+)

diff --git a/include/configs/p1_p2_bootsrc.h b/include/configs/p1_p2_bootsrc.h
index a274c57786f5..60741ef544c0 100644
--- a/include/configs/p1_p2_bootsrc.h
+++ b/include/configs/p1_p2_bootsrc.h
@@ -30,6 +30,18 @@
  #define RST_NOR_CMD(var, ...) ""
  #endif
+#ifdef __SW_BOOT_NOR_BANK_LO
+#define RST_NOR_LO_CMD(var, ...) __VAR_CMD_RST(var, __VA_ARGS__ 
__BOOTSRC_CMD(__SW_BOOT_NOR_BANK_LO, __SW_BOOT_MASK))
+#else
+#define RST_NOR_LO_CMD(var, ...) ""
+#endif
+
+#ifdef __SW_BOOT_NOR_BANK_UP
+#define RST_NOR_UP_CMD(var, ...) __VAR_CMD_RST(var, __VA_ARGS__ 
__BOOTSRC_CMD(__SW_BOOT_NOR_BANK_UP, __SW_BOOT_MASK))
+#else
+#define RST_NOR_UP_CMD(var, ...) ""
+#endif
+
  #ifdef __SW_BOOT_SPI
  #define RST_SPI_CMD(var, ...) __VAR_CMD_RST(var, __VA_ARGS__ 
__BOOTSRC_CMD(__SW_BOOT_SPI, __SW_BOOT_MASK))
  #else
@@ -42,6 +54,12 @@
  #define RST_SD_CMD(var, ...) ""
  #endif
+#ifdef __SW_BOOT_SD2
+#define RST_SD2_CMD(var, ...) __VAR_CMD_RST(var, __VA_ARGS__ 
__BOOTSRC_CMD(__SW_BOOT_SD2, __SW_BOOT_MASK))
+#else
+#define RST_SD2_CMD(var, ...) ""
+#endif
+
  #ifdef __SW_BOOT_NAND
  #define RST_NAND_CMD(var, ...) __VAR_CMD_RST(var, __VA_ARGS__ 
__BOOTSRC_CMD(__SW_BOOT_NAND, __SW_BOOT_MASK))
  #else
@@ -53,3 +71,5 @@
  #else
  #define RST_PCIE_CMD(var, ...) ""
  #endif
+
+#define RST_DEF_CMD(var, ...) __VAR_CMD_RST(var, __VA_ARGS__ 
__BOOTSRC_CMD(0x00, 0xff))
diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h
index 47bd20eeeafb..50ce2d9aaed4 100644
--- a/include/configs/p1_p2_rdb_pc.h
+++ b/include/configs/p1_p2_rdb_pc.h
@@ -25,6 +25,9 @@
  #define __SW_NOR_BANK_MASK    0xfd
  #define __SW_NOR_BANK_UP      0x00
  #define __SW_NOR_BANK_LO      0x02
+#define __SW_BOOT_NOR_BANK_UP  0x5c /* (__SW_BOOT_NOR | __SW_NOR_BANK_UP) */
+#define __SW_BOOT_NOR_BANK_LO  0x5e /* (__SW_BOOT_NOR | __SW_NOR_BANK_LO) */
+#define __SW_BOOT_NOR_BANK_MASK        0x01 /* (__SW_BOOT_MASK & 
__SW_NOR_BANK_MASK) */
  #define CONFIG_SYS_L2_SIZE    (256 << 10)
  #endif
@@ -54,6 +57,9 @@
  #define __SW_NOR_BANK_MASK    0xfd
  #define __SW_NOR_BANK_UP      0x00
  #define __SW_NOR_BANK_LO      0x02
+#define __SW_BOOT_NOR_BANK_UP  0x64 /* (__SW_BOOT_NOR | __SW_NOR_BANK_UP) */
+#define __SW_BOOT_NOR_BANK_LO  0x66 /* (__SW_BOOT_NOR | __SW_NOR_BANK_LO) */
+#define __SW_BOOT_NOR_BANK_MASK        0x01 /* (__SW_BOOT_MASK & 
__SW_NOR_BANK_MASK) */
  #define CONFIG_SYS_L2_SIZE    (256 << 10)
  /*
   * Dynamic MTD Partition support with mtdparts
@@ -73,6 +79,9 @@
  #define __SW_NOR_BANK_MASK    0xfd
  #define __SW_NOR_BANK_UP      0x00
  #define __SW_NOR_BANK_LO      0x02
+#define __SW_BOOT_NOR_BANK_UP  0xc8 /* (__SW_BOOT_NOR | __SW_NOR_BANK_UP) */
+#define __SW_BOOT_NOR_BANK_LO  0xca /* (__SW_BOOT_NOR | __SW_NOR_BANK_LO) */
+#define __SW_BOOT_NOR_BANK_MASK        0x01 /* (__SW_BOOT_MASK & 
__SW_NOR_BANK_MASK) */
  #define CONFIG_SYS_L2_SIZE    (512 << 10)
  /*
   * Dynamic MTD Partition support with mtdparts
@@ -605,10 +614,14 @@ __VSCFW_ADDR      \
  MAP_NOR_LO_CMD(map_lowernorbank) \
  MAP_NOR_UP_CMD(map_uppernorbank) \
  RST_NOR_CMD(norboot) \
+RST_NOR_LO_CMD(norlowerboot) \
+RST_NOR_UP_CMD(norupperboot) \
  RST_SPI_CMD(spiboot) \
  RST_SD_CMD(sdboot) \
+RST_SD2_CMD(sd2boot) \
  RST_NAND_CMD(nandboot) \
  RST_PCIE_CMD(pciboot) \
+RST_DEF_CMD(defboot) \
  ""
#define CONFIG_USB_FAT_BOOT \

Reply via email to