Skip to contentSkip to conversation

rockchip: set scan_dev_for_boot_part env for rockchip SoC

PATCH New Eddie Cai 3 participants 10 messages Feb 17, 2017 – Mar 9, 2017

Subsystems (3)
lore
Share & tools
lore

Eddie Cai

author
#0 lore raw

PATCH 1/1 rockchip: set scan_dev_for_boot_part env for rockchip SoC

Auto write GPT table if fail to get GPT table when scan_dev_for_boot_part

---
 arch/arm/mach-rockchip/rk3036-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3288-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3399-board.c | 46 +++++++++++++++++++++++++++++++++++
 3 files changed, 84 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/mach-rockchip/rk3399-board.c
arch/arm/mach-rockchip/rk3036-board.c +19 -1
index bf2b268..e9aeaff 100644
@@ -51,7 +51,25 @@ __weak int rk_board_late_init(void)
 int board_late_init(void)
 {
 	setup_boot_mode();
-
+	setenv("scan_dev_for_boot_part",
+			"part list ${devtype} ${devnum} -bootable test; "
+			"if env exists test; then "
+			       "echo Found valid partition table; "
+			"else "
+	               "echo No valid partition table, write the original partition table; "
+			       "gpt write ${devtype} ${devnum} ${partitions}; "
+			       "mmc rescan;"
+			"fi;"
+			"part list ${devtype} ${devnum} -bootable devplist; "
+			"env exists devplist || setenv devplist 1; "
+			"for distro_bootpart in ${devplist}; do "
+			    "if fstype ${devtype} "
+			            "${devnum}:${distro_bootpart} "
+			            "bootfstype; then "
+			        "run scan_dev_for_boot; "
+			      "fi; "
+			"done\0"
+	);
 	return rk_board_late_init();
 }
 
arch/arm/mach-rockchip/rk3288-board.c +19 -1
index 9894a25..386b155 100644
@@ -74,7 +74,25 @@ int board_late_init(void)
 {
 	setup_boot_mode();
 	rk3288_qos_init();
-
+	setenv("scan_dev_for_boot_part",
+			"part list ${devtype} ${devnum} -bootable test; "
+			"if env exists test; then "
+			       "echo Found valid partition table; "
+			"else "
+	               "echo No valid partition table, write the original partition table; "
+			       "gpt write ${devtype} ${devnum} ${partitions}; "
+			       "mmc rescan;"
+			"fi;"
+			"part list ${devtype} ${devnum} -bootable devplist; "
+			"env exists devplist || setenv devplist 1; "
+			"for distro_bootpart in ${devplist}; do "
+			    "if fstype ${devtype} "
+			            "${devnum}:${distro_bootpart} "
+			            "bootfstype; then "
+			        "run scan_dev_for_boot; "
+			      "fi; "
+			"done\0"
+	);
 	return rk_board_late_init();
 }
 
arch/arm/mach-rockchip/rk3399-board.c new file +46 -0

46 lines not on this page · raw message

Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/1 rockchip: set scan_dev_for_boot_part env for rockchip SoC

Hi Eddie,

Quoted 110 lines · Eddie Cai

Auto write GPT table if fail to get GPT table when scan_dev_for_boot_part

---
 arch/arm/mach-rockchip/rk3036-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3288-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3399-board.c | 46 +++++++++++++++++++++++++++++++++++
 3 files changed, 84 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/mach-rockchip/rk3399-board.c
arch/arm/mach-rockchip/rk3036-board.c +19 -1
index bf2b268..e9aeaff 100644
@@ -51,7 +51,25 @@ __weak int rk_board_late_init(void)
 int board_late_init(void)
 {
        setup_boot_mode();
-
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable test; "
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the original partition table; "
+                              "gpt write ${devtype} ${devnum} ${partitions}; "
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable devplist; "
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
+       );
        return rk_board_late_init();
 }
 
arch/arm/mach-rockchip/rk3288-board.c +19 -1
index 9894a25..386b155 100644
@@ -74,7 +74,25 @@ int board_late_init(void)
 {
        setup_boot_mode();
        rk3288_qos_init();
-
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable test; "
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the original partition table; "
+                              "gpt write ${devtype} ${devnum} ${partitions}; "
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable devplist; "
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
+       );
        return rk_board_late_init();
 }
 
