Latest U-Boot broke boot from eMMC on ODROID-C2. Revert the offending device tree change to make the system boot again.
83 lines
2.4 KiB
Diff
83 lines
2.4 KiB
Diff
From 31e32295dc261032d7f5540a0b7f79a4f5a5b807 Mon Sep 17 00:00:00 2001
|
|
Message-Id: <31e32295dc261032d7f5540a0b7f79a4f5a5b807.1609421746.git.stefan@agner.ch>
|
|
In-Reply-To: <f9877c2895d6c05710a828d0cd46d9f25626b070.1609421746.git.stefan@agner.ch>
|
|
References: <f9877c2895d6c05710a828d0cd46d9f25626b070.1609421746.git.stefan@agner.ch>
|
|
From: Pascal Vizeli <pvizeli@syshack.ch>
|
|
Date: Tue, 4 Aug 2020 13:50:57 +0000
|
|
Subject: [PATCH 2/4] meson: Add board_rev to env
|
|
|
|
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
|
|
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
|
---
|
|
arch/arm/include/asm/arch-meson/boot.h | 4 ++++
|
|
arch/arm/mach-meson/board-info.c | 12 ++++++++++++
|
|
board/amlogic/odroid-n2/odroid-n2.c | 5 +++++
|
|
3 files changed, 21 insertions(+)
|
|
|
|
diff --git a/arch/arm/include/asm/arch-meson/boot.h b/arch/arm/include/asm/arch-meson/boot.h
|
|
index a90fe55081..c67d12d06c 100644
|
|
--- a/arch/arm/include/asm/arch-meson/boot.h
|
|
+++ b/arch/arm/include/asm/arch-meson/boot.h
|
|
@@ -7,6 +7,8 @@
|
|
#ifndef __MESON_BOOT_H__
|
|
#define __MESON_BOOT_H__
|
|
|
|
+#include <linux/types.h>
|
|
+
|
|
/* Boot device */
|
|
#define BOOT_DEVICE_RESERVED 0
|
|
#define BOOT_DEVICE_EMMC 1
|
|
@@ -17,4 +19,6 @@
|
|
|
|
int meson_get_boot_device(void);
|
|
|
|
+int meson_get_soc_rev(char *buff, size_t buff_len);
|
|
+
|
|
#endif /* __MESON_BOOT_H__ */
|
|
diff --git a/arch/arm/mach-meson/board-info.c b/arch/arm/mach-meson/board-info.c
|
|
index c585b12ca5..9dbb997281 100644
|
|
--- a/arch/arm/mach-meson/board-info.c
|
|
+++ b/arch/arm/mach-meson/board-info.c
|
|
@@ -182,3 +182,15 @@ int show_board_info(void)
|
|
|
|
return 0;
|
|
}
|
|
+
|
|
+int meson_get_soc_rev(char *buff, size_t buff_len)
|
|
+{
|
|
+ unsigned int socinfo;
|
|
+
|
|
+ socinfo = get_socinfo();
|
|
+ if (!socinfo)
|
|
+ return -1;
|
|
+
|
|
+ /* Write SoC info */
|
|
+ return snprintf(buff, buff_len, "%x", socinfo_to_minor(socinfo));
|
|
+}
|
|
diff --git a/board/amlogic/odroid-n2/odroid-n2.c b/board/amlogic/odroid-n2/odroid-n2.c
|
|
index caf7fd6810..c2a191ba6a 100644
|
|
--- a/board/amlogic/odroid-n2/odroid-n2.c
|
|
+++ b/board/amlogic/odroid-n2/odroid-n2.c
|
|
@@ -12,6 +12,7 @@
|
|
#include <asm/io.h>
|
|
#include <asm/arch/sm.h>
|
|
#include <asm/arch/eth.h>
|
|
+#include <asm/arch/boot.h>
|
|
|
|
#define EFUSE_MAC_OFFSET 20
|
|
#define EFUSE_MAC_SIZE 12
|
|
@@ -23,6 +24,10 @@ int misc_init_r(void)
|
|
char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
|
|
ssize_t len;
|
|
|
|
+ if (meson_get_soc_rev(tmp, sizeof(tmp)) > 0) {
|
|
+ env_set("board_rev", tmp);
|
|
+ }
|
|
+
|
|
meson_eth_init(PHY_INTERFACE_MODE_RGMII, 0);
|
|
|
|
if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
|
--
|
|
2.30.0
|
|
|