* [PATCH 1/5] phycore_imx8mp: Move environment from include/config to board
2024-03-11 13:03 [PATCH 0/5] Add RAUC boot logic for phycore_imx8mp Leonard Anderweit
@ 2024-03-11 13:03 ` Leonard Anderweit
2024-03-11 13:03 ` [PATCH 2/5] phycore_imx8mp: Move default bootcmd to board env Leonard Anderweit
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Leonard Anderweit @ 2024-03-11 13:03 UTC (permalink / raw)
To: trini, t.remmet, festevam; +Cc: u-boot, upstream
Move the environment into the board directory and convert it from a C
header to a text file. Sort the variables alphabetically.
No functional changes.
Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
---
.../phytec/phycore_imx8mp/phycore_imx8mp.env | 45 +++++++++++++++++++
include/configs/phycore_imx8mp.h | 43 ------------------
2 files changed, 45 insertions(+), 43 deletions(-)
create mode 100644 board/phytec/phycore_imx8mp/phycore_imx8mp.env
diff --git a/board/phytec/phycore_imx8mp/phycore_imx8mp.env b/board/phytec/phycore_imx8mp/phycore_imx8mp.env
new file mode 100644
index 000000000000..6d15b7f3dc9f
--- /dev/null
+++ b/board/phytec/phycore_imx8mp/phycore_imx8mp.env
@@ -0,0 +1,45 @@
+console=ttymxc0,115200
+dofastboot=0
+emmc_dev=2
+fastboot_raw_partition_all=0 4194304
+fastboot_raw_partition_bootloader=64 8128
+fdt_addr=0x48000000
+fdt_file=CONFIG_DEFAULT_FDT_FILE
+image=Image
+ip_dyn=yes
+loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
+loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
+mmcargs=
+ setenv bootargs console=${console}
+ root=/dev/mmcblk${mmcdev}p${mmcroot} rootwait rw
+mmcautodetect=yes
+mmcboot=
+ echo Booting from mmc ...;
+ run mmcargs;
+ if run loadfdt; then
+ booti ${loadaddr} - ${fdt_addr};
+ else
+ echo WARN: Cannot load the DT;
+ fi;
+mmcdev=CONFIG_SYS_MMC_ENV_DEV
+mmcpart=1
+mmcroot=2
+netargs=
+ setenv bootargs console=${console} root=/dev/nfs ip=dhcp
+ nfsroot=${serverip}:${nfsroot},v3,tcp
+netboot=
+ echo Booting from net ...;
+ run netargs;
+ if test ${ip_dyn} = yes; then
+ setenv get_cmd dhcp;
+ else
+ setenv get_cmd tftp;
+ fi;
+ ${get_cmd} ${loadaddr} ${image};
+ if ${get_cmd} ${fdt_addr} ${fdt_file}; then
+ booti ${loadaddr} - ${fdt_addr};
+ else
+ echo WARN: Cannot load the DT;
+ fi;
+nfsroot=/nfs
+sd_dev=1
diff --git a/include/configs/phycore_imx8mp.h b/include/configs/phycore_imx8mp.h
index 11a17be7fe1d..206c4d50d276 100644
--- a/include/configs/phycore_imx8mp.h
+++ b/include/configs/phycore_imx8mp.h
@@ -13,49 +13,6 @@
#define CFG_SYS_UBOOT_BASE \
(QSPI0_AMBA_BASE + CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512)
-#define CFG_EXTRA_ENV_SETTINGS \
- "image=Image\0" \
- "console=ttymxc0,115200\0" \
- "fdt_addr=0x48000000\0" \
- "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
- "ip_dyn=yes\0" \
- "dofastboot=0\0" \
- "fastboot_raw_partition_bootloader=64 8128\0" \
- "fastboot_raw_partition_all=0 4194304\0" \
- "emmc_dev=2\0" \
- "sd_dev=1\0" \
- "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
- "mmcpart=1\0" \
- "mmcroot=2\0" \
- "mmcautodetect=yes\0" \
- "mmcargs=setenv bootargs console=${console} " \
- "root=/dev/mmcblk${mmcdev}p${mmcroot} rootwait rw\0" \
- "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
- "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
- "mmcboot=echo Booting from mmc ...; " \
- "run mmcargs; " \
- "if run loadfdt; then " \
- "booti ${loadaddr} - ${fdt_addr}; " \
- "else " \
- "echo WARN: Cannot load the DT; " \
- "fi;\0 " \
- "nfsroot=/nfs\0" \
- "netargs=setenv bootargs console=${console} root=/dev/nfs ip=dhcp " \
- "nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
- "netboot=echo Booting from net ...; " \
- "run netargs; " \
- "if test ${ip_dyn} = yes; then " \
- "setenv get_cmd dhcp; " \
- "else " \
- "setenv get_cmd tftp; " \
- "fi; " \
- "${get_cmd} ${loadaddr} ${image}; " \
- "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
- "booti ${loadaddr} - ${fdt_addr}; " \
- "else " \
- "echo WARN: Cannot load the DT; " \
- "fi;\0" \
-
/* Link Definitions */
#define CFG_SYS_INIT_RAM_ADDR 0x40000000
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 2/5] phycore_imx8mp: Move default bootcmd to board env
2024-03-11 13:03 [PATCH 0/5] Add RAUC boot logic for phycore_imx8mp Leonard Anderweit
2024-03-11 13:03 ` [PATCH 1/5] phycore_imx8mp: Move environment from include/config to board Leonard Anderweit
@ 2024-03-11 13:03 ` Leonard Anderweit
2024-03-11 13:03 ` [PATCH 3/5] configs: phycore-imx8mp_defconfig: Use redundant environment Leonard Anderweit
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Leonard Anderweit @ 2024-03-11 13:03 UTC (permalink / raw)
To: trini, t.remmet, festevam; +Cc: u-boot, upstream
Move the default bootcmd from the defconfig to the board environment.
No change in functionality.
Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
---
board/phytec/phycore_imx8mp/phycore_imx8mp.env | 12 ++++++++++++
configs/phycore-imx8mp_defconfig | 2 --
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/board/phytec/phycore_imx8mp/phycore_imx8mp.env b/board/phytec/phycore_imx8mp/phycore_imx8mp.env
index 6d15b7f3dc9f..73202c3b129a 100644
--- a/board/phytec/phycore_imx8mp/phycore_imx8mp.env
+++ b/board/phytec/phycore_imx8mp/phycore_imx8mp.env
@@ -1,3 +1,15 @@
+bootcmd=
+ if test ${dofastboot} = 1; then
+ fastboot 0;
+ fi;
+ mmc dev ${mmcdev};
+ if mmc rescan; then
+ if run loadimage; then
+ run mmcboot;
+ else
+ run netboot;
+ fi;
+ fi;
console=ttymxc0,115200
dofastboot=0
emmc_dev=2
diff --git a/configs/phycore-imx8mp_defconfig b/configs/phycore-imx8mp_defconfig
index b3a7bbd79bb6..fd492eba3c10 100644
--- a/configs/phycore-imx8mp_defconfig
+++ b/configs/phycore-imx8mp_defconfig
@@ -25,8 +25,6 @@ CONFIG_FIT=y
CONFIG_FIT_EXTERNAL_OFFSET=0x3000
CONFIG_SPL_LOAD_FIT=y
CONFIG_OF_SYSTEM_SETUP=y
-CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="if test ${dofastboot} = 1; then fastboot 0; fi; mmc dev ${mmcdev}; if mmc rescan; then if run loadimage; then run mmcboot; else run netboot; fi; fi;"
CONFIG_DEFAULT_FDT_FILE="oftree"
CONFIG_SYS_CBSIZE=2048
CONFIG_SYS_PBSIZE=2074
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 3/5] configs: phycore-imx8mp_defconfig: Use redundant environment
2024-03-11 13:03 [PATCH 0/5] Add RAUC boot logic for phycore_imx8mp Leonard Anderweit
2024-03-11 13:03 ` [PATCH 1/5] phycore_imx8mp: Move environment from include/config to board Leonard Anderweit
2024-03-11 13:03 ` [PATCH 2/5] phycore_imx8mp: Move default bootcmd to board env Leonard Anderweit
@ 2024-03-11 13:03 ` Leonard Anderweit
2024-03-11 14:05 ` Fabio Estevam
2024-03-11 13:03 ` [PATCH 4/5] include: env: Add phytec RAUC boot logic Leonard Anderweit
2024-03-11 13:04 ` [PATCH 5/5] board: phytec: phycore_imx8mp: Add RAUC boot logic to environment Leonard Anderweit
4 siblings, 1 reply; 9+ messages in thread
From: Leonard Anderweit @ 2024-03-11 13:03 UTC (permalink / raw)
To: trini, t.remmet, festevam; +Cc: u-boot, upstream
Add support for the redundant environment.
Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
---
configs/phycore-imx8mp_defconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/configs/phycore-imx8mp_defconfig b/configs/phycore-imx8mp_defconfig
index fd492eba3c10..6c67f14b5559 100644
--- a/configs/phycore-imx8mp_defconfig
+++ b/configs/phycore-imx8mp_defconfig
@@ -19,6 +19,7 @@ CONFIG_SPL_SERIAL=y
CONFIG_SPL_DRIVERS_MISC=y
CONFIG_SPL_STACK=0x960000
CONFIG_SPL=y
+CONFIG_ENV_OFFSET_REDUND=0x3e0000
CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x48000000
CONFIG_SYS_LOAD_ADDR=0x40480000
CONFIG_FIT=y
@@ -77,6 +78,7 @@ CONFIG_OF_CONTROL=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_ENV_OVERWRITE=y
CONFIG_ENV_IS_IN_MMC=y
+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SYS_MMC_ENV_DEV=2
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 3/5] configs: phycore-imx8mp_defconfig: Use redundant environment
2024-03-11 13:03 ` [PATCH 3/5] configs: phycore-imx8mp_defconfig: Use redundant environment Leonard Anderweit
@ 2024-03-11 14:05 ` Fabio Estevam
2024-03-11 14:32 ` Leonard Anderweit
0 siblings, 1 reply; 9+ messages in thread
From: Fabio Estevam @ 2024-03-11 14:05 UTC (permalink / raw)
To: Leonard Anderweit; +Cc: trini, t.remmet, u-boot, upstream
Hi Leonard,
On Mon, Mar 11, 2024 at 10:04 AM Leonard Anderweit
<l.anderweit@phytec.de> wrote:
>
> Add support for the redundant environment.
>
> Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
Please rebase this series against U-Boot next branch and resend.
There is an error while applying this patch against next.
Thanks
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/5] configs: phycore-imx8mp_defconfig: Use redundant environment
2024-03-11 14:05 ` Fabio Estevam
@ 2024-03-11 14:32 ` Leonard Anderweit
2024-03-11 15:35 ` Fabio Estevam
0 siblings, 1 reply; 9+ messages in thread
From: Leonard Anderweit @ 2024-03-11 14:32 UTC (permalink / raw)
To: festevam@gmail.com
Cc: upstream@lists.phytec.de, trini@konsulko.com,
u-boot@lists.denx.de, Teresa Remmet
Hi Fabio,
Am Montag, dem 11.03.2024 um 11:05 -0300 schrieb Fabio Estevam:
> Hi Leonard,
>
> On Mon, Mar 11, 2024 at 10:04 AM Leonard Anderweit
> <l.anderweit@phytec.de> wrote:
> >
> > Add support for the redundant environment.
> >
> > Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
>
> Please rebase this series against U-Boot next branch and resend.
This series is based on the latest master branch.
>
> There is an error while applying this patch against next.
I also got an error while applying this to next. To apply cleanly this
series requires the commit 19f657600781 (configs: Resync with
savedefconfig) which is on master but not on next.
If this missing commit is intended I'll resend this series based on
next.
Regards,
Leonard
>
> Thanks
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/5] configs: phycore-imx8mp_defconfig: Use redundant environment
2024-03-11 14:32 ` Leonard Anderweit
@ 2024-03-11 15:35 ` Fabio Estevam
0 siblings, 0 replies; 9+ messages in thread
From: Fabio Estevam @ 2024-03-11 15:35 UTC (permalink / raw)
To: Leonard Anderweit
Cc: upstream@lists.phytec.de, trini@konsulko.com,
u-boot@lists.denx.de, Teresa Remmet
Hi Leonard,
On Mon, Mar 11, 2024 at 11:32 AM Leonard Anderweit
<L.Anderweit@phytec.de> wrote:
> I also got an error while applying this to next. To apply cleanly this
> series requires the commit 19f657600781 (configs: Resync with
> savedefconfig) which is on master but not on next.
>
> If this missing commit is intended I'll resend this series based on
> next.
At this point, the master branch is open only for bug fixes.
This series is targeted at the next branch, so please send a v2 based
on next and I will apply it.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 4/5] include: env: Add phytec RAUC boot logic
2024-03-11 13:03 [PATCH 0/5] Add RAUC boot logic for phycore_imx8mp Leonard Anderweit
` (2 preceding siblings ...)
2024-03-11 13:03 ` [PATCH 3/5] configs: phycore-imx8mp_defconfig: Use redundant environment Leonard Anderweit
@ 2024-03-11 13:03 ` Leonard Anderweit
2024-03-11 13:04 ` [PATCH 5/5] board: phytec: phycore_imx8mp: Add RAUC boot logic to environment Leonard Anderweit
4 siblings, 0 replies; 9+ messages in thread
From: Leonard Anderweit @ 2024-03-11 13:03 UTC (permalink / raw)
To: trini, t.remmet, festevam; +Cc: u-boot, upstream
Add logic for booting systems with the RAUC update mechanism. This can
be reused by other phytec boards.
Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
---
include/env/phytec/rauc.env | 52 +++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
create mode 100644 include/env/phytec/rauc.env
diff --git a/include/env/phytec/rauc.env b/include/env/phytec/rauc.env
new file mode 100644
index 000000000000..89e17ff70ec6
--- /dev/null
+++ b/include/env/phytec/rauc.env
@@ -0,0 +1,52 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+
+/* Logic to select a boot partition based on environment variables and switch
+ * to the other if the boot fails. */
+
+doraucboot=0
+
+raucbootpart0=1
+raucrootpart0=5
+raucbootpart1=2
+raucrootpart1=6
+
+raucinit=
+ echo Booting RAUC A/B system;
+ test -n "${BOOT_ORDER}" || env set BOOT_ORDER "system0 system1";
+ test -n "${BOOT_system0_LEFT}" || env set BOOT_system0_LEFT 3;
+ test -n "${BOOT_system1_LEFT}" || env set BOOT_system1_LEFT 3;
+ env set raucstatus;
+ for BOOT_SLOT in "${BOOT_ORDER}"; do
+ if test "x${raucstatus}" != "x"; then
+ echo Skipping remaing slots!;
+ elif test "x${BOOT_SLOT}" = "xsystem0"; then
+ if test ${BOOT_system0_LEFT} -gt 0; then
+ echo Found valid slot A, ${BOOT_system0_LEFT} attempts remaining;
+ setexpr BOOT_system0_LEFT ${BOOT_system0_LEFT} - 1;
+ env set mmcpart ${raucbootpart0};
+ env set mmcroot ${raucrootpart0};
+ env set raucargs rauc.slot=system0;
+ env set raucstatus success;
+ fi;
+ elif test "x${BOOT_SLOT}" = "xsystem1"; then
+ if test ${BOOT_system1_LEFT} -gt 0; then
+ echo Found valid slot B, ${BOOT_system1_LEFT} attempts remaining;
+ setexpr BOOT_system1_LEFT ${BOOT_system1_LEFT} - 1;
+ env set mmcpart ${raucbootpart1};
+ env set mmcroot ${raucrootpart1};
+ env set raucargs rauc.slot=system1;
+ env set raucstatus success;
+ fi;
+ fi;
+ done;
+ if test -n "${raucstatus}"; then
+ env delete raucstatus;
+ env save;
+ else
+ echo WARN: No valid slot found;
+ env set BOOT_system0_LEFT 3;
+ env set BOOT_system1_LEFT 3;
+ env delete raucstatus;
+ env save;
+ reset;
+ fi;
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 5/5] board: phytec: phycore_imx8mp: Add RAUC boot logic to environment
2024-03-11 13:03 [PATCH 0/5] Add RAUC boot logic for phycore_imx8mp Leonard Anderweit
` (3 preceding siblings ...)
2024-03-11 13:03 ` [PATCH 4/5] include: env: Add phytec RAUC boot logic Leonard Anderweit
@ 2024-03-11 13:04 ` Leonard Anderweit
4 siblings, 0 replies; 9+ messages in thread
From: Leonard Anderweit @ 2024-03-11 13:04 UTC (permalink / raw)
To: trini, t.remmet, festevam; +Cc: u-boot, upstream
Add RAUC boot logic to the environment. This is the first board to
utilize this environment.
Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
---
board/phytec/phycore_imx8mp/phycore_imx8mp.env | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/board/phytec/phycore_imx8mp/phycore_imx8mp.env b/board/phytec/phycore_imx8mp/phycore_imx8mp.env
index 73202c3b129a..d58d25476f6b 100644
--- a/board/phytec/phycore_imx8mp/phycore_imx8mp.env
+++ b/board/phytec/phycore_imx8mp/phycore_imx8mp.env
@@ -1,9 +1,14 @@
+#include <env/phytec/rauc.env>
+
bootcmd=
if test ${dofastboot} = 1; then
fastboot 0;
fi;
mmc dev ${mmcdev};
if mmc rescan; then
+ if test ${doraucboot} = 1; then
+ run raucinit;
+ fi;
if run loadimage; then
run mmcboot;
else
@@ -23,7 +28,7 @@ loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
mmcargs=
setenv bootargs console=${console}
- root=/dev/mmcblk${mmcdev}p${mmcroot} rootwait rw
+ root=/dev/mmcblk${mmcdev}p${mmcroot} ${raucargs} rootwait rw
mmcautodetect=yes
mmcboot=
echo Booting from mmc ...;
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread