rockchip: set scan_dev_for_boot_part env for rockchip SoC
Subsystems (3)
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
@@ -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
@@ -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
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_partSigned-off-by Eddie Cai <[email protected]>--- 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.carch/arm/mach-rockchip/rk3036-board.c +19
-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; " +"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@@ -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@@ -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
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_partSigned-off-by Eddie Cai <[email protected]>--- 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.cQuoted 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 theoriginal 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} -bootabledevplist; "
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.cQuoted 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 theoriginal 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} -bootabledevplist; "
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.cQuoted 25 lines
new file mode 100644
index 0000000..3777643arch/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 theoriginal 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} -bootabledevplist; "
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
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_partQuoted 6 lines
Signed-off-by Eddie Cai <[email protected]>--- 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.carch/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 theoriginal 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} -bootabledevplist; "
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.carch/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 theoriginal 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} -bootabledevplist; "
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.cQuoted 21 lines
new file mode 100644
index 0000000..3777643arch/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 theoriginal 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} -bootabledevplist; "
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_partfail 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
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_partSigned-off-by Eddie Cai <[email protected]>--- 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.carch/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 +4
-0+"if env exists test; then " +"echo Found valid partition table; " +"else " + "echo No valid partition table, write theoriginal partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "arch/arm/mach-rockchip/rk3036-board.c +3
-0+"mmc rescan;" +"fi;" + "part list ${devtype} ${devnum} -bootabledevplist; "
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@@ -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 theoriginal partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "arch/arm/mach-rockchip/rk3288-board.c +3
-0+"mmc rescan;" +"fi;" + "part list ${devtype} ${devnum} -bootabledevplist; "
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@@ -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 theoriginal 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} -bootabledevplist; "
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_partfail to find a valid oneTo 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_partwill 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
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_partSigned-off-by Eddie Cai <[email protected]>--- 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.cQuoted 12 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
arch/arm/mach-rockchip/rk3036-board.c +0
-1--- a/arch/arm/mach-rockchip/rk3036-board.cQuoted 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.carch/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} -bootabletest;
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 theoriginal partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "arch/arm/mach-rockchip/rk3036-board.c +3
-0+"mmc rescan;" +"fi;" + "part list ${devtype} ${devnum} -bootabledevplist; "
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--- a/arch/arm/mach-rockchip/rk3288-board.cQuoted 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.carch/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} -bootabletest;
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 theoriginal partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "arch/arm/mach-rockchip/rk3288-board.c +3
-0+"mmc rescan;" +"fi;" + "part list ${devtype} ${devnum} -bootabledevplist; "
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@@ -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} -bootabletest;
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 theoriginal 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} -bootabledevplist; "
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_partfail to find a validone
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_partwill
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
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_partSigned-off-by Eddie Cai <[email protected]>--- 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.cQuoted 12 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
arch/arm/mach-rockchip/rk3036-board.c +0
-1--- a/arch/arm/mach-rockchip/rk3036-board.cQuoted 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.carch/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} -bootabletest;
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 theoriginal partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "arch/arm/mach-rockchip/rk3036-board.c +3
-0+"mmc rescan;" +"fi;" + "part list ${devtype} ${devnum} -bootabledevplist; "
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--- a/arch/arm/mach-rockchip/rk3288-board.cQuoted 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.carch/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} -bootabletest;
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 theoriginal partition table; "
+ "gpt write ${devtype} ${devnum}
${partitions}; "arch/arm/mach-rockchip/rk3288-board.c +3
-0+"mmc rescan;" +"fi;" + "part list ${devtype} ${devnum} -bootabledevplist; "
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@@ -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} -bootabletest;
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 theoriginal 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} -bootabledevplist; "
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_partfail to find a validone
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_partwill
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
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.
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.
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_DEFAULTinrockchip-common.h. All rockchip SoC based board
include this file.
#definePARTS_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.