mirror of
https://github.com/openwrt/openwrt.git
synced 2025-03-29 07:06:20 +00:00
uboot-bcm4908: add package with BCM4908 U-Boot
New BCM4908 devices come with U-Boot instead of CFE. Firmwares for such devices has to include U-Boot. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This commit is contained in:
parent
25d1c85d1a
commit
0d45e1ea96
48
package/boot/uboot-bcm4908/Makefile
Normal file
48
package/boot/uboot-bcm4908/Makefile
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
|
PKG_RELEASE:=$(AUTORELEASE)
|
||||||
|
|
||||||
|
PKG_SOURCE_PROTO:=git
|
||||||
|
PKG_SOURCE_URL:=https://git.openwrt.org/project/bcm63xx/u-boot.git
|
||||||
|
PKG_SOURCE_DATE:=2022-03-03
|
||||||
|
PKG_SOURCE_VERSION:=92e9eca819c9c898d9d2010e1a217726c42c8c47
|
||||||
|
PKG_MIRROR_HASH:=11c37fe4c18d55e799153600d1cfd8ee9ca7da8326d0024c1d825f4a327c5f0d
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/u-boot.mk
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define U-Boot/Default
|
||||||
|
BUILD_TARGET:=bcm4908
|
||||||
|
UBOOT_IMAGE:=u-boot-nodtb.bin
|
||||||
|
DEFAULT:=y
|
||||||
|
endef
|
||||||
|
|
||||||
|
define U-Boot/bcm4908
|
||||||
|
NAME:=Broadcom's BCM4908
|
||||||
|
UBOOT_CONFIG:=bcm94908
|
||||||
|
endef
|
||||||
|
|
||||||
|
UBOOT_TARGETS := \
|
||||||
|
bcm4908
|
||||||
|
|
||||||
|
define Build/Prepare
|
||||||
|
$(call Build/Prepare/Default)
|
||||||
|
mkdir -p $(PKG_BUILD_DIR)/include/generated/
|
||||||
|
( cd $(PKG_BUILD_DIR)/board/broadcom/bcmbca/httpd/html/ && \
|
||||||
|
xxd -i index.html > ../../../../../include/generated/index.h && \
|
||||||
|
xxd -i flashing.html > ../../../../../include/generated/flashing.h && \
|
||||||
|
xxd -i fail.html > ../../../../../include/generated/fail.h && \
|
||||||
|
xxd -i 404.html > ../../../../../include/generated/404.h )
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/InstallDev
|
||||||
|
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)/u-boot
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/u-boot/
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/u-boot.dtb $(STAGING_DIR_IMAGE)/u-boot/
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/arch/arm/dts/*.dtb $(STAGING_DIR_IMAGE)/u-boot/
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage/U-Boot))
|
@ -0,0 +1,40 @@
|
|||||||
|
From: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||||
|
Date: Mon, 26 Sep 2016 13:05:02 +0900
|
||||||
|
Subject: [PATCH] check-config: allow to complete build even with ad-hoc CONFIG
|
||||||
|
options
|
||||||
|
|
||||||
|
Currently, the check-config.sh terminates the build when unknown
|
||||||
|
ad-hoc options are detected. I think it is too much because we may
|
||||||
|
want to patch config headers locally in a build/deployment project.
|
||||||
|
|
||||||
|
So, let's relax check-config.sh to just warn even if it detects
|
||||||
|
options that are not in the whitelist. Instead, this check can be
|
||||||
|
done at the end of build, along with other checks. It will catch
|
||||||
|
more attention.
|
||||||
|
|
||||||
|
Even with this change, the Buildman tool catches new warnings,
|
||||||
|
so Tom can give NACK to new ad-hoc options.
|
||||||
|
|
||||||
|
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||||
|
---
|
||||||
|
scripts/check-config.sh | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/scripts/check-config.sh
|
||||||
|
+++ b/scripts/check-config.sh
|
||||||
|
@@ -50,14 +50,13 @@ cat `find ${srctree} -name "Kconfig*"` |sed -n \
|
||||||
|
|sort |uniq > ${ok}
|
||||||
|
comm -23 ${suspects} ${ok} >${new_adhoc}
|
||||||
|
if [ -s ${new_adhoc} ]; then
|
||||||
|
- echo >&2 "Error: You must add new CONFIG options using Kconfig"
|
||||||
|
+ echo >&2 "Warning: You must add new CONFIG options using Kconfig"
|
||||||
|
echo >&2 "The following new ad-hoc CONFIG options were detected:"
|
||||||
|
cat >&2 ${new_adhoc}
|
||||||
|
echo >&2
|
||||||
|
echo >&2 "Please add these via Kconfig instead. Find a suitable Kconfig"
|
||||||
|
echo >&2 "file and add a 'config' or 'menuconfig' option."
|
||||||
|
# Don't delete the temporary files in case they are useful
|
||||||
|
- exit 1
|
||||||
|
else
|
||||||
|
rm ${suspects} ${ok} ${new_adhoc}
|
||||||
|
fi
|
@ -0,0 +1,38 @@
|
|||||||
|
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||||
|
Date: Fri, 4 Mar 2022 09:21:32 +0100
|
||||||
|
Subject: [PATCH] configs: bcm94908: unset CONFIG_SPL
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Compiling SPL is always tricky as it needs to fit limited resources.
|
||||||
|
Fortunately in most cases there is no need to replace SPL or TPL while
|
||||||
|
flashing a new firmware.
|
||||||
|
|
||||||
|
Compiling SPL for BCM4908 seems to fail with non-Broadcom toolchain:
|
||||||
|
aarch64-openwrt-linux-musl-ld.bfd: u-boot-spl section `.u_boot_list' will not fit in region `.sram'
|
||||||
|
aarch64-openwrt-linux-musl-ld.bfd: section .bss VMA [00000000822b9000,00000000822b93ef] overlaps section .u_boot_list VMA [00000000822b8f60,00000000822b9a87]
|
||||||
|
aarch64-openwrt-linux-musl-ld.bfd: region `.sram' overflowed by 2696 bytes
|
||||||
|
|
||||||
|
It also requires hashtable.h which has to be generated using some
|
||||||
|
Broadcom's custom perl script that isn't integrated as this point.
|
||||||
|
|
||||||
|
For now just disable SPL and use only last-stage U-Boot that must be
|
||||||
|
shipped with every firmware.
|
||||||
|
|
||||||
|
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||||
|
---
|
||||||
|
configs/bcm94908_defconfig | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/configs/bcm94908_defconfig
|
||||||
|
+++ b/configs/bcm94908_defconfig
|
||||||
|
@@ -21,7 +21,7 @@ CONFIG_SPL_SERIAL_SUPPORT=y
|
||||||
|
CONFIG_TPL_LIBCOMMON_SUPPORT=y
|
||||||
|
CONFIG_TPL_LIBGENERIC_SUPPORT=y
|
||||||
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
|
-CONFIG_SPL=y
|
||||||
|
+# CONFIG_SPL is not set
|
||||||
|
CONFIG_SPL_LIBDISK_SUPPORT=y
|
||||||
|
CONFIG_ENV_VARS_UBOOT_CONFIG=y
|
||||||
|
CONFIG_TPL_SYS_MALLOC_F_LEN=0x11000
|
@ -0,0 +1,55 @@
|
|||||||
|
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||||
|
Date: Fri, 4 Mar 2022 09:23:34 +0100
|
||||||
|
Subject: [PATCH] Assume TPL support for ATF when compiling U-Boot without TPL
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Broadcom's U-Boot behaviour depends on compilation time check whether
|
||||||
|
TPL was compiled with or without ATF support. There is no proper runtime
|
||||||
|
check.
|
||||||
|
|
||||||
|
When compiling just U-Boot (without SPL & TPL) there is no way to tell
|
||||||
|
if it's going to work with TPL with or without ATF support.
|
||||||
|
|
||||||
|
Modify code to blindly assume ATF support in TPL in such cases. It seems
|
||||||
|
to be always true for Broadcom and we need some assumption as we don't
|
||||||
|
deal with compiling SPL or TPL.
|
||||||
|
|
||||||
|
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||||
|
---
|
||||||
|
arch/arm/mach-bcmbca/bcm4908/cpu.c | 2 +-
|
||||||
|
board/broadcom/bcmbca/board.c | 4 ++--
|
||||||
|
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/arch/arm/mach-bcmbca/bcm4908/cpu.c
|
||||||
|
+++ b/arch/arm/mach-bcmbca/bcm4908/cpu.c
|
||||||
|
@@ -138,7 +138,7 @@ int get_nr_cpus()
|
||||||
|
return nr_cpus;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if !defined(CONFIG_TPL_ATF)
|
||||||
|
+#if defined(CONFIG_TPL) && !defined(CONFIG_TPL_ATF)
|
||||||
|
void boot_secondary_cpu(unsigned long vector)
|
||||||
|
{
|
||||||
|
uint32_t cpu, nr_cpus = QUAD_CPUS;
|
||||||
|
--- a/board/broadcom/bcmbca/board.c
|
||||||
|
+++ b/board/broadcom/bcmbca/board.c
|
||||||
|
@@ -103,7 +103,7 @@ void board_spinor_init(void)
|
||||||
|
|
||||||
|
int board_init(void)
|
||||||
|
{
|
||||||
|
-#if !defined(CONFIG_TPL_ATF)
|
||||||
|
+#if defined(CONFIG_TPL) && !defined(CONFIG_TPL_ATF)
|
||||||
|
unsigned long vector;
|
||||||
|
#endif
|
||||||
|
board_sdk_init_e();
|
||||||
|
@@ -121,7 +121,7 @@ int board_init(void)
|
||||||
|
printf("$Uboot: "BUILD_TAG" $\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if !defined(CONFIG_TPL_ATF)
|
||||||
|
+#if defined(CONFIG_TPL) && !defined(CONFIG_TPL_ATF)
|
||||||
|
#if defined(CONFIG_ARM64)
|
||||||
|
vector = (unsigned long)&_start;
|
||||||
|
#else
|
Loading…
x
Reference in New Issue
Block a user