Uboot bootstate (#215)

* Uboot: cleaning up bootstate env import/export.

* Tinker: Add potential eMMC boot support.
This commit is contained in:
Ryan Bray
2018-10-26 02:36:29 -07:00
committed by Pascal Vizeli
parent 2291e8599e
commit 960e11dc4f
8 changed files with 63 additions and 79 deletions

View File

@@ -1,29 +0,0 @@
From 8458beb24f2540fff3c3faed4fa068553b9e474e Mon Sep 17 00:00:00 2001
From: Pascal Vizeli <pvizeli@syshack.ch>
Date: Wed, 8 Aug 2018 09:45:07 +0000
Subject: [PATCH 1/1] Support HassOS bootstate partition
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
---
env/mmc.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/env/mmc.c b/env/mmc.c
index 5e3da6dca75..353f58a12c9 100644
--- a/env/mmc.c
+++ b/env/mmc.c
@@ -18,6 +18,11 @@
#include <search.h>
#include <errno.h>
+#undef CONFIG_SYS_MMC_ENV_DEV
+#define CONFIG_SYS_MMC_ENV_DEV 0
+#undef CONFIG_ENV_OFFSET
+#define CONFIG_ENV_OFFSET 0x25100000
+
#define __STR(X) #X
#define STR(X) __STR(X)
--
2.17.1

View File

@@ -1,3 +1,17 @@
part start mmc ${devnum} 6 mmc_env
mmc dev ${devnum}
setenv loadbootstate " \
echo 'loading env...'; \
mmc read ${ramdisk_addr_r} ${mmc_env} 0x20; \
env import -c ${ramdisk_addr_r} 0x4000;"
setenv storebootstate " \
echo 'storing env...'; \
env export -c -s 0x4000 ${ramdisk_addr_r} BOOT_ORDER BOOT_A_LEFT BOOT_B_LEFT; \
mmc write ${ramdisk_addr_r} ${mmc_env} 0x20;"
run loadbootstate
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
@@ -38,12 +52,12 @@ done
setenv fdt_addr
if test -n "${bootargs}"; then
saveenv
run storebootstate
else
echo "No valid slot found, resetting tries to 3"
setenv BOOT_A_LEFT 3
setenv BOOT_B_LEFT 3
saveenv
run storebootstate
reset
fi

View File

@@ -1,3 +1,17 @@
part start mmc ${devnum} 6 mmc_env
mmc dev ${devnum}
setenv loadbootstate " \
echo 'loading env...'; \
mmc read ${ramdisk_addr_r} ${mmc_env} 0x20; \
env import -c ${ramdisk_addr_r} 0x4000;"
setenv storebootstate " \
echo 'storing env...'; \
env export -c -s 0x4000 ${ramdisk_addr_r} BOOT_ORDER BOOT_A_LEFT BOOT_B_LEFT; \
mmc write ${ramdisk_addr_r} ${mmc_env} 0x20;"
run loadbootstate
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
@@ -38,12 +52,12 @@ done
setenv fdt_addr
if test -n "${bootargs}"; then
saveenv
run storebootstate
else
echo "No valid slot found, resetting tries to 3"
setenv BOOT_A_LEFT 3
setenv BOOT_B_LEFT 3
saveenv
run storebootstate
reset
fi

View File

@@ -1,3 +1,4 @@
# CONFIG_USB_STORAGE is not set
# CONFIG_DOS_PARTITION is not set
CONFIG_ENV_IS_IN_MMC=y
CONFIG_CMD_FILEENV=y
CONFIG_ENV_IS_NOWHERE=Y