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>
(cherry picked from commit 0d45e1ea96)
			
			
This commit is contained in:
		
							
								
								
									
										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,24 @@ | ||||
| From 8efe417aa9de654425cc01d0fc93be355a3f648d Mon Sep 17 00:00:00 2001 | ||||
| From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> | ||||
| Date: Wed, 13 Oct 2021 11:04:45 +0200 | ||||
| Subject: [PATCH] tools: fix mkimage static compilation | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
|  | ||||
| Signed-off-by: Rafał Miłecki <rafal@milecki.pl> | ||||
| --- | ||||
|  tools/Makefile | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
|  | ||||
| --- a/tools/Makefile | ||||
| +++ b/tools/Makefile | ||||
| @@ -157,7 +157,7 @@ ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CON | ||||
|  HOSTCFLAGS_kwbimage.o += \ | ||||
|  	$(shell pkg-config --cflags libssl libcrypto 2> /dev/null || echo "") | ||||
|  HOSTLOADLIBES_mkimage += \ | ||||
| -	$(shell pkg-config --libs libssl libcrypto 2> /dev/null || echo "-lssl -lcrypto") | ||||
| +	$(shell pkg-config --libs --static libssl libcrypto 2> /dev/null || echo "-lssl -lcrypto -lpthread") | ||||
|   | ||||
|  # OS X deprecate openssl in favour of CommonCrypto, supress deprecation | ||||
|  # warnings on those systems | ||||
| @@ -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 | ||||
		Reference in New Issue
	
	Block a user
	 Rafał Miłecki
					Rafał Miłecki