arch/arm/mach-rockchip/rk3399-board.c new file +32 -0
new file mode 100644
index 0000000..3777643
@@ -0,0 +1,46 @@
+/*
+ * (C) Copyright 2017 ockchip Electronics Co., Ltd
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#include <common.h>
+#include <clk.h>
+#include <dm.h>
+#include <ram.h>
+#include <syscon.h>
+#include <asm/io.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/periph.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+__weak int rk_board_late_init(void)
+{
+       return 0;
+}
+
+int board_late_init(void)
+{
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable test; "
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the original partition table; "
+                              "gpt write ${devtype} ${devnum} ${partitions}; "
+                              "mmc rescan;"

arch/arm/mach-rockchip/rk3399-board.c line 42

Quoted 10 lines
arch/arm/mach-rockchip/rk3399-board.c new file +10 -0
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable devplist; "
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"

What is the purpose of this setenv()?

Quoted 7 lines
arch/arm/mach-rockchip/rk3399-board.c new file +4 -1
+       );
+       return rk_board_late_init();
+}
+
--

2.7.4

Regards,
Simon

author
#2 lore raw

PATCH 1/1 rockchip: set scan_dev_for_boot_part env for rockchip SoC

Hi Simon

2017-02-22 11:59 GMT+08:00 Simon Glass <[email protected]>:

Quoted 137 lines

Hi Eddie,

Quoted 7 lines · Eddie Cai

Auto write GPT table if fail to get GPT table when scan_dev_for_boot_part

---
 arch/arm/mach-rockchip/rk3036-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3288-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3399-board.c | 46

+++++++++++++++++++++++++++++++++++

Review

Quoted 4 lines
 3 files changed, 84 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/mach-rockchip/rk3399-board.c
(quoted diff) +0 -0

b/arch/arm/mach-rockchip/rk3036-board.c

Quoted 4 lines

index bf2b268..e9aeaff 100644

arch/arm/mach-rockchip/rk3036-board.c __weak int rk_board_late_init(void) · line 59

Quoted 10 lines
arch/arm/mach-rockchip/rk3036-board.c +6 -1
@@ -51,7 +51,25 @@ __weak int rk_board_late_init(void)
 int board_late_init(void)
 {
        setup_boot_mode();
-
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable test; "
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "

arch/arm/mach-rockchip/rk3036-board.c __weak int rk_board_late_init(void) · line 60

Quoted 1 line
arch/arm/mach-rockchip/rk3036-board.c +1 -0
+                              "gpt write ${devtype} ${devnum}

${partitions}; "

arch/arm/mach-rockchip/rk3036-board.c __weak int rk_board_late_init(void)

Quoted 3 lines
arch/arm/mach-rockchip/rk3036-board.c +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

Review

Quoted 13 lines
arch/arm/mach-rockchip/rk3036-board.c +9 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
+       );
        return rk_board_late_init();
 }
 
(quoted diff) +0 -0

b/arch/arm/mach-rockchip/rk3288-board.c

Quoted 4 lines

index 9894a25..386b155 100644

arch/arm/mach-rockchip/rk3288-board.c int board_late_init(void) · line 82

Quoted 10 lines
arch/arm/mach-rockchip/rk3288-board.c +6 -1
@@ -74,7 +74,25 @@ int board_late_init(void)
 {
        setup_boot_mode();
        rk3288_qos_init();
-
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable test; "
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "

arch/arm/mach-rockchip/rk3288-board.c int board_late_init(void) · line 83

Quoted 1 line
arch/arm/mach-rockchip/rk3288-board.c +1 -0
+                              "gpt write ${devtype} ${devnum}

${partitions}; "

arch/arm/mach-rockchip/rk3288-board.c int board_late_init(void) · line 86

Quoted 3 lines
arch/arm/mach-rockchip/rk3288-board.c +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

Review

Quoted 13 lines
arch/arm/mach-rockchip/rk3288-board.c +9 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
+       );
        return rk_board_late_init();
 }
 
(quoted diff) +0 -0

b/arch/arm/mach-rockchip/rk3399-board.c

Quoted 25 lines

new file mode 100644
index 0000000..3777643

arch/arm/mach-rockchip/rk3399-board.c new file +20 -0
@@ -0,0 +1,46 @@
+/*
+ * (C) Copyright 2017 ockchip Electronics Co., Ltd
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#include <common.h>
+#include <clk.h>
+#include <dm.h>
+#include <ram.h>
+#include <syscon.h>
+#include <asm/io.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/periph.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+__weak int rk_board_late_init(void)
+{
+       return 0;

arch/arm/mach-rockchip/rk3399-board.c line 30

Quoted 10 lines
arch/arm/mach-rockchip/rk3399-board.c new file +10 -0
+}
+
+int board_late_init(void)
+{
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable test; "
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "

arch/arm/mach-rockchip/rk3399-board.c line 31

Quoted 1 line
arch/arm/mach-rockchip/rk3399-board.c new file +1 -0
+                              "gpt write ${devtype} ${devnum}

${partitions}; "

arch/arm/mach-rockchip/rk3399-board.c line 34

Quoted 3 lines
arch/arm/mach-rockchip/rk3399-board.c new file +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

arch/arm/mach-rockchip/rk3399-board.c line 42

Quoted 8 lines
arch/arm/mach-rockchip/rk3399-board.c new file +8 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
Quoted 2 lines

What is the purpose of this setenv()?

Auto write GPT table when scan_dev_for_boot_part fail to find a valid one

Quoted 12 lines
Quoted 8 lines
arch/arm/mach-rockchip/rk3399-board.c new file +4 -1
+       );
+       return rk_board_late_init();
+}
+
--

2.7.4

Regards,
Simon

author
#3 lore raw

PATCH 1/1 rockchip: set scan_dev_for_boot_part env for rockchip SoC

Hi Simon

2017-02-22 17:05 GMT+08:00 Eddie Cai <[email protected]>:

Quoted 146 lines

Hi Simon

2017-02-22 11:59 GMT+08:00 Simon Glass <[email protected]>:

Quoted 142 lines

Hi Eddie,

Quoted 1 line · Eddie Cai

Auto write GPT table if fail to get GPT table when

scan_dev_for_boot_part

Quoted 6 lines
---
 arch/arm/mach-rockchip/rk3036-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3288-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3399-board.c | 46

+++++++++++++++++++++++++++++++++++

Review

Quoted 4 lines
 3 files changed, 84 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/mach-rockchip/rk3399-board.c
(quoted diff) +0 -0

b/arch/arm/mach-rockchip/rk3036-board.c

arch/arm/mach-rockchip/rk3036-board.c __weak int rk_board_late_init(void) · line 55

Quoted 10 lines

index bf2b268..e9aeaff 100644

arch/arm/mach-rockchip/rk3036-board.c +2 -1
@@ -51,7 +51,25 @@ __weak int rk_board_late_init(void)
 int board_late_init(void)
 {
        setup_boot_mode();
-
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable test;

"

arch/arm/mach-rockchip/rk3036-board.c __weak int rk_board_late_init(void)

Quoted 4 lines
arch/arm/mach-rockchip/rk3036-board.c +4 -0
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "

arch/arm/mach-rockchip/rk3036-board.c __weak int rk_board_late_init(void) · line 60

Quoted 1 line
arch/arm/mach-rockchip/rk3036-board.c +1 -0
+                              "gpt write ${devtype} ${devnum}

${partitions}; "

arch/arm/mach-rockchip/rk3036-board.c __weak int rk_board_late_init(void)

Quoted 3 lines
arch/arm/mach-rockchip/rk3036-board.c +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

Review

Quoted 13 lines
arch/arm/mach-rockchip/rk3036-board.c +9 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
+       );
        return rk_board_late_init();
 }
 
(quoted diff) +0 -0

b/arch/arm/mach-rockchip/rk3288-board.c

arch/arm/mach-rockchip/rk3288-board.c int board_late_init(void) · line 78

Quoted 10 lines

index 9894a25..386b155 100644

arch/arm/mach-rockchip/rk3288-board.c +2 -1
@@ -74,7 +74,25 @@ int board_late_init(void)
 {
        setup_boot_mode();
        rk3288_qos_init();
-
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable test;

"

arch/arm/mach-rockchip/rk3288-board.c int board_late_init(void) · line 82

Quoted 4 lines
arch/arm/mach-rockchip/rk3288-board.c +4 -0
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "

arch/arm/mach-rockchip/rk3288-board.c int board_late_init(void) · line 83

Quoted 1 line
arch/arm/mach-rockchip/rk3288-board.c +1 -0
+                              "gpt write ${devtype} ${devnum}

${partitions}; "

arch/arm/mach-rockchip/rk3288-board.c int board_late_init(void) · line 86

Quoted 3 lines
arch/arm/mach-rockchip/rk3288-board.c +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

Review

Quoted 13 lines
arch/arm/mach-rockchip/rk3288-board.c +9 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
+       );
        return rk_board_late_init();
 }
 
(quoted diff) +0 -0

b/arch/arm/mach-rockchip/rk3399-board.c

Quoted 21 lines

new file mode 100644
index 0000000..3777643

arch/arm/mach-rockchip/rk3399-board.c new file +16 -0
@@ -0,0 +1,46 @@
+/*
+ * (C) Copyright 2017 ockchip Electronics Co., Ltd
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#include <common.h>
+#include <clk.h>
+#include <dm.h>
+#include <ram.h>
+#include <syscon.h>
+#include <asm/io.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/periph.h>
+
+DECLARE_GLOBAL_DATA_PTR;

arch/arm/mach-rockchip/rk3399-board.c line 26

Quoted 10 lines
arch/arm/mach-rockchip/rk3399-board.c new file +10 -0
+
+__weak int rk_board_late_init(void)
+{
+       return 0;
+}
+
+int board_late_init(void)
+{
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable test;

"

arch/arm/mach-rockchip/rk3399-board.c line 30

Quoted 4 lines
arch/arm/mach-rockchip/rk3399-board.c new file +4 -0
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "

arch/arm/mach-rockchip/rk3399-board.c line 31

Quoted 1 line
arch/arm/mach-rockchip/rk3399-board.c new file +1 -0
+                              "gpt write ${devtype} ${devnum}

${partitions}; "

arch/arm/mach-rockchip/rk3399-board.c line 34

Quoted 3 lines
arch/arm/mach-rockchip/rk3399-board.c new file +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

Quoted 8 lines
arch/arm/mach-rockchip/rk3399-board.c new file +8 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
Quoted 4 lines
Quoted 2 lines

What is the purpose of this setenv()?

Auto write GPT table when scan_dev_for_boot_part fail to find a valid one

To be more clearly. If the GPT table in the boot media corrupted. Or there is no GPT table in the boot media. The original scan_dev_for_boot_part will fail to find a bootable partition. I just let it write GPT table when can not find a valid one.

Quoted 14 lines
Quoted 12 lines
Quoted 8 lines
arch/arm/mach-rockchip/rk3399-board.c new file +4 -1
+       );
+       return rk_board_late_init();
+}
+
--

2.7.4

Regards,
Simon

#4 lore raw

PATCH 1/1 rockchip: set scan_dev_for_boot_part env for rockchip SoC

Hi Eddie,

Quoted 152 lines · Eddie Cai

Hi Simon

2017-02-22 17:05 GMT+08:00 Eddie Cai <[email protected]>:

Quoted 149 lines

Hi Simon

2017-02-22 11:59 GMT+08:00 Simon Glass <[email protected]>:

Quoted 144 lines

Hi Eddie,

Quoted 129 lines · Eddie Cai

Auto write GPT table if fail to get GPT table when scan_dev_for_boot_part

---
 arch/arm/mach-rockchip/rk3036-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3288-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3399-board.c | 46
+++++++++++++++++++++++++++++++++++
 3 files changed, 84 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/mach-rockchip/rk3399-board.c
arch/arm/mach-rockchip/rk3036-board.c +2 -1
index bf2b268..e9aeaff 100644
@@ -51,7 +51,25 @@ __weak int rk_board_late_init(void)
 int board_late_init(void)
 {
        setup_boot_mode();
-
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable test;

"

arch/arm/mach-rockchip/rk3036-board.c +4 -0
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "

arch/arm/mach-rockchip/rk3036-board.c +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

arch/arm/mach-rockchip/rk3036-board.c +9 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
+       );
        return rk_board_late_init();
 }
arch/arm/mach-rockchip/rk3288-board.c +2 -1
index 9894a25..386b155 100644
@@ -74,7 +74,25 @@ int board_late_init(void)
 {
        setup_boot_mode();
        rk3288_qos_init();
-
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable test;

"

arch/arm/mach-rockchip/rk3288-board.c +4 -0
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "

arch/arm/mach-rockchip/rk3288-board.c +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

arch/arm/mach-rockchip/rk3288-board.c +9 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
+       );
        return rk_board_late_init();
 }
arch/arm/mach-rockchip/rk3399-board.c new file +26 -0
new file mode 100644
index 0000000..3777643
@@ -0,0 +1,46 @@
+/*
+ * (C) Copyright 2017 ockchip Electronics Co., Ltd
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#include <common.h>
+#include <clk.h>
+#include <dm.h>
+#include <ram.h>
+#include <syscon.h>
+#include <asm/io.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/periph.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+__weak int rk_board_late_init(void)
+{
+       return 0;
+}
+
+int board_late_init(void)
+{
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable test;

"

arch/arm/mach-rockchip/rk3399-board.c new file +4 -0
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "

arch/arm/mach-rockchip/rk3399-board.c new file +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

arch/arm/mach-rockchip/rk3399-board.c

Quoted 8 lines
arch/arm/mach-rockchip/rk3399-board.c new file +8 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"

What is the purpose of this setenv()?

Quoted 7 lines
Quoted 1 line

Auto write GPT table when scan_dev_for_boot_part fail to find a valid one

To be more clearly. If the GPT table in the boot media corrupted. Or there is no GPT table in the boot media. The original scan_dev_for_boot_part will fail to find a bootable partition. I just let it write GPT table when can not find a valid one.

Quoted 1 line
Quoted 1 line

OK, but you should not be changing the environment in your code. Can you add your changes to the default environment (and put them in a common file so that we don't have to repeat the same thing in each file)?

Regards,
Simon

author
#5 lore raw

PATCH 1/1 rockchip: set scan_dev_for_boot_part env for rockchip SoC

Hi Simon

2017-02-23 11:33 GMT+08:00 Simon Glass <[email protected]>:

Quoted 166 lines

Hi Eddie,

Quoted 24 lines · Eddie Cai

Hi Simon

2017-02-22 17:05 GMT+08:00 Eddie Cai <[email protected]>:

Quoted 21 lines

Hi Simon

2017-02-22 11:59 GMT+08:00 Simon Glass <[email protected]>:

Quoted 17 lines

Hi Eddie,

Quoted 12 lines · Eddie Cai

Auto write GPT table if fail to get GPT table when scan_dev_for_boot_part

---
 arch/arm/mach-rockchip/rk3036-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3288-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3399-board.c | 46
+++++++++++++++++++++++++++++++++++
 3 files changed, 84 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/mach-rockchip/rk3399-board.c
Quoted 12 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
arch/arm/mach-rockchip/rk3036-board.c +0 -1
index bf2b268..e9aeaff 100644
--- a/arch/arm/mach-rockchip/rk3036-board.c
Quoted 8 lines
Quoted 8 lines

arch/arm/mach-rockchip/rk3036-board.c __weak int rk_board_late_init(void) · line 55

Quoted 8 lines

+++ b/arch/arm/mach-rockchip/rk3036-board.c

arch/arm/mach-rockchip/rk3036-board.c +2 -1
@@ -51,7 +51,25 @@ __weak int rk_board_late_init(void)
 int board_late_init(void)
 {
        setup_boot_mode();
-
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable

test;

Quoted 24 lines
Quoted 24 lines
Quoted 24 lines
Quoted 24 lines

"

arch/arm/mach-rockchip/rk3036-board.c +4 -0
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "

arch/arm/mach-rockchip/rk3036-board.c +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

arch/arm/mach-rockchip/rk3036-board.c +9 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
+       );
        return rk_board_late_init();
 }
Quoted 12 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
arch/arm/mach-rockchip/rk3288-board.c +0 -1
index 9894a25..386b155 100644
--- a/arch/arm/mach-rockchip/rk3288-board.c
Quoted 8 lines
Quoted 8 lines

arch/arm/mach-rockchip/rk3288-board.c int board_late_init(void) · line 78

Quoted 8 lines

+++ b/arch/arm/mach-rockchip/rk3288-board.c

arch/arm/mach-rockchip/rk3288-board.c +2 -1
@@ -74,7 +74,25 @@ int board_late_init(void)
 {
        setup_boot_mode();
        rk3288_qos_init();
-
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable

test;

Quoted 49 lines
Quoted 49 lines
Quoted 49 lines
Quoted 49 lines

"

arch/arm/mach-rockchip/rk3288-board.c +4 -0
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "

arch/arm/mach-rockchip/rk3288-board.c +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

arch/arm/mach-rockchip/rk3288-board.c +9 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
+       );
        return rk_board_late_init();
 }
arch/arm/mach-rockchip/rk3399-board.c new file +18 -0
new file mode 100644
index 0000000..3777643
@@ -0,0 +1,46 @@
+/*
+ * (C) Copyright 2017 ockchip Electronics Co., Ltd
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#include <common.h>
+#include <clk.h>
+#include <dm.h>
+#include <ram.h>
+#include <syscon.h>
+#include <asm/io.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/periph.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+__weak int rk_board_late_init(void)
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

arch/arm/mach-rockchip/rk3399-board.c

Quoted 8 lines
arch/arm/mach-rockchip/rk3399-board.c new file +8 -0
+{
+       return 0;
+}
+
+int board_late_init(void)
+{
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable

test;

Quoted 21 lines
Quoted 21 lines
Quoted 21 lines
Quoted 20 lines

"

arch/arm/mach-rockchip/rk3399-board.c new file +4 -0
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "

arch/arm/mach-rockchip/rk3399-board.c new file +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

arch/arm/mach-rockchip/rk3399-board.c new file +8 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
Quoted 3 lines
Quoted 3 lines
Quoted 1 line

What is the purpose of this setenv()?

Auto write GPT table when scan_dev_for_boot_part fail to find a valid

one

Quoted 2 lines

To be more clearly. If the GPT table in the boot media corrupted. Or

there

Quoted 1 line

is no GPT table in the boot media. The original scan_dev_for_boot_part

will

Quoted 1 line

fail to find a bootable partition. I just let it write GPT table when

Quoted 9 lines

can

Quoted 2 lines

not find a valid one.

Quoted 1 line
Quoted 1 line

OK, but you should not be changing the environment in your code. Can you add your changes to the default environment (and put them in a common file so that we don't have to repeat the same thing in each file)?

done

Quoted 4 lines

Regards,
Simon

author
#6 lore raw

PATCH 1/1 rockchip: set scan_dev_for_boot_part env for rockchip SoC

Hi Simon

2017-03-06 14:46 GMT+08:00 Eddie Cai <[email protected]>:

Quoted 175 lines

Hi Simon

2017-02-23 11:33 GMT+08:00 Simon Glass <[email protected]>:

Quoted 171 lines

Hi Eddie,

Quoted 24 lines · Eddie Cai

Hi Simon

2017-02-22 17:05 GMT+08:00 Eddie Cai <[email protected]>:

Quoted 21 lines

Hi Simon

2017-02-22 11:59 GMT+08:00 Simon Glass <[email protected]>:

Quoted 17 lines

Hi Eddie,

Quoted 12 lines · Eddie Cai

Auto write GPT table if fail to get GPT table when scan_dev_for_boot_part

---
 arch/arm/mach-rockchip/rk3036-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3288-board.c | 20 ++++++++++++++-
 arch/arm/mach-rockchip/rk3399-board.c | 46
+++++++++++++++++++++++++++++++++++
 3 files changed, 84 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/mach-rockchip/rk3399-board.c
Quoted 12 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
arch/arm/mach-rockchip/rk3036-board.c +0 -1
index bf2b268..e9aeaff 100644
--- a/arch/arm/mach-rockchip/rk3036-board.c
Quoted 8 lines
Quoted 8 lines

arch/arm/mach-rockchip/rk3036-board.c __weak int rk_board_late_init(void) · line 55

Quoted 8 lines

+++ b/arch/arm/mach-rockchip/rk3036-board.c

arch/arm/mach-rockchip/rk3036-board.c +2 -1
@@ -51,7 +51,25 @@ __weak int rk_board_late_init(void)
 int board_late_init(void)
 {
        setup_boot_mode();
-
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable

test;

Quoted 24 lines
Quoted 24 lines
Quoted 24 lines
Quoted 24 lines

"

arch/arm/mach-rockchip/rk3036-board.c +4 -0
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "

arch/arm/mach-rockchip/rk3036-board.c +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

arch/arm/mach-rockchip/rk3036-board.c +9 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
+       );
        return rk_board_late_init();
 }
Quoted 12 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
arch/arm/mach-rockchip/rk3288-board.c +0 -1
index 9894a25..386b155 100644
--- a/arch/arm/mach-rockchip/rk3288-board.c
Quoted 8 lines
Quoted 8 lines

arch/arm/mach-rockchip/rk3288-board.c int board_late_init(void) · line 78

Quoted 8 lines

+++ b/arch/arm/mach-rockchip/rk3288-board.c

arch/arm/mach-rockchip/rk3288-board.c +2 -1
@@ -74,7 +74,25 @@ int board_late_init(void)
 {
        setup_boot_mode();
        rk3288_qos_init();
-
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable

test;

Quoted 49 lines
Quoted 49 lines
Quoted 49 lines
Quoted 49 lines

"

arch/arm/mach-rockchip/rk3288-board.c +4 -0
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "

arch/arm/mach-rockchip/rk3288-board.c +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

arch/arm/mach-rockchip/rk3288-board.c +9 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
+       );
        return rk_board_late_init();
 }
arch/arm/mach-rockchip/rk3399-board.c new file +18 -0
new file mode 100644
index 0000000..3777643
@@ -0,0 +1,46 @@
+/*
+ * (C) Copyright 2017 ockchip Electronics Co., Ltd
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#include <common.h>
+#include <clk.h>
+#include <dm.h>
+#include <ram.h>
+#include <syscon.h>
+#include <asm/io.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/periph.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+__weak int rk_board_late_init(void)
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

arch/arm/mach-rockchip/rk3399-board.c

Quoted 8 lines
arch/arm/mach-rockchip/rk3399-board.c new file +8 -0
+{
+       return 0;
+}
+
+int board_late_init(void)
+{
+       setenv("scan_dev_for_boot_part",
+                       "part list ${devtype} ${devnum} -bootable

test;

Quoted 21 lines
Quoted 21 lines
Quoted 21 lines
Quoted 20 lines

"

arch/arm/mach-rockchip/rk3399-board.c new file +4 -0
+                       "if env exists test; then "
+                              "echo Found valid partition table; "
+                       "else "
+                      "echo No valid partition table, write the

original partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "

arch/arm/mach-rockchip/rk3399-board.c new file +3 -0
+                              "mmc rescan;"
+                       "fi;"
+                       "part list ${devtype} ${devnum} -bootable

devplist; "

arch/arm/mach-rockchip/rk3399-board.c new file +8 -0
+                       "env exists devplist || setenv devplist 1; "
+                       "for distro_bootpart in ${devplist}; do "
+                           "if fstype ${devtype} "
+                                   "${devnum}:${distro_bootpart} "
+                                   "bootfstype; then "
+                               "run scan_dev_for_boot; "
+                             "fi; "
+                       "done\0"
Quoted 3 lines
Quoted 3 lines
Quoted 1 line

What is the purpose of this setenv()?

Auto write GPT table when scan_dev_for_boot_part fail to find a valid

one

Quoted 2 lines

To be more clearly. If the GPT table in the boot media corrupted. Or

there

Quoted 1 line

is no GPT table in the boot media. The original scan_dev_for_boot_part

will

Quoted 1 line

fail to find a bootable partition. I just let it write GPT table when

can

Quoted 2 lines

not find a valid one.

Quoted 1 line
Quoted 1 line
Quoted 7 lines
Quoted 5 lines

OK, but you should not be changing the environment in your code. Can you add your changes to the default environment (and put them in a common file so that we don't have to repeat the same thing in each file)?

done

Look like Tom don't like put this changes to default environment. See [0]. I think I would have to limit this change on Rockchip SoC because i can only guarantee GPT table exist on Rockchip SoC. What do you think? [0]: https://patchwork.ozlabs.org/patch/735557/

Quoted 6 lines
Quoted 4 lines

Regards,
Simon

#7 lore raw

PATCH 1/1 rockchip: set scan_dev_for_boot_part env for rockchip SoC

Quoted 16 lines · Eddie Cai

Hi Simon

2017-03-06 14:46 GMT+08:00 Eddie Cai <[email protected]>:

Quoted 11 lines

Hi Simon

2017-02-23 11:33 GMT+08:00 Simon Glass <[email protected]>:

Quoted 7 lines

Hi Eddie,

Quoted 2 lines · Eddie Cai

Hi Simon

Quoted 6 lines

Look like Tom don't like put this changes to default environment. See [0].
I think I would have to limit this change on Rockchip SoC because i can
only guarantee GPT table exist on Rockchip SoC. What do you think? [0]: https://patchwork.ozlabs.org/patch/735557/

How can you guarantee that it exists on all rockchip deployments? This very much depends on the software stack/image people use on rockchip boards.

One of the nice things about the distro bootcmds is that it's a flexible generic setup which should just work regardless of how systems are installed (as long as some basic conventions are followed). There isn't really a requirement for people to use GPT on those system.

Also from a quick look, this seems to want to automatically write GPT tables on whatever boot device is scanned, not just the internal media. So you're adding a big potential for destroying peoples SD cards here :)

Fwiw I'm also not sure what actual value of writing a GPT table is? It's extremely unlikely that this would then allow you to successfully boot from the device afterwards.

Signature · 2 lines
Sjoerd Simons
Collabora Ltd.
author
#8 lore raw

PATCH 1/1 rockchip: set scan_dev_for_boot_part env for rockchip SoC

2017-03-08 17:29 GMT+08:00 Sjoerd Simons <[email protected]>:

Quoted 24 lines · Eddie Cai
Quoted 16 lines

Hi Simon

2017-03-06 14:46 GMT+08:00 Eddie Cai <[email protected]>:

Quoted 11 lines

Hi Simon

2017-02-23 11:33 GMT+08:00 Simon Glass <[email protected]>:

Quoted 7 lines

Hi Eddie,

Quoted 2 lines · Eddie Cai

Hi Simon

Quoted 6 lines

Look like Tom don't like put this changes to default environment. See [0].
I think I would have to limit this change on Rockchip SoC because i can
only guarantee GPT table exist on Rockchip SoC. What do you think? [0]: https://patchwork.ozlabs.org/patch/735557/

Quoted 4 lines

How can you guarantee that it exists on all rockchip deployments? This very much depends on the software stack/image people use on rockchip boards.

We define PARTS_DEFAULT in rockchip-common.h. All rockchip SoC based board include this file.
#define PARTS_DEFAULT \
"uuid_disk=${uuid_gpt_disk};" \
"name=loader1,start=32K,size=4000K,uuid=${uuid_gpt_loader1};" \
"name=reserved1,size=64K,uuid=${uuid_gpt_reserved1};" \
"name=reserved2,size=4M,uuid=${uuid_gpt_reserved2};" \
"name=loader2,size=4MB,uuid=${uuid_gpt_loader2};" \
"name=atf,size=4M,uuid=${uuid_gpt_atf};" \
"name=boot,size=112M,bootable,uuid=${uuid_gpt_boot};" \
"name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \

Quoted 6 lines

One of the nice things about the distro bootcmds is that it's a flexible generic setup which should just work regardless of how systems are installed (as long as some basic conventions are followed). There isn't really a requirement for people to use GPT on those system.

That is correct. Also that is why i want to limit the change on Rockchip SoC based board.

Quoted 6 lines

Also from a quick look, this seems to want to automatically write GPT tables on whatever boot device is scanned, not just the internal media. So you're adding a big potential for destroying peoples SD cards here :)

Yes, I should limit it on the first boot device.

Quoted 5 lines

Fwiw I'm also not sure what actual value of writing a GPT table is? It's extremely unlikely that this would then allow you to successfully boot from the device afterwards.

It is PARTS_DEFAULT. For Rockchip SoC, It defined in rockchip-common.h

Quoted 5 lines

--
Sjoerd Simons
Collabora Ltd.

#9 lore raw

PATCH 1/1 rockchip: set scan_dev_for_boot_part env for rockchip SoC

Quoted 37 lines · Eddie Cai

2017-03-08 17:29 GMT+08:00 Sjoerd Simons <[email protected]. uk>:

Quoted 27 lines · Eddie Cai
Quoted 16 lines

Hi Simon

2017-03-06 14:46 GMT+08:00 Eddie Cai <[email protected]>:

Quoted 12 lines

Hi Simon

2017-02-23 11:33 GMT+08:00 Simon Glass <[email protected]>:

Quoted 8 lines

Hi Eddie,

On 22 February 2017 at 07:12, Eddie Cai <eddie.cai.linux@gmai l.co
m>

Quoted 2 lines · wrote:

Hi Simon

Quoted 9 lines

Look like Tom don't like put this changes to default environment. See
[0].
I think I would have to limit this change on Rockchip SoC because i
can
only guarantee GPT table exist on Rockchip SoC. What do you think?
[0]: https://patchwork.ozlabs.org/patch/735557/

Quoted 6 lines

How can you guarantee that it exists on all rockchip deployments? This
very much depends on the software stack/image people use on rockchip
boards.

Quoted 12 lines

We define PARTS_DEFAULT in rockchip-common.h. All rockchip SoC based board
include this file.
#define PARTS_DEFAULT \
"uuid_disk=${uuid_gpt_disk};" \
"name=loader1,start=32K,size=4000K,uuid=${uuid_gpt_loader1};" \
"name=reserved1,size=64K,uuid=${uuid_gpt_reserved1};" \
"name=reserved2,size=4M,uuid=${uuid_gpt_reserved2};" \
"name=loader2,size=4MB,uuid=${uuid_gpt_loader2};" \
"name=atf,size=4M,uuid=${uuid_gpt_atf};" \
"name=boot,size=112M,bootable,uuid=${uuid_gpt_boot};" \
"name=rootfs,size=-,uuid=${uuid_gpt_rootfs};\0" \

Yeah, that's not the partition everyone *must* use for rockchip though. Definately not the one distributions (or I myself use for our rockchip images) on their installations. This is somewhat specific to a deployment not generic :)

Quoted 23 lines
Quoted 8 lines

One of the nice things about the distro bootcmds is that it's a flexible generic setup which should just work regardless of how systems
are installed (as long as some basic conventions are followed). There
isn't really a requirement for people to use GPT on those system.

That is correct. Also that is why i want to limit the change on Rockchip
SoC based board.

Quoted 9 lines

Also from a quick look, this seems to want to automatically write GPT
tables on whatever boot device is scanned, not just the internal media.
So you're adding a big potential for destroying peoples SD cards here
:)

Quoted 1 line

Yes, I should limit it on the first boot device.

Why do it at all? Especially automatically on boot?

I can see the point for forcing a given GPT partition table if using u- boot to flash the emmc (via dfu or whatever), for which PARTS_DEFAULT makes total sense.

But in all other cases, u-boot should really not force policy here necessarily and especially not do destructive changes without the user requisting/triggering it specifically.

Signature · 2 lines
Sjoerd Simons
Collabora Ltd.