mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
u-boot: update Amlogic patches for 2025.01
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
This commit is contained in:
parent
064699b940
commit
31071a83cd
@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="u-boot"
|
||||
PKG_VERSION="2024.10"
|
||||
PKG_SHA256="b28daf4ac17e43156363078bf510297584137f6df50fced9b12df34f61a92fb0"
|
||||
PKG_VERSION="2025.01"
|
||||
PKG_SHA256="cdef7d507c93f1bbd9f015ea9bc21fa074268481405501945abc6f854d5b686f"
|
||||
PKG_ARCH="arm aarch64"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://www.denx.de/wiki/U-Boot"
|
||||
|
@ -1,49 +0,0 @@
|
||||
From 868c1409d2ec75b3d5b6c04eeac0ea3127893b66 Mon Sep 17 00:00:00 2001
|
||||
From: Rudi Heitbaum <rudi@heitbaum.com>
|
||||
Date: Sat, 26 Oct 2024 12:27:19 +0000
|
||||
Subject: [PATCH] libfdt: Fix build with swig 4.3.0
|
||||
|
||||
Call SWIG_AppendOutput instead of SWIG_Python_AppendOutput so that
|
||||
is_void is handled within swig.
|
||||
|
||||
Link: https://github.com/swig/swig/commit/cd39cf132c96a0887be07c826b80804d7677a701
|
||||
|
||||
Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
|
||||
---
|
||||
scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped
|
||||
index 56cc5d48f4..e4659489a9 100644
|
||||
--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
|
||||
+++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
|
||||
@@ -1037,7 +1037,7 @@ typedef uint32_t fdt32_t;
|
||||
fdt_string(fdt1, fdt32_to_cpu($1->nameoff)));
|
||||
buff = PyByteArray_FromStringAndSize(
|
||||
(const char *)($1 + 1), fdt32_to_cpu($1->len));
|
||||
- resultobj = SWIG_Python_AppendOutput(resultobj, buff);
|
||||
+ resultobj = SWIG_AppendOutput(resultobj, buff);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1076,7 +1076,7 @@ typedef uint32_t fdt32_t;
|
||||
|
||||
%typemap(argout) int *depth {
|
||||
PyObject *val = Py_BuildValue("i", *arg$argnum);
|
||||
- resultobj = SWIG_Python_AppendOutput(resultobj, val);
|
||||
+ resultobj = SWIG_AppendOutput(resultobj, val);
|
||||
}
|
||||
|
||||
%apply int *depth { int *depth };
|
||||
@@ -1092,7 +1092,7 @@ typedef uint32_t fdt32_t;
|
||||
if (PyTuple_GET_SIZE(resultobj) == 0)
|
||||
resultobj = val;
|
||||
else
|
||||
- resultobj = SWIG_Python_AppendOutput(resultobj, val);
|
||||
+ resultobj = SWIG_AppendOutput(resultobj, val);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.43.0
|
||||
|
@ -50,7 +50,7 @@ mkimage_extlinux_fdtdir(){
|
||||
cat << EOF > "${LE_TMP}/extlinux/extlinux.conf"
|
||||
LABEL ${DISTRO}
|
||||
LINUX /${KERNEL_NAME}
|
||||
FDTDIR /amlogic/
|
||||
FDTDIR /
|
||||
APPEND boot=LABEL=${DISTRO_BOOTLABEL} disk=LABEL=${DISTRO_DISKLABEL} quiet ${EXTRA_CMDLINE}
|
||||
EOF
|
||||
mcopy -s -o "${LE_TMP}/extlinux" ::
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 3f8ffb82b65019d9ee227f15e6a1b8cc7552e448 Mon Sep 17 00:00:00 2001
|
||||
From 78eead46137ff5583414211fae5c983026310dda Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Fri, 13 Nov 2020 02:09:36 +0000
|
||||
Subject: [PATCH 01/12] LOCAL: configs: meson64: prevent stdout/stderr on
|
||||
Subject: [PATCH 1/2] LOCAL: configs: meson64: prevent stdout/stderr on
|
||||
videoconsole
|
||||
|
||||
Several devices have CONFIG_VIDEO enabled which causes stdout/stderr
|
||||
@ -14,7 +14,7 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/configs/meson64.h b/include/configs/meson64.h
|
||||
index ccb8ea2e716..8b6f8159e78 100644
|
||||
index f3275b37a51..72d3caa30be 100644
|
||||
--- a/include/configs/meson64.h
|
||||
+++ b/include/configs/meson64.h
|
||||
@@ -28,7 +28,7 @@
|
||||
|
@ -1,29 +0,0 @@
|
||||
From 5270aa7c201493773266854466708a8ffd1f0d74 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Tue, 3 Aug 2021 18:42:55 +0000
|
||||
Subject: [PATCH 02/12] LOCAL: board: amlogic: odroid-n2: remove /amlogic/
|
||||
prefix for dtb path
|
||||
|
||||
Remove the /amlogic/ prefix to align with current LE dtb locations.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
board/amlogic/odroid-n2/odroid-n2.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/board/amlogic/odroid-n2/odroid-n2.c b/board/amlogic/odroid-n2/odroid-n2.c
|
||||
index ae953d0e4ba..e98580631ec 100644
|
||||
--- a/board/amlogic/odroid-n2/odroid-n2.c
|
||||
+++ b/board/amlogic/odroid-n2/odroid-n2.c
|
||||
@@ -62,7 +62,7 @@ static void odroid_set_fdtfile(char *soc, char *variant)
|
||||
{
|
||||
char s[128];
|
||||
|
||||
- snprintf(s, sizeof(s), "amlogic/meson-%s-odroid-%s.dtb", soc, variant);
|
||||
+ snprintf(s, sizeof(s), "meson-%s-odroid-%s.dtb", soc, variant);
|
||||
env_set("fdtfile", s);
|
||||
}
|
||||
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ea0cd07c6f4628f2ad5d283a3a634f0691e99ff7 Mon Sep 17 00:00:00 2001
|
||||
From 5778cfc64913abc8c80160bb709ec359362fc8ac Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Tue, 8 Oct 2024 06:48:13 +0000
|
||||
Subject: [PATCH 12/12] TESTING: test uart_ao_a_pins bias disable on Odroid C2
|
||||
Subject: [PATCH 2/2] TESTING: test uart_ao_a_pins bias disable on Odroid C2
|
||||
and WeTek Hub
|
||||
|
||||
This appears to resolve the reports of non-booting C2 boards. No feedback
|
@ -1,136 +0,0 @@
|
||||
From 17b878fcccac17b59a8abfd7a72f36723bb3fd77 Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
Date: Tue, 17 Sep 2024 14:34:45 +0200
|
||||
Subject: [PATCH 03/12] FROMGIT: board: libretech-ac: move board support into
|
||||
dedicated directory
|
||||
|
||||
The libretech-ac aka aml-s805x-ac supports mainline U-boot
|
||||
from a dedicated SPI flash, move the board support into
|
||||
a dedicated vendor/board subdirectory in order to support
|
||||
vendor specific customization.
|
||||
|
||||
It also aligns with the vendor downstream changes.
|
||||
|
||||
Link: https://lore.kernel.org/r/20240917-u-boot-topic-dynamic-uuid-v2-1-416e39c6e271@linaro.org
|
||||
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
---
|
||||
board/amlogic/p212/MAINTAINERS | 2 -
|
||||
board/libre-computer/aml-s805x-ac/MAINTAINERS | 8 ++++
|
||||
board/libre-computer/aml-s805x-ac/Makefile | 6 +++
|
||||
.../aml-s805x-ac/aml-s805x-ac.c | 47 +++++++++++++++++++
|
||||
configs/libretech-ac_defconfig | 2 +
|
||||
5 files changed, 63 insertions(+), 2 deletions(-)
|
||||
create mode 100644 board/libre-computer/aml-s805x-ac/MAINTAINERS
|
||||
create mode 100644 board/libre-computer/aml-s805x-ac/Makefile
|
||||
create mode 100644 board/libre-computer/aml-s805x-ac/aml-s805x-ac.c
|
||||
|
||||
diff --git a/board/amlogic/p212/MAINTAINERS b/board/amlogic/p212/MAINTAINERS
|
||||
index b2e3205fdf0..e73a4e52c1f 100644
|
||||
--- a/board/amlogic/p212/MAINTAINERS
|
||||
+++ b/board/amlogic/p212/MAINTAINERS
|
||||
@@ -5,11 +5,9 @@ L: u-boot-amlogic@groups.io
|
||||
F: board/amlogic/p212/
|
||||
F: include/configs/p212.h
|
||||
F: configs/khadas-vim_defconfig
|
||||
-F: configs/libretech-ac_defconfig
|
||||
F: configs/libretech-cc_defconfig
|
||||
F: configs/libretech-cc_v2_defconfig
|
||||
F: configs/p212_defconfig
|
||||
F: doc/board/amlogic/p212.rst
|
||||
-F: doc/board/amlogic/libretech-ac.rst
|
||||
F: doc/board/amlogic/libretech-cc.rst
|
||||
F: doc/board/amlogic/khadas-vim.rst
|
||||
diff --git a/board/libre-computer/aml-s805x-ac/MAINTAINERS b/board/libre-computer/aml-s805x-ac/MAINTAINERS
|
||||
new file mode 100644
|
||||
index 00000000000..7cbc08aeb6c
|
||||
--- /dev/null
|
||||
+++ b/board/libre-computer/aml-s805x-ac/MAINTAINERS
|
||||
@@ -0,0 +1,8 @@
|
||||
+LIBRE-COMPUTER AML-S805X-AC
|
||||
+M: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
+S: Maintained
|
||||
+L: u-boot-amlogic@groups.io
|
||||
+F: board/amlogic/aml-s805x-ac/
|
||||
+F: include/configs/libretech-ac.h
|
||||
+F: configs/libretech-ac_defconfig
|
||||
+F: doc/board/amlogic/libretech-ac.rst
|
||||
diff --git a/board/libre-computer/aml-s805x-ac/Makefile b/board/libre-computer/aml-s805x-ac/Makefile
|
||||
new file mode 100644
|
||||
index 00000000000..b4367ea522b
|
||||
--- /dev/null
|
||||
+++ b/board/libre-computer/aml-s805x-ac/Makefile
|
||||
@@ -0,0 +1,6 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0+
|
||||
+#
|
||||
+# (C) Copyright 2016 BayLibre, SAS
|
||||
+# Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
+
|
||||
+obj-y := aml-s805x-ac.o
|
||||
diff --git a/board/libre-computer/aml-s805x-ac/aml-s805x-ac.c b/board/libre-computer/aml-s805x-ac/aml-s805x-ac.c
|
||||
new file mode 100644
|
||||
index 00000000000..ae9834c0bf8
|
||||
--- /dev/null
|
||||
+++ b/board/libre-computer/aml-s805x-ac/aml-s805x-ac.c
|
||||
@@ -0,0 +1,47 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0+
|
||||
+/*
|
||||
+ * Copyright (C) 2016 BayLibre, SAS
|
||||
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
+ */
|
||||
+
|
||||
+#include <dm.h>
|
||||
+#include <env.h>
|
||||
+#include <init.h>
|
||||
+#include <net.h>
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/arch/gx.h>
|
||||
+#include <asm/arch/sm.h>
|
||||
+#include <asm/arch/eth.h>
|
||||
+#include <asm/arch/mem.h>
|
||||
+
|
||||
+#define EFUSE_SN_OFFSET 20
|
||||
+#define EFUSE_SN_SIZE 16
|
||||
+#define EFUSE_MAC_OFFSET 52
|
||||
+#define EFUSE_MAC_SIZE 6
|
||||
+
|
||||
+int misc_init_r(void)
|
||||
+{
|
||||
+ u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||
+ char serial[EFUSE_SN_SIZE + 1];
|
||||
+ ssize_t len;
|
||||
+
|
||||
+ if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
|
||||
+ len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
|
||||
+ mac_addr, EFUSE_MAC_SIZE);
|
||||
+ mac_addr[len] = '\0';
|
||||
+ if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr))
|
||||
+ eth_env_set_enetaddr("ethaddr", mac_addr);
|
||||
+ else
|
||||
+ meson_generate_serial_ethaddr();
|
||||
+ }
|
||||
+
|
||||
+ if (!env_get("serial#")) {
|
||||
+ len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial,
|
||||
+ EFUSE_SN_SIZE);
|
||||
+ serial[len] = '\0';
|
||||
+ if (len == EFUSE_SN_SIZE)
|
||||
+ env_set("serial#", serial);
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/configs/libretech-ac_defconfig b/configs/libretech-ac_defconfig
|
||||
index 6ad04570022..11d9795e05d 100644
|
||||
--- a/configs/libretech-ac_defconfig
|
||||
+++ b/configs/libretech-ac_defconfig
|
||||
@@ -1,5 +1,7 @@
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_CONFIG_NAME="libretech-ac"
|
||||
+CONFIG_SYS_VENDOR="libre-computer"
|
||||
+CONFIG_SYS_BOARD="aml-s805x-ac"
|
||||
CONFIG_ARCH_MESON=y
|
||||
CONFIG_TEXT_BASE=0x01000000
|
||||
CONFIG_NR_DRAM_BANKS=1
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,123 +0,0 @@
|
||||
From 766b23d9252d70c2e193876c7cc8b5cca954cba7 Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
Date: Tue, 17 Sep 2024 14:34:46 +0200
|
||||
Subject: [PATCH 04/12] FROMGIT: board: libre-computer: aml-s805x-cc: Enable
|
||||
capsule updates
|
||||
|
||||
Since the aml-s805-cc works well using EFI, and now the capsule updates
|
||||
backend has been merged, let's enable the missing configs and add
|
||||
the required structures to support it.
|
||||
|
||||
The GUID is dynamically generated for the board, to get it:
|
||||
=> efidebug capsule esrt
|
||||
========================================
|
||||
ESRT: fw_resource_count=1
|
||||
ESRT: fw_resource_count_max=1
|
||||
ESRT: fw_resource_version=1
|
||||
[entry 0]==============================
|
||||
ESRT: fw_class=B8079027-9B2C-57D4-86AA-CC782ADA598C
|
||||
ESRT: fw_type=unknown
|
||||
ESRT: fw_version=0
|
||||
ESRT: lowest_supported_fw_version=0
|
||||
ESRT: capsule_flags=0
|
||||
ESRT: last_attempt_version=0
|
||||
ESRT: last_attempt_status=success
|
||||
========================================
|
||||
|
||||
On the host (with the aml_encrypt_gxl result binary):
|
||||
$ eficapsule --guid B8079027-9B2C-57D4-86AA-CC782ADA598C -i 1 u-boot.bin u-boot.cap
|
||||
|
||||
On the board (from USB disk containing u-boot.cap at root):
|
||||
=> load usb 0:1 $kernel_addr_r u-boot.cap
|
||||
=> efidebug capsule update $kernel_addr_r
|
||||
|
||||
The binary will then be flashed on the SPI.
|
||||
|
||||
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
|
||||
Link: https://lore.kernel.org/r/20240917-u-boot-topic-dynamic-uuid-v2-2-416e39c6e271@linaro.org
|
||||
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
---
|
||||
.../aml-s805x-ac/aml-s805x-ac.c | 24 +++++++++++++++++++
|
||||
configs/libretech-ac_defconfig | 6 +++++
|
||||
2 files changed, 30 insertions(+)
|
||||
|
||||
diff --git a/board/libre-computer/aml-s805x-ac/aml-s805x-ac.c b/board/libre-computer/aml-s805x-ac/aml-s805x-ac.c
|
||||
index ae9834c0bf8..94cf5b4361f 100644
|
||||
--- a/board/libre-computer/aml-s805x-ac/aml-s805x-ac.c
|
||||
+++ b/board/libre-computer/aml-s805x-ac/aml-s805x-ac.c
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <env.h>
|
||||
#include <init.h>
|
||||
#include <net.h>
|
||||
+#include <efi_loader.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/gx.h>
|
||||
#include <asm/arch/sm.h>
|
||||
@@ -19,6 +20,29 @@
|
||||
#define EFUSE_MAC_OFFSET 52
|
||||
#define EFUSE_MAC_SIZE 6
|
||||
|
||||
+struct efi_fw_image fw_images[] = {
|
||||
+ {
|
||||
+ .fw_name = u"AML_S805X_AC_BOOT",
|
||||
+ .image_index = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+struct efi_capsule_update_info update_info = {
|
||||
+ .dfu_string = "sf 0:0=u-boot-bin raw 0 0x10000",
|
||||
+ .num_images = ARRAY_SIZE(fw_images),
|
||||
+ .images = fw_images,
|
||||
+};
|
||||
+
|
||||
+#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
|
||||
+void set_dfu_alt_info(char *interface, char *devstr)
|
||||
+{
|
||||
+ if (strcmp(interface, "ram") == 0)
|
||||
+ env_set("dfu_alt_info", "fitimage ram 0x08080000 0x4000000");
|
||||
+ else if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
|
||||
+ env_set("dfu_alt_info", update_info.dfu_string);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
int misc_init_r(void)
|
||||
{
|
||||
u8 mac_addr[EFUSE_MAC_SIZE + 1];
|
||||
diff --git a/configs/libretech-ac_defconfig b/configs/libretech-ac_defconfig
|
||||
index 11d9795e05d..7763a14f203 100644
|
||||
--- a/configs/libretech-ac_defconfig
|
||||
+++ b/configs/libretech-ac_defconfig
|
||||
@@ -35,6 +35,7 @@ CONFIG_SYS_MAXARGS=32
|
||||
# CONFIG_CMD_IMI is not set
|
||||
CONFIG_CMD_ADC=y
|
||||
CONFIG_CMD_DFU=y
|
||||
+CONFIG_CMD_NVEDIT_EFI=y
|
||||
CONFIG_CMD_GPIO=y
|
||||
# CONFIG_CMD_LOADS is not set
|
||||
CONFIG_CMD_MMC=y
|
||||
@@ -42,6 +43,7 @@ CONFIG_CMD_SF_TEST=y
|
||||
CONFIG_CMD_SPI=y
|
||||
CONFIG_CMD_USB=y
|
||||
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||
+CONFIG_CMD_EFIDEBUG=y
|
||||
# CONFIG_CMD_SETEXPR is not set
|
||||
CONFIG_CMD_REGULATOR=y
|
||||
CONFIG_OF_CONTROL=y
|
||||
@@ -49,6 +51,8 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_SARADC_MESON=y
|
||||
CONFIG_DFU_RAM=y
|
||||
+CONFIG_DFU_SF=y
|
||||
+CONFIG_SET_DFU_ALT_INFO=y
|
||||
CONFIG_MMC_MESON_GX=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_DM_MTD=y
|
||||
@@ -98,3 +102,5 @@ CONFIG_VIDEO_BMP_RLE8=y
|
||||
CONFIG_BMP_16BPP=y
|
||||
CONFIG_BMP_24BPP=y
|
||||
CONFIG_BMP_32BPP=y
|
||||
+CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
|
||||
+CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,337 +0,0 @@
|
||||
From b62cecc1151de8e1d5f694d03c00fff67ceee4ec Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
Date: Fri, 20 Sep 2024 15:33:33 +0200
|
||||
Subject: [PATCH 05/12] FROMGIT: ARM: meson: add support for Libre Computer
|
||||
aml-a311d-cc
|
||||
|
||||
Add support for the Libre Computer aml-a311d-cc "Alta" board:
|
||||
https://libre.computer/products/aml-a311d-cc/
|
||||
|
||||
The Alta board has a Credit Card form factor, similar to the
|
||||
the prvevious "Le Potato" card, but with the Amlogic A311D SoC,
|
||||
MIPI DSI and CSI connectors. PoE header and a single USB2 Type-C
|
||||
connector replacing the microUSB one for power and USB 2.0.
|
||||
|
||||
The board has an embedded SPI NOR flash, and EFI Capsule support
|
||||
is added.
|
||||
|
||||
The GUID is dynamically generated for the board, to get it:
|
||||
=> efidebug capsule esrt
|
||||
========================================
|
||||
ESRT: fw_resource_count=1
|
||||
ESRT: fw_resource_count_max=1
|
||||
ESRT: fw_resource_version=1
|
||||
[entry 0]==============================
|
||||
ESRT: fw_class=17E07D9D-4D91-53F4-8780-1D91F279C1A5
|
||||
ESRT: fw_type=unknown
|
||||
ESRT: fw_version=0
|
||||
ESRT: lowest_supported_fw_version=0
|
||||
ESRT: capsule_flags=0
|
||||
ESRT: last_attempt_version=0
|
||||
ESRT: last_attempt_status=success
|
||||
========================================
|
||||
|
||||
On the host (with the aml_encrypt_g12a result binary):
|
||||
$ eficapsule --guid 17E07D9D-4D91-53F4-8780-1D91F279C1A5 -i 1 u-boot.bin u-boot.cap
|
||||
|
||||
On the board (from USB disk containing u-boot.cap at root):
|
||||
=> load usb 0:1 $kernel_addr_r u-boot.cap
|
||||
=> efidebug capsule update $kernel_addr_r
|
||||
|
||||
The binary will then be flashed on the SPI.
|
||||
|
||||
Link: https://lore.kernel.org/r/20240920-u-boot-topic-libre-computer-solitude-alta-v1-1-8915b108840b@linaro.org
|
||||
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
---
|
||||
.../meson-g12b-a311d-libretech-cc-u-boot.dtsi | 15 +++
|
||||
board/libre-computer/aml-a311d-cc/MAINTAINERS | 7 ++
|
||||
board/libre-computer/aml-a311d-cc/Makefile | 6 +
|
||||
.../aml-a311d-cc/aml-a311d-cc.c | 44 +++++++
|
||||
configs/aml-a311d-cc_defconfig | 108 ++++++++++++++++++
|
||||
doc/board/amlogic/aml-a311d-cc.rst | 46 ++++++++
|
||||
doc/board/amlogic/index.rst | 1 +
|
||||
7 files changed, 227 insertions(+)
|
||||
create mode 100644 arch/arm/dts/meson-g12b-a311d-libretech-cc-u-boot.dtsi
|
||||
create mode 100644 board/libre-computer/aml-a311d-cc/MAINTAINERS
|
||||
create mode 100644 board/libre-computer/aml-a311d-cc/Makefile
|
||||
create mode 100644 board/libre-computer/aml-a311d-cc/aml-a311d-cc.c
|
||||
create mode 100644 configs/aml-a311d-cc_defconfig
|
||||
create mode 100644 doc/board/amlogic/aml-a311d-cc.rst
|
||||
|
||||
diff --git a/arch/arm/dts/meson-g12b-a311d-libretech-cc-u-boot.dtsi b/arch/arm/dts/meson-g12b-a311d-libretech-cc-u-boot.dtsi
|
||||
new file mode 100644
|
||||
index 00000000000..cbada739042
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/dts/meson-g12b-a311d-libretech-cc-u-boot.dtsi
|
||||
@@ -0,0 +1,15 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2023 Neil Armstrong <neil.armstrong@linaro.org>
|
||||
+ */
|
||||
+
|
||||
+#include "meson-g12-common-u-boot.dtsi"
|
||||
+
|
||||
+&sd_emmc_c {
|
||||
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_4b_pins>;
|
||||
+ bus-width = <4>;
|
||||
+};
|
||||
+
|
||||
+&spifc {
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/board/libre-computer/aml-a311d-cc/MAINTAINERS b/board/libre-computer/aml-a311d-cc/MAINTAINERS
|
||||
new file mode 100644
|
||||
index 00000000000..b4b77acd23b
|
||||
--- /dev/null
|
||||
+++ b/board/libre-computer/aml-a311d-cc/MAINTAINERS
|
||||
@@ -0,0 +1,7 @@
|
||||
+LIBRE-COMPUTER AML-A311D-CC
|
||||
+M: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
+S: Maintained
|
||||
+L: u-boot-amlogic@groups.io
|
||||
+F: board/amlogic/aml-a311d-cc/
|
||||
+F: configs/aml-a311d-cc_defconfig
|
||||
+F: doc/board/amlogic/aml-a311d-cc.rst
|
||||
diff --git a/board/libre-computer/aml-a311d-cc/Makefile b/board/libre-computer/aml-a311d-cc/Makefile
|
||||
new file mode 100644
|
||||
index 00000000000..461955def3a
|
||||
--- /dev/null
|
||||
+++ b/board/libre-computer/aml-a311d-cc/Makefile
|
||||
@@ -0,0 +1,6 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0+
|
||||
+#
|
||||
+# (C) Copyright 2016 BayLibre, SAS
|
||||
+# Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
+
|
||||
+obj-y := aml-a311d-cc.o
|
||||
diff --git a/board/libre-computer/aml-a311d-cc/aml-a311d-cc.c b/board/libre-computer/aml-a311d-cc/aml-a311d-cc.c
|
||||
new file mode 100644
|
||||
index 00000000000..e45cfd5d8a3
|
||||
--- /dev/null
|
||||
+++ b/board/libre-computer/aml-a311d-cc/aml-a311d-cc.c
|
||||
@@ -0,0 +1,44 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0+
|
||||
+/*
|
||||
+ * Copyright (C) 2016 BayLibre, SAS
|
||||
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
+ */
|
||||
+
|
||||
+#include <dm.h>
|
||||
+#include <env.h>
|
||||
+#include <init.h>
|
||||
+#include <net.h>
|
||||
+#include <efi_loader.h>
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/arch/eth.h>
|
||||
+
|
||||
+struct efi_fw_image fw_images[] = {
|
||||
+ {
|
||||
+ .fw_name = u"AML_A311D_CC_BOOT",
|
||||
+ .image_index = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+struct efi_capsule_update_info update_info = {
|
||||
+ .dfu_string = "sf 0:0=u-boot-bin raw 0 0x10000",
|
||||
+ .num_images = ARRAY_SIZE(fw_images),
|
||||
+ .images = fw_images,
|
||||
+};
|
||||
+
|
||||
+
|
||||
+#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
|
||||
+void set_dfu_alt_info(char *interface, char *devstr)
|
||||
+{
|
||||
+ if (strcmp(interface, "ram") == 0)
|
||||
+ env_set("dfu_alt_info", "fitimage ram 0x08080000 0x4000000");
|
||||
+ else if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
|
||||
+ env_set("dfu_alt_info", update_info.dfu_string);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+int misc_init_r(void)
|
||||
+{
|
||||
+ meson_generate_serial_ethaddr();
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/configs/aml-a311d-cc_defconfig b/configs/aml-a311d-cc_defconfig
|
||||
new file mode 100644
|
||||
index 00000000000..c8e22200419
|
||||
--- /dev/null
|
||||
+++ b/configs/aml-a311d-cc_defconfig
|
||||
@@ -0,0 +1,108 @@
|
||||
+CONFIG_ARM=y
|
||||
+CONFIG_SYS_VENDOR="libre-computer"
|
||||
+CONFIG_SYS_BOARD="aml-a311d-cc"
|
||||
+CONFIG_ARCH_MESON=y
|
||||
+CONFIG_TEXT_BASE=0x01000000
|
||||
+CONFIG_NR_DRAM_BANKS=1
|
||||
+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
||||
+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x20000000
|
||||
+CONFIG_ENV_SIZE=0x2000
|
||||
+CONFIG_ENV_OFFSET=0xFFFF0000
|
||||
+CONFIG_ENV_SECT_SIZE=0x10000
|
||||
+CONFIG_DM_GPIO=y
|
||||
+CONFIG_DEFAULT_DEVICE_TREE="amlogic/meson-g12b-a311d-libretech-cc"
|
||||
+CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
+CONFIG_DM_RESET=y
|
||||
+CONFIG_MESON_G12A=y
|
||||
+CONFIG_DEBUG_UART_BASE=0xff803000
|
||||
+CONFIG_DEBUG_UART_CLOCK=24000000
|
||||
+CONFIG_IDENT_STRING="aml-a311d-cc"
|
||||
+CONFIG_SYS_LOAD_ADDR=0x1000000
|
||||
+CONFIG_DEBUG_UART=y
|
||||
+CONFIG_REMAKE_ELF=y
|
||||
+CONFIG_FIT=y
|
||||
+CONFIG_FIT_SIGNATURE=y
|
||||
+CONFIG_FIT_VERBOSE=y
|
||||
+CONFIG_LEGACY_IMAGE_FORMAT=y
|
||||
+CONFIG_OF_BOARD_SETUP=y
|
||||
+# CONFIG_DISPLAY_CPUINFO is not set
|
||||
+CONFIG_MISC_INIT_R=y
|
||||
+CONFIG_SYS_MAXARGS=32
|
||||
+# CONFIG_CMD_BDI is not set
|
||||
+# CONFIG_CMD_IMI is not set
|
||||
+CONFIG_CMD_DFU=y
|
||||
+CONFIG_CMD_NVEDIT_EFI=y
|
||||
+CONFIG_CMD_GPIO=y
|
||||
+# CONFIG_CMD_LOADS is not set
|
||||
+CONFIG_CMD_MMC=y
|
||||
+CONFIG_CMD_SF_TEST=y
|
||||
+CONFIG_CMD_SPI=y
|
||||
+CONFIG_CMD_USB=y
|
||||
+CONFIG_CMD_USB_MASS_STORAGE=y
|
||||
+CONFIG_CMD_EFIDEBUG=y
|
||||
+# CONFIG_CMD_SETEXPR is not set
|
||||
+CONFIG_CMD_REGULATOR=y
|
||||
+CONFIG_OF_CONTROL=y
|
||||
+CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
+CONFIG_ADC=y
|
||||
+CONFIG_SARADC_MESON=y
|
||||
+CONFIG_BUTTON=y
|
||||
+CONFIG_BUTTON_ADC=y
|
||||
+CONFIG_DFU_RAM=y
|
||||
+CONFIG_DFU_SF=y
|
||||
+CONFIG_SET_DFU_ALT_INFO=y
|
||||
+CONFIG_MMC_MESON_GX=y
|
||||
+CONFIG_MTD=y
|
||||
+CONFIG_DM_MTD=y
|
||||
+CONFIG_DM_SPI_FLASH=y
|
||||
+CONFIG_SPI_FLASH_GIGADEVICE=y
|
||||
+CONFIG_SPI_FLASH_SPANSION=y
|
||||
+CONFIG_PHY_REALTEK=y
|
||||
+CONFIG_DM_MDIO=y
|
||||
+CONFIG_DM_MDIO_MUX=y
|
||||
+CONFIG_ETH_DESIGNWARE_MESON8B=y
|
||||
+CONFIG_MDIO_MUX_MESON_G12A=y
|
||||
+CONFIG_MESON_G12A_USB_PHY=y
|
||||
+CONFIG_PINCTRL=y
|
||||
+CONFIG_PINCTRL_MESON_G12A=y
|
||||
+CONFIG_POWER_DOMAIN=y
|
||||
+CONFIG_MESON_EE_POWER_DOMAIN=y
|
||||
+CONFIG_DM_REGULATOR=y
|
||||
+CONFIG_DM_REGULATOR_FIXED=y
|
||||
+CONFIG_DEBUG_UART_ANNOUNCE=y
|
||||
+CONFIG_DEBUG_UART_SKIP_INIT=y
|
||||
+CONFIG_MESON_SERIAL=y
|
||||
+CONFIG_SPI=y
|
||||
+CONFIG_DM_SPI=y
|
||||
+CONFIG_MESON_SPIFC=y
|
||||
+CONFIG_SYSINFO=y
|
||||
+CONFIG_SYSINFO_SMBIOS=y
|
||||
+CONFIG_USB=y
|
||||
+CONFIG_DM_USB_GADGET=y
|
||||
+CONFIG_USB_XHCI_HCD=y
|
||||
+CONFIG_USB_XHCI_DWC3=y
|
||||
+CONFIG_USB_DWC3=y
|
||||
+# CONFIG_USB_DWC3_GADGET is not set
|
||||
+CONFIG_USB_DWC3_MESON_G12A=y
|
||||
+CONFIG_USB_KEYBOARD=y
|
||||
+CONFIG_USB_GADGET=y
|
||||
+CONFIG_USB_GADGET_VENDOR_NUM=0x1b8e
|
||||
+CONFIG_USB_GADGET_PRODUCT_NUM=0xfada
|
||||
+CONFIG_USB_GADGET_DWC2_OTG=y
|
||||
+CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y
|
||||
+CONFIG_USB_GADGET_DOWNLOAD=y
|
||||
+CONFIG_VIDEO=y
|
||||
+# CONFIG_VIDEO_BPP8 is not set
|
||||
+# CONFIG_VIDEO_BPP16 is not set
|
||||
+CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
+CONFIG_VIDEO_MESON=y
|
||||
+CONFIG_VIDEO_DT_SIMPLEFB=y
|
||||
+CONFIG_SPLASH_SCREEN=y
|
||||
+CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
+CONFIG_VIDEO_BMP_RLE8=y
|
||||
+CONFIG_BMP_16BPP=y
|
||||
+CONFIG_BMP_24BPP=y
|
||||
+CONFIG_BMP_32BPP=y
|
||||
+CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
|
||||
+CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
|
||||
diff --git a/doc/board/amlogic/aml-a311d-cc.rst b/doc/board/amlogic/aml-a311d-cc.rst
|
||||
new file mode 100644
|
||||
index 00000000000..25c1e01906a
|
||||
--- /dev/null
|
||||
+++ b/doc/board/amlogic/aml-a311d-cc.rst
|
||||
@@ -0,0 +1,46 @@
|
||||
+.. SPDX-License-Identifier: GPL-2.0+
|
||||
+
|
||||
+U-Boot for Libre Computer AML-A311D-CC 'Alta' (A311D)
|
||||
+=====================================================
|
||||
+
|
||||
+AML-A311D-CC is a Single Board Computer manufactured by Libre Computer Technology with
|
||||
+the following specifications:
|
||||
+
|
||||
+ - Amlogic A311D Arm Cortex-A53 dual-core + Cortex-A73 quad-core SoC
|
||||
+ - 2 or 4GB LPDDR4 SDRAM
|
||||
+ - Gigabit Ethernet
|
||||
+ - HDMI 2.1 display
|
||||
+ - 40-pin GPIO header
|
||||
+ - 4 x USB 3.0 Host, 1 x USB 2.0 Type-C
|
||||
+ - eMMC 5.x SM Interface for Libre Computer Modules
|
||||
+ - microSD
|
||||
+ - Infrared receiver
|
||||
+
|
||||
+Schematics are available on the manufacturer website.
|
||||
+
|
||||
+U-Boot Compilation
|
||||
+------------------
|
||||
+
|
||||
+.. code-block:: bash
|
||||
+
|
||||
+ $ export CROSS_COMPILE=aarch64-none-elf-
|
||||
+ $ make aml-a311d-cc_defconfig
|
||||
+ $ make
|
||||
+
|
||||
+U-Boot Signing with Pre-Built FIP repo
|
||||
+--------------------------------------
|
||||
+
|
||||
+.. code-block:: bash
|
||||
+
|
||||
+ $ git clone https://github.com/LibreELEC/amlogic-boot-fip --depth=1
|
||||
+ $ cd amlogic-boot-fip
|
||||
+ $ mkdir my-output-dir
|
||||
+ $ ./build-fip.sh aml-a311d-cc /path/to/u-boot/u-boot.bin my-output-dir
|
||||
+
|
||||
+Then write U-Boot to SD or eMMC with:
|
||||
+
|
||||
+.. code-block:: bash
|
||||
+
|
||||
+ $ DEV=/dev/boot_device
|
||||
+ $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
||||
+ $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=440
|
||||
diff --git a/doc/board/amlogic/index.rst b/doc/board/amlogic/index.rst
|
||||
index 46f44bf34ec..de91b21f977 100644
|
||||
--- a/doc/board/amlogic/index.rst
|
||||
+++ b/doc/board/amlogic/index.rst
|
||||
@@ -85,6 +85,7 @@ Board Documentation
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
+ aml-a311d-cc
|
||||
bananapi-cm4io
|
||||
bananapi-m2pro
|
||||
bananapi-m2s
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,337 +0,0 @@
|
||||
From b2b6496c521a9299aec3e0114595a90894bd1ccd Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
Date: Fri, 20 Sep 2024 15:33:34 +0200
|
||||
Subject: [PATCH 06/12] FROMGIT: ARM: meson: add support for Libre Computer
|
||||
aml-s905d3-cc
|
||||
|
||||
Add support for the Libre Computer aml-s905d3-cc "Solitude" board:
|
||||
https://libre.computer/products/aml-s905d3-cc/
|
||||
|
||||
The Solitude board has a Credit Card form factor, similar to the
|
||||
the previous "Le Potato" card, but with the Amlogic A311D SoC,
|
||||
MIPI DSI and CSI connectors. PoE header and a single USB2 Type-C
|
||||
connector replacing the microUSB one for power and USB 2.0.
|
||||
|
||||
The board has an embedded SPI NOR flash, and EFI Capsule support
|
||||
is added.
|
||||
|
||||
The GUID is dynamically generated for the board, to get it:
|
||||
=> efidebug capsule esrt
|
||||
========================================
|
||||
ESRT: fw_resource_count=1
|
||||
ESRT: fw_resource_count_max=1
|
||||
ESRT: fw_resource_version=1
|
||||
[entry 0]==============================
|
||||
ESRT: fw_class=4302C3CB-2502-5EFE-87E0-894A8A322893
|
||||
ESRT: fw_type=unknown
|
||||
ESRT: fw_version=0
|
||||
ESRT: lowest_supported_fw_version=0
|
||||
ESRT: capsule_flags=0
|
||||
ESRT: last_attempt_version=0
|
||||
ESRT: last_attempt_status=success
|
||||
========================================
|
||||
|
||||
On the host (with the aml_encrypt_g12a result binary):
|
||||
$ eficapsule --guid 4302C3CB-2502-5EFE-87E0-894A8A322893 -i 1 u-boot.bin u-boot.cap
|
||||
|
||||
On the board (from USB disk containing u-boot.cap at root):
|
||||
=> load usb 0:1 $kernel_addr_r u-boot.cap
|
||||
=> efidebug capsule update $kernel_addr_r
|
||||
|
||||
The binary will then be flashed on the SPI.
|
||||
|
||||
Link: https://lore.kernel.org/r/20240920-u-boot-topic-libre-computer-solitude-alta-v1-2-8915b108840b@linaro.org
|
||||
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
---
|
||||
.../meson-sm1-s905d3-libretech-cc-u-boot.dtsi | 15 +++
|
||||
.../libre-computer/aml-s905d3-cc/MAINTAINERS | 7 ++
|
||||
board/libre-computer/aml-s905d3-cc/Makefile | 6 +
|
||||
.../aml-s905d3-cc/aml-s905d3-cc.c | 44 +++++++
|
||||
configs/aml-s905d3-cc_defconfig | 108 ++++++++++++++++++
|
||||
doc/board/amlogic/aml-s905d3-cc.rst | 46 ++++++++
|
||||
doc/board/amlogic/index.rst | 1 +
|
||||
7 files changed, 227 insertions(+)
|
||||
create mode 100644 arch/arm/dts/meson-sm1-s905d3-libretech-cc-u-boot.dtsi
|
||||
create mode 100644 board/libre-computer/aml-s905d3-cc/MAINTAINERS
|
||||
create mode 100644 board/libre-computer/aml-s905d3-cc/Makefile
|
||||
create mode 100644 board/libre-computer/aml-s905d3-cc/aml-s905d3-cc.c
|
||||
create mode 100644 configs/aml-s905d3-cc_defconfig
|
||||
create mode 100644 doc/board/amlogic/aml-s905d3-cc.rst
|
||||
|
||||
diff --git a/arch/arm/dts/meson-sm1-s905d3-libretech-cc-u-boot.dtsi b/arch/arm/dts/meson-sm1-s905d3-libretech-cc-u-boot.dtsi
|
||||
new file mode 100644
|
||||
index 00000000000..1c4f019120f
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/dts/meson-sm1-s905d3-libretech-cc-u-boot.dtsi
|
||||
@@ -0,0 +1,15 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2023 Neil Armstrong <neil.armstrong@linaro.org>
|
||||
+ */
|
||||
+
|
||||
+#include "meson-g12-common-u-boot.dtsi"
|
||||
+
|
||||
+&sd_emmc_c {
|
||||
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_4b_pins>, <&emmc_ds_pins>;
|
||||
+ bus-width = <4>;
|
||||
+};
|
||||
+
|
||||
+&spifc {
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/board/libre-computer/aml-s905d3-cc/MAINTAINERS b/board/libre-computer/aml-s905d3-cc/MAINTAINERS
|
||||
new file mode 100644
|
||||
index 00000000000..4b75c815c07
|
||||
--- /dev/null
|
||||
+++ b/board/libre-computer/aml-s905d3-cc/MAINTAINERS
|
||||
@@ -0,0 +1,7 @@
|
||||
+LIBRE-COMPUTER AML-S905D3-CC
|
||||
+M: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
+S: Maintained
|
||||
+L: u-boot-amlogic@groups.io
|
||||
+F: board/amlogic/aml-s905d3-cc/
|
||||
+F: configs/aml-s905d3-cc_defconfig
|
||||
+F: doc/board/amlogic/aml-s905d3-cc.rst
|
||||
diff --git a/board/libre-computer/aml-s905d3-cc/Makefile b/board/libre-computer/aml-s905d3-cc/Makefile
|
||||
new file mode 100644
|
||||
index 00000000000..7d2c41e6436
|
||||
--- /dev/null
|
||||
+++ b/board/libre-computer/aml-s905d3-cc/Makefile
|
||||
@@ -0,0 +1,6 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0+
|
||||
+#
|
||||
+# (C) Copyright 2016 BayLibre, SAS
|
||||
+# Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
+
|
||||
+obj-y := aml-s905d3-cc.o
|
||||
diff --git a/board/libre-computer/aml-s905d3-cc/aml-s905d3-cc.c b/board/libre-computer/aml-s905d3-cc/aml-s905d3-cc.c
|
||||
new file mode 100644
|
||||
index 00000000000..f641db5a494
|
||||
--- /dev/null
|
||||
+++ b/board/libre-computer/aml-s905d3-cc/aml-s905d3-cc.c
|
||||
@@ -0,0 +1,44 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0+
|
||||
+/*
|
||||
+ * Copyright (C) 2016 BayLibre, SAS
|
||||
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
|
||||
+ */
|
||||
+
|
||||
+#include <dm.h>
|
||||
+#include <env.h>
|
||||
+#include <init.h>
|
||||
+#include <net.h>
|
||||
+#include <efi_loader.h>
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/arch/eth.h>
|
||||
+
|
||||
+struct efi_fw_image fw_images[] = {
|
||||
+ {
|
||||
+ .fw_name = u"AML_S905D3_CC_BOOT",
|
||||
+ .image_index = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+struct efi_capsule_update_info update_info = {
|
||||
+ .dfu_string = "sf 0:0=u-boot-bin raw 0 0x10000",
|
||||
+ .num_images = ARRAY_SIZE(fw_images),
|
||||
+ .images = fw_images,
|
||||
+};
|
||||
+
|
||||
+
|
||||
+#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
|
||||
+void set_dfu_alt_info(char *interface, char *devstr)
|
||||
+{
|
||||
+ if (strcmp(interface, "ram") == 0)
|
||||
+ env_set("dfu_alt_info", "fitimage ram 0x08080000 0x4000000");
|
||||
+ else if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
|
||||
+ env_set("dfu_alt_info", update_info.dfu_string);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+int misc_init_r(void)
|
||||
+{
|
||||
+ meson_generate_serial_ethaddr();
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/configs/aml-s905d3-cc_defconfig b/configs/aml-s905d3-cc_defconfig
|
||||
new file mode 100644
|
||||
index 00000000000..a6e5d584c0a
|
||||
--- /dev/null
|
||||
+++ b/configs/aml-s905d3-cc_defconfig
|
||||
@@ -0,0 +1,108 @@
|
||||
+CONFIG_ARM=y
|
||||
+CONFIG_SYS_VENDOR="libre-computer"
|
||||
+CONFIG_SYS_BOARD="aml-s905d3-cc"
|
||||
+CONFIG_ARCH_MESON=y
|
||||
+CONFIG_TEXT_BASE=0x01000000
|
||||
+CONFIG_NR_DRAM_BANKS=1
|
||||
+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
||||
+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x20000000
|
||||
+CONFIG_ENV_SIZE=0x2000
|
||||
+CONFIG_ENV_OFFSET=0xFFFF0000
|
||||
+CONFIG_ENV_SECT_SIZE=0x10000
|
||||
+CONFIG_DM_GPIO=y
|
||||
+CONFIG_DEFAULT_DEVICE_TREE="amlogic/meson-sm1-s905d3-libretech-cc"
|
||||
+CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
+CONFIG_DM_RESET=y
|
||||
+CONFIG_MESON_G12A=y
|
||||
+CONFIG_DEBUG_UART_BASE=0xff803000
|
||||
+CONFIG_DEBUG_UART_CLOCK=24000000
|
||||
+CONFIG_IDENT_STRING="aml-s905d3-cc"
|
||||
+CONFIG_SYS_LOAD_ADDR=0x1000000
|
||||
+CONFIG_DEBUG_UART=y
|
||||
+CONFIG_REMAKE_ELF=y
|
||||
+CONFIG_FIT=y
|
||||
+CONFIG_FIT_SIGNATURE=y
|
||||
+CONFIG_FIT_VERBOSE=y
|
||||
+CONFIG_LEGACY_IMAGE_FORMAT=y
|
||||
+CONFIG_OF_BOARD_SETUP=y
|
||||
+# CONFIG_DISPLAY_CPUINFO is not set
|
||||
+CONFIG_MISC_INIT_R=y
|
||||
+CONFIG_SYS_MAXARGS=32
|
||||
+# CONFIG_CMD_BDI is not set
|
||||
+# CONFIG_CMD_IMI is not set
|
||||
+CONFIG_CMD_DFU=y
|
||||
+CONFIG_CMD_NVEDIT_EFI=y
|
||||
+CONFIG_CMD_GPIO=y
|
||||
+# CONFIG_CMD_LOADS is not set
|
||||
+CONFIG_CMD_MMC=y
|
||||
+CONFIG_CMD_SF_TEST=y
|
||||
+CONFIG_CMD_SPI=y
|
||||
+CONFIG_CMD_USB=y
|
||||
+CONFIG_CMD_USB_MASS_STORAGE=y
|
||||
+CONFIG_CMD_EFIDEBUG=y
|
||||
+# CONFIG_CMD_SETEXPR is not set
|
||||
+CONFIG_CMD_REGULATOR=y
|
||||
+CONFIG_OF_CONTROL=y
|
||||
+CONFIG_ENV_IS_IN_SPI_FLASH=y
|
||||
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
+CONFIG_ADC=y
|
||||
+CONFIG_SARADC_MESON=y
|
||||
+CONFIG_BUTTON=y
|
||||
+CONFIG_BUTTON_ADC=y
|
||||
+CONFIG_DFU_RAM=y
|
||||
+CONFIG_DFU_SF=y
|
||||
+CONFIG_SET_DFU_ALT_INFO=y
|
||||
+CONFIG_MMC_MESON_GX=y
|
||||
+CONFIG_MTD=y
|
||||
+CONFIG_DM_MTD=y
|
||||
+CONFIG_DM_SPI_FLASH=y
|
||||
+CONFIG_SPI_FLASH_GIGADEVICE=y
|
||||
+CONFIG_SPI_FLASH_SPANSION=y
|
||||
+CONFIG_PHY_REALTEK=y
|
||||
+CONFIG_DM_MDIO=y
|
||||
+CONFIG_DM_MDIO_MUX=y
|
||||
+CONFIG_ETH_DESIGNWARE_MESON8B=y
|
||||
+CONFIG_MDIO_MUX_MESON_G12A=y
|
||||
+CONFIG_MESON_G12A_USB_PHY=y
|
||||
+CONFIG_PINCTRL=y
|
||||
+CONFIG_PINCTRL_MESON_G12A=y
|
||||
+CONFIG_POWER_DOMAIN=y
|
||||
+CONFIG_MESON_EE_POWER_DOMAIN=y
|
||||
+CONFIG_DM_REGULATOR=y
|
||||
+CONFIG_DM_REGULATOR_FIXED=y
|
||||
+CONFIG_DEBUG_UART_ANNOUNCE=y
|
||||
+CONFIG_DEBUG_UART_SKIP_INIT=y
|
||||
+CONFIG_MESON_SERIAL=y
|
||||
+CONFIG_SPI=y
|
||||
+CONFIG_DM_SPI=y
|
||||
+CONFIG_MESON_SPIFC=y
|
||||
+CONFIG_SYSINFO=y
|
||||
+CONFIG_SYSINFO_SMBIOS=y
|
||||
+CONFIG_USB=y
|
||||
+CONFIG_DM_USB_GADGET=y
|
||||
+CONFIG_USB_XHCI_HCD=y
|
||||
+CONFIG_USB_XHCI_DWC3=y
|
||||
+CONFIG_USB_DWC3=y
|
||||
+# CONFIG_USB_DWC3_GADGET is not set
|
||||
+CONFIG_USB_DWC3_MESON_G12A=y
|
||||
+CONFIG_USB_KEYBOARD=y
|
||||
+CONFIG_USB_GADGET=y
|
||||
+CONFIG_USB_GADGET_VENDOR_NUM=0x1b8e
|
||||
+CONFIG_USB_GADGET_PRODUCT_NUM=0xfada
|
||||
+CONFIG_USB_GADGET_DWC2_OTG=y
|
||||
+CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y
|
||||
+CONFIG_USB_GADGET_DOWNLOAD=y
|
||||
+CONFIG_VIDEO=y
|
||||
+# CONFIG_VIDEO_BPP8 is not set
|
||||
+# CONFIG_VIDEO_BPP16 is not set
|
||||
+CONFIG_SYS_WHITE_ON_BLACK=y
|
||||
+CONFIG_VIDEO_MESON=y
|
||||
+CONFIG_VIDEO_DT_SIMPLEFB=y
|
||||
+CONFIG_SPLASH_SCREEN=y
|
||||
+CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
+CONFIG_VIDEO_BMP_RLE8=y
|
||||
+CONFIG_BMP_16BPP=y
|
||||
+CONFIG_BMP_24BPP=y
|
||||
+CONFIG_BMP_32BPP=y
|
||||
+CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
|
||||
+CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
|
||||
diff --git a/doc/board/amlogic/aml-s905d3-cc.rst b/doc/board/amlogic/aml-s905d3-cc.rst
|
||||
new file mode 100644
|
||||
index 00000000000..083a591fc52
|
||||
--- /dev/null
|
||||
+++ b/doc/board/amlogic/aml-s905d3-cc.rst
|
||||
@@ -0,0 +1,46 @@
|
||||
+.. SPDX-License-Identifier: GPL-2.0+
|
||||
+
|
||||
+U-Boot for Libre Computer AML-S905D3-CC 'Solitude' (S905D3)
|
||||
+===========================================================
|
||||
+
|
||||
+AML-S905D3-CC is a Single Board Computer manufactured by Libre Computer Technology with
|
||||
+the following specifications:
|
||||
+
|
||||
+ - Amlogic S905D3 Cortex-A55 quad-core SoC
|
||||
+ - 2 or 4GB LPDDR4 SDRAM
|
||||
+ - Gigabit Ethernet
|
||||
+ - HDMI 2.1 display
|
||||
+ - 40-pin GPIO header
|
||||
+ - 4 x USB 3.0 Host, 1 x USB 2.0 Type-C
|
||||
+ - eMMC 5.x SM Interface for Libre Computer Modules
|
||||
+ - microSD
|
||||
+ - Infrared receiver
|
||||
+
|
||||
+Schematics are available on the manufacturer website.
|
||||
+
|
||||
+U-Boot Compilation
|
||||
+------------------
|
||||
+
|
||||
+.. code-block:: bash
|
||||
+
|
||||
+ $ export CROSS_COMPILE=aarch64-none-elf-
|
||||
+ $ make aml-s905d3-cc_defconfig
|
||||
+ $ make
|
||||
+
|
||||
+U-Boot Signing with Pre-Built FIP repo
|
||||
+--------------------------------------
|
||||
+
|
||||
+.. code-block:: bash
|
||||
+
|
||||
+ $ git clone https://github.com/LibreELEC/amlogic-boot-fip --depth=1
|
||||
+ $ cd amlogic-boot-fip
|
||||
+ $ mkdir my-output-dir
|
||||
+ $ ./build-fip.sh aml-s905d3-cc /path/to/u-boot/u-boot.bin my-output-dir
|
||||
+
|
||||
+Then write U-Boot to SD or eMMC with:
|
||||
+
|
||||
+.. code-block:: bash
|
||||
+
|
||||
+ $ DEV=/dev/boot_device
|
||||
+ $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
|
||||
+ $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=440
|
||||
diff --git a/doc/board/amlogic/index.rst b/doc/board/amlogic/index.rst
|
||||
index de91b21f977..dcd935224ac 100644
|
||||
--- a/doc/board/amlogic/index.rst
|
||||
+++ b/doc/board/amlogic/index.rst
|
||||
@@ -86,6 +86,7 @@ Board Documentation
|
||||
:maxdepth: 1
|
||||
|
||||
aml-a311d-cc
|
||||
+ aml-s905d3-cc
|
||||
bananapi-cm4io
|
||||
bananapi-m2pro
|
||||
bananapi-m2s
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,33 +0,0 @@
|
||||
From 2089ed103a91fa226af44bd6c72a14e7066277aa Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
Date: Tue, 8 Oct 2024 18:23:42 +0200
|
||||
Subject: [PATCH 07/12] FROMGIT: dts: meson-g12-common-u-boot: do not disable
|
||||
canvas
|
||||
|
||||
We were disabling canvas, which causes meson vpu probe failure,
|
||||
just stop and leave canvas alone.
|
||||
|
||||
Fixes: ce9fa7bffc5 ("ARM: dts: meson-g12a: add U-Boot specific DT for graphics")
|
||||
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
---
|
||||
arch/arm/dts/meson-g12-common-u-boot.dtsi | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/dts/meson-g12-common-u-boot.dtsi b/arch/arm/dts/meson-g12-common-u-boot.dtsi
|
||||
index 8070b62af5b..6629f3256a8 100644
|
||||
--- a/arch/arm/dts/meson-g12-common-u-boot.dtsi
|
||||
+++ b/arch/arm/dts/meson-g12-common-u-boot.dtsi
|
||||
@@ -17,10 +17,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
-&canvas {
|
||||
- status = "disabled";
|
||||
-};
|
||||
-
|
||||
&vpu {
|
||||
reg = <0x0 0xff900000 0x0 0x100000>,
|
||||
<0x0 0xff63c000 0x0 0x1000>,
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,35 +0,0 @@
|
||||
From 3afcf6403a22a276be297d57ed1af9342510ea3b Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
Date: Wed, 9 Oct 2024 10:01:56 +0200
|
||||
Subject: [PATCH 08/12] FROMGIT: video: meson: dw-hdmi: do not fail probe if
|
||||
HDMI regulator is already enabled
|
||||
|
||||
If the regulator is already enabled, this happens if the regulator
|
||||
is set in regulator-always-on, regulator_set_enable() return -EALREADY.
|
||||
|
||||
Ignore the -EALREADY return since it's not an error.
|
||||
|
||||
Suggested-by: Jonas Karlman <jonas@kwiboo.se>
|
||||
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
---
|
||||
drivers/video/meson/meson_dw_hdmi.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/meson/meson_dw_hdmi.c b/drivers/video/meson/meson_dw_hdmi.c
|
||||
index 587df7beb9b..1631dc38416 100644
|
||||
--- a/drivers/video/meson/meson_dw_hdmi.c
|
||||
+++ b/drivers/video/meson/meson_dw_hdmi.c
|
||||
@@ -418,8 +418,8 @@ static int meson_dw_hdmi_probe(struct udevice *dev)
|
||||
}
|
||||
|
||||
if (!ret) {
|
||||
- ret = regulator_set_enable(supply, true);
|
||||
- if (ret)
|
||||
+ ret = regulator_set_enable_if_allowed(supply, true);
|
||||
+ if (ret && ret != -ENOSYS)
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,169 +0,0 @@
|
||||
From 0af7ea971441f33a16e2b669a43c08878ec9615a Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
Date: Wed, 9 Oct 2024 11:15:20 +0200
|
||||
Subject: [PATCH 09/12] FROMGIT: clk: meson: gxbb: add HDMI clocks
|
||||
|
||||
Align with g12a driver to handle the CLKID_HDMI, CLKID_HDMI_SEL
|
||||
and CLKID_HDMI_DIV clocks since they were added to the upstream
|
||||
GXBB/GXL Devicetree on v6.11 with [1]
|
||||
|
||||
[1] https://lore.kernel.org/all/20240626152733.1350376-1-jbrunet@baylibre.com/
|
||||
|
||||
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
---
|
||||
drivers/clk/meson/gxbb.c | 50 +++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 49 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c
|
||||
index 72ad4fd0e85..51f124869c9 100644
|
||||
--- a/drivers/clk/meson/gxbb.c
|
||||
+++ b/drivers/clk/meson/gxbb.c
|
||||
@@ -66,6 +66,8 @@
|
||||
#define CLKID_VDEC_HEVC_SEL 154
|
||||
#define CLKID_VDEC_HEVC_DIV 155
|
||||
|
||||
+#define CLKID_XTAL 0x10000000
|
||||
+
|
||||
#define XTAL_RATE 24000000
|
||||
|
||||
struct meson_clk {
|
||||
@@ -192,6 +194,7 @@ static struct meson_gate gates[] = {
|
||||
MESON_GATE(CLKID_VAPB_0, HHI_VAPBCLK_CNTL, 8),
|
||||
MESON_GATE(CLKID_VAPB_1, HHI_VAPBCLK_CNTL, 24),
|
||||
MESON_GATE(CLKID_VAPB, HHI_VAPBCLK_CNTL, 30),
|
||||
+ MESON_GATE(CLKID_HDMI, HHI_HDMI_CLK_CNTL, 8),
|
||||
};
|
||||
|
||||
static int meson_set_gate_by_id(struct clk *clk, unsigned long id, bool on)
|
||||
@@ -267,6 +270,12 @@ static struct parm meson_vapb_1_div_parm = {
|
||||
|
||||
int meson_vapb_1_div_parent = CLKID_VAPB_1_SEL;
|
||||
|
||||
+static struct parm meson_hdmi_div_parm = {
|
||||
+ HHI_HDMI_CLK_CNTL, 0, 7,
|
||||
+};
|
||||
+
|
||||
+int meson_hdmi_div_parent = CLKID_HDMI_SEL;
|
||||
+
|
||||
static ulong meson_div_get_rate(struct clk *clk, unsigned long id)
|
||||
{
|
||||
struct meson_clk *priv = dev_get_priv(clk->dev);
|
||||
@@ -292,6 +301,10 @@ static ulong meson_div_get_rate(struct clk *clk, unsigned long id)
|
||||
parm = &meson_vapb_1_div_parm;
|
||||
parent = meson_vapb_1_div_parent;
|
||||
break;
|
||||
+ case CLKID_HDMI_DIV:
|
||||
+ parm = &meson_hdmi_div_parm;
|
||||
+ parent = meson_hdmi_div_parent;
|
||||
+ break;
|
||||
default:
|
||||
return -ENOENT;
|
||||
}
|
||||
@@ -347,6 +360,10 @@ static ulong meson_div_set_rate(struct clk *clk, unsigned long id, ulong rate,
|
||||
parm = &meson_vapb_1_div_parm;
|
||||
parent = meson_vapb_1_div_parent;
|
||||
break;
|
||||
+ case CLKID_HDMI_DIV:
|
||||
+ parm = &meson_hdmi_div_parm;
|
||||
+ parent = meson_hdmi_div_parent;
|
||||
+ break;
|
||||
default:
|
||||
return -ENOENT;
|
||||
}
|
||||
@@ -443,6 +460,17 @@ static int meson_vapb_0_1_mux_parents[] = {
|
||||
CLKID_FCLK_DIV7,
|
||||
};
|
||||
|
||||
+static struct parm meson_hdmi_mux_parm = {
|
||||
+ HHI_HDMI_CLK_CNTL, 9, 2,
|
||||
+};
|
||||
+
|
||||
+static int meson_hdmi_mux_parents[] = {
|
||||
+ CLKID_XTAL,
|
||||
+ CLKID_FCLK_DIV4,
|
||||
+ CLKID_FCLK_DIV3,
|
||||
+ CLKID_FCLK_DIV5,
|
||||
+};
|
||||
+
|
||||
static ulong meson_mux_get_parent(struct clk *clk, unsigned long id)
|
||||
{
|
||||
struct meson_clk *priv = dev_get_priv(clk->dev);
|
||||
@@ -475,6 +503,10 @@ static ulong meson_mux_get_parent(struct clk *clk, unsigned long id)
|
||||
parm = &meson_vapb_1_mux_parm;
|
||||
parents = meson_vapb_0_1_mux_parents;
|
||||
break;
|
||||
+ case CLKID_HDMI_SEL:
|
||||
+ parm = &meson_hdmi_mux_parm;
|
||||
+ parents = meson_hdmi_mux_parents;
|
||||
+ break;
|
||||
default:
|
||||
return -ENOENT;
|
||||
}
|
||||
@@ -532,6 +564,10 @@ static ulong meson_mux_set_parent(struct clk *clk, unsigned long id,
|
||||
parm = &meson_vapb_1_mux_parm;
|
||||
parents = meson_vapb_0_1_mux_parents;
|
||||
break;
|
||||
+ case CLKID_HDMI_SEL:
|
||||
+ parm = &meson_hdmi_mux_parm;
|
||||
+ parents = meson_hdmi_mux_parents;
|
||||
+ break;
|
||||
default:
|
||||
/* Not a mux */
|
||||
return -ENOENT;
|
||||
@@ -572,7 +608,7 @@ static unsigned long meson_clk81_get_rate(struct clk *clk)
|
||||
unsigned long parent_rate;
|
||||
uint reg;
|
||||
int parents[] = {
|
||||
- -1,
|
||||
+ CLKID_XTAL,
|
||||
-1,
|
||||
CLKID_FCLK_DIV7,
|
||||
CLKID_MPLL1,
|
||||
@@ -727,6 +763,9 @@ static ulong meson_clk_get_rate_by_id(struct clk *clk, unsigned long id)
|
||||
ulong rate;
|
||||
|
||||
switch (id) {
|
||||
+ case CLKID_XTAL:
|
||||
+ rate = XTAL_RATE;
|
||||
+ break;
|
||||
case CLKID_FIXED_PLL:
|
||||
case CLKID_SYS_PLL:
|
||||
rate = meson_pll_get_rate(clk, id);
|
||||
@@ -769,10 +808,14 @@ static ulong meson_clk_get_rate_by_id(struct clk *clk, unsigned long id)
|
||||
case CLKID_VAPB_1:
|
||||
rate = meson_div_get_rate(clk, CLKID_VAPB_1_DIV);
|
||||
break;
|
||||
+ case CLKID_HDMI:
|
||||
+ rate = meson_div_get_rate(clk, CLKID_HDMI_DIV);
|
||||
+ break;
|
||||
case CLKID_VPU_0_DIV:
|
||||
case CLKID_VPU_1_DIV:
|
||||
case CLKID_VAPB_0_DIV:
|
||||
case CLKID_VAPB_1_DIV:
|
||||
+ case CLKID_HDMI_DIV:
|
||||
rate = meson_div_get_rate(clk, id);
|
||||
break;
|
||||
case CLKID_VPU:
|
||||
@@ -781,6 +824,7 @@ static ulong meson_clk_get_rate_by_id(struct clk *clk, unsigned long id)
|
||||
case CLKID_VAPB_SEL:
|
||||
case CLKID_VAPB_0_SEL:
|
||||
case CLKID_VAPB_1_SEL:
|
||||
+ case CLKID_HDMI_SEL:
|
||||
rate = meson_mux_get_rate(clk, id);
|
||||
break;
|
||||
default:
|
||||
@@ -851,7 +895,11 @@ static ulong meson_clk_set_rate_by_id(struct clk *clk, unsigned long id,
|
||||
case CLKID_VPU_1_DIV:
|
||||
case CLKID_VAPB_0_DIV:
|
||||
case CLKID_VAPB_1_DIV:
|
||||
+ case CLKID_HDMI_DIV:
|
||||
return meson_div_set_rate(clk, id, rate, current_rate);
|
||||
+ case CLKID_HDMI:
|
||||
+ return meson_clk_set_rate_by_id(clk, CLKID_HDMI_DIV,
|
||||
+ rate, current_rate);
|
||||
default:
|
||||
return -ENOENT;
|
||||
}
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,67 +0,0 @@
|
||||
From 1698107823f718396364641b24a2ee9ae5f3c862 Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
Date: Wed, 9 Oct 2024 11:15:21 +0200
|
||||
Subject: [PATCH 10/12] FROMGIT: power/domain: meson-ee-pwrc: make sure to not
|
||||
enable a domain twice
|
||||
|
||||
The upstream Device Tree for GXBB/GXL/G12A was updated with VPU domain
|
||||
shared between the VPU and HDMI node, causing a double enable.
|
||||
|
||||
Simply store the enable state and avoid enabling twice, fixing
|
||||
HDMI output on all platforms.
|
||||
|
||||
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
---
|
||||
drivers/power/domain/meson-ee-pwrc.c | 15 +++++++++++++--
|
||||
1 file changed, 13 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/power/domain/meson-ee-pwrc.c b/drivers/power/domain/meson-ee-pwrc.c
|
||||
index 20e9f32b381..4d9f3bba644 100644
|
||||
--- a/drivers/power/domain/meson-ee-pwrc.c
|
||||
+++ b/drivers/power/domain/meson-ee-pwrc.c
|
||||
@@ -60,6 +60,7 @@ struct meson_ee_pwrc_domain_desc {
|
||||
unsigned int mem_pd_count;
|
||||
struct meson_ee_pwrc_mem_domain *mem_pd;
|
||||
bool (*get_power)(struct power_domain *power_domain);
|
||||
+ bool enabled;
|
||||
};
|
||||
|
||||
struct meson_ee_pwrc_domain_data {
|
||||
@@ -306,6 +307,8 @@ static int meson_ee_pwrc_off(struct power_domain *power_domain)
|
||||
clk_disable_bulk(&priv->clks);
|
||||
}
|
||||
|
||||
+ pwrc_domain->enabled = false;
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -317,6 +320,9 @@ static int meson_ee_pwrc_on(struct power_domain *power_domain)
|
||||
|
||||
pwrc_domain = &priv->data->domains[power_domain->id];
|
||||
|
||||
+ if (pwrc_domain->enabled)
|
||||
+ return 0;
|
||||
+
|
||||
if (pwrc_domain->top_pd)
|
||||
regmap_update_bits(priv->regmap_ao,
|
||||
pwrc_domain->top_pd->sleep_reg,
|
||||
@@ -347,8 +353,13 @@ static int meson_ee_pwrc_on(struct power_domain *power_domain)
|
||||
return ret;
|
||||
}
|
||||
|
||||
- if (pwrc_domain->clk_names_count)
|
||||
- return clk_enable_bulk(&priv->clks);
|
||||
+ if (pwrc_domain->clk_names_count) {
|
||||
+ ret = clk_enable_bulk(&priv->clks);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ pwrc_domain->enabled = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,79 +0,0 @@
|
||||
From b4ca194c66389e2d9f27d3346e93f856aff9120b Mon Sep 17 00:00:00 2001
|
||||
From: Callum Parsey <callum@neoninteger.au>
|
||||
Date: Sat, 12 Oct 2024 08:03:51 +0000
|
||||
Subject: [PATCH 11/12] FROMGIT: configs: meson64: Ensure commands for boot
|
||||
targets are available
|
||||
|
||||
When populating BOOT_TARGET_DEVICES on Amlogic Meson platforms, verify
|
||||
that the shell commands for accessing the relevant media have been
|
||||
enabled in the build configuration.
|
||||
|
||||
This was already being done for USB, NVME and SCSI devices, but not
|
||||
for MMC devices or network boot. This meant that configuring U-Boot
|
||||
without the networking or MMC subsystems/drivers would cause an error
|
||||
to be thrown during preprocessing.
|
||||
|
||||
Signed-off-by: Callum Parsey <callum@neoninteger.au>
|
||||
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
Link: https://lore.kernel.org/r/20241012080340.2596-1-callum@neoninteger.au
|
||||
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
|
||||
---
|
||||
include/configs/meson64.h | 28 +++++++++++++++++++++++-----
|
||||
1 file changed, 23 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/include/configs/meson64.h b/include/configs/meson64.h
|
||||
index 8b6f8159e78..72d3caa30be 100644
|
||||
--- a/include/configs/meson64.h
|
||||
+++ b/include/configs/meson64.h
|
||||
@@ -77,6 +77,15 @@
|
||||
#define BOOTENV_DEV_NAME_USB_DFU(devtypeu, devtypel, instance)
|
||||
#endif
|
||||
|
||||
+#ifdef CONFIG_CMD_MMC
|
||||
+ #define BOOT_TARGET_MMC(func) \
|
||||
+ func(MMC, mmc, 0) \
|
||||
+ func(MMC, mmc, 1) \
|
||||
+ func(MMC, mmc, 2)
|
||||
+#else
|
||||
+ #define BOOT_TARGET_MMC(func)
|
||||
+#endif
|
||||
+
|
||||
#ifdef CONFIG_CMD_USB
|
||||
#define BOOT_TARGET_DEVICES_USB(func) func(USB, usb, 0)
|
||||
#else
|
||||
@@ -95,18 +104,27 @@
|
||||
#define BOOT_TARGET_SCSI(func)
|
||||
#endif
|
||||
|
||||
+#if defined(CONFIG_CMD_DHCP) && defined(CONFIG_CMD_PXE)
|
||||
+ #define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
|
||||
+ #define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na)
|
||||
+#elif defined(CONFIG_CMD_DHCP)
|
||||
+ #define BOOT_TARGET_PXE(func)
|
||||
+ #define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na)
|
||||
+#else
|
||||
+ #define BOOT_TARGET_PXE(func)
|
||||
+ #define BOOT_TARGET_DHCP(func)
|
||||
+#endif
|
||||
+
|
||||
#ifndef BOOT_TARGET_DEVICES
|
||||
#define BOOT_TARGET_DEVICES(func) \
|
||||
func(ROMUSB, romusb, na) \
|
||||
func(USB_DFU, usbdfu, na) \
|
||||
- func(MMC, mmc, 0) \
|
||||
- func(MMC, mmc, 1) \
|
||||
- func(MMC, mmc, 2) \
|
||||
+ BOOT_TARGET_MMC(func) \
|
||||
BOOT_TARGET_DEVICES_USB(func) \
|
||||
BOOT_TARGET_NVME(func) \
|
||||
BOOT_TARGET_SCSI(func) \
|
||||
- func(PXE, pxe, na) \
|
||||
- func(DHCP, dhcp, na)
|
||||
+ BOOT_TARGET_PXE(func) \
|
||||
+ BOOT_TARGET_DHCP(func)
|
||||
#endif
|
||||
|
||||
#define BOOTM_SIZE __stringify(0x1700000)
|
||||
--
|
||||
2.34.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user