mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-11-04 02:11:25 +01:00 
			
		
		
		
	This commit is contained in:
		
						commit
						fd883eaf5b
					
				
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							@ -918,6 +918,7 @@ endif
 | 
				
			|||||||
endif
 | 
					endif
 | 
				
			||||||
INPUTS-$(CONFIG_TPL) += tpl/u-boot-tpl.bin
 | 
					INPUTS-$(CONFIG_TPL) += tpl/u-boot-tpl.bin
 | 
				
			||||||
INPUTS-$(CONFIG_OF_SEPARATE) += u-boot.dtb
 | 
					INPUTS-$(CONFIG_OF_SEPARATE) += u-boot.dtb
 | 
				
			||||||
 | 
					INPUTS-$(CONFIG_BINMAN_STANDALONE_FDT) += u-boot.dtb
 | 
				
			||||||
ifeq ($(CONFIG_SPL_FRAMEWORK),y)
 | 
					ifeq ($(CONFIG_SPL_FRAMEWORK),y)
 | 
				
			||||||
INPUTS-$(CONFIG_OF_SEPARATE) += u-boot-dtb.img
 | 
					INPUTS-$(CONFIG_OF_SEPARATE) += u-boot-dtb.img
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
@ -1285,6 +1286,7 @@ cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
 | 
				
			|||||||
		-I . -I $(srctree) -I $(srctree)/board/$(BOARDDIR) \
 | 
							-I . -I $(srctree) -I $(srctree)/board/$(BOARDDIR) \
 | 
				
			||||||
		-I arch/$(ARCH)/dts -a of-list=$(CONFIG_OF_LIST) \
 | 
							-I arch/$(ARCH)/dts -a of-list=$(CONFIG_OF_LIST) \
 | 
				
			||||||
		-a atf-bl31-path=${BL31} \
 | 
							-a atf-bl31-path=${BL31} \
 | 
				
			||||||
 | 
							-a opensbi-path=${OPENSBI} \
 | 
				
			||||||
		-a default-dt=$(default_dt) \
 | 
							-a default-dt=$(default_dt) \
 | 
				
			||||||
		-a scp-path=$(SCP) \
 | 
							-a scp-path=$(SCP) \
 | 
				
			||||||
		-a spl-bss-pad=$(if $(CONFIG_SPL_SEPARATE_BSS),,1) \
 | 
							-a spl-bss-pad=$(if $(CONFIG_SPL_SEPARATE_BSS),,1) \
 | 
				
			||||||
@ -1389,7 +1391,7 @@ u-boot-lzma.img: u-boot.bin.lzma FORCE
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
u-boot-dtb.img u-boot.img u-boot.kwb u-boot.pbl u-boot-ivt.img: \
 | 
					u-boot-dtb.img u-boot.img u-boot.kwb u-boot.pbl u-boot-ivt.img: \
 | 
				
			||||||
		$(if $(CONFIG_SPL_LOAD_FIT),u-boot-nodtb.bin \
 | 
							$(if $(CONFIG_SPL_LOAD_FIT),u-boot-nodtb.bin \
 | 
				
			||||||
			$(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_OF_HOSTFILE),dts/dt.dtb) \
 | 
								$(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_OF_HOSTFILE)$(CONFIG_BINMAN_STANDALONE_FDT),dts/dt.dtb) \
 | 
				
			||||||
		,$(UBOOT_BIN)) FORCE
 | 
							,$(UBOOT_BIN)) FORCE
 | 
				
			||||||
	$(call if_changed,mkimage)
 | 
						$(call if_changed,mkimage)
 | 
				
			||||||
	$(BOARD_SIZE_CHECK)
 | 
						$(BOARD_SIZE_CHECK)
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
config GENERIC_RISCV
 | 
					config GENERIC_RISCV
 | 
				
			||||||
	bool
 | 
						bool
 | 
				
			||||||
 | 
						select BINMAN if SPL
 | 
				
			||||||
	select ARCH_EARLY_INIT_R
 | 
						select ARCH_EARLY_INIT_R
 | 
				
			||||||
	imply CPU
 | 
						imply CPU
 | 
				
			||||||
	imply CPU_RISCV
 | 
						imply CPU_RISCV
 | 
				
			||||||
 | 
				
			|||||||
@ -1,9 +1,10 @@
 | 
				
			|||||||
# SPDX-License-Identifier: GPL-2.0+
 | 
					# SPDX-License-Identifier: GPL-2.0+
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dtb-$(CONFIG_TARGET_AX25_AE350) += ae350_32.dtb ae350_64.dtb
 | 
					dtb-$(CONFIG_TARGET_AX25_AE350) += ae350_32.dtb ae350_64.dtb
 | 
				
			||||||
 | 
					dtb-$(CONFIG_TARGET_MICROCHIP_ICICLE) += microchip-mpfs-icicle-kit.dtb
 | 
				
			||||||
 | 
					dtb-$(CONFIG_TARGET_QEMU_VIRT) += qemu-virt.dtb
 | 
				
			||||||
dtb-$(CONFIG_TARGET_SIFIVE_UNLEASHED) += hifive-unleashed-a00.dtb
 | 
					dtb-$(CONFIG_TARGET_SIFIVE_UNLEASHED) += hifive-unleashed-a00.dtb
 | 
				
			||||||
dtb-$(CONFIG_TARGET_SIPEED_MAIX) += k210-maix-bit.dtb
 | 
					dtb-$(CONFIG_TARGET_SIPEED_MAIX) += k210-maix-bit.dtb
 | 
				
			||||||
dtb-$(CONFIG_TARGET_MICROCHIP_ICICLE) += microchip-mpfs-icicle-kit.dtb
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
targets += $(dtb-y)
 | 
					targets += $(dtb-y)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,7 @@
 | 
				
			|||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "binman.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	#address-cells = <1>;
 | 
						#address-cells = <1>;
 | 
				
			||||||
	#size-cells = <1>;
 | 
						#size-cells = <1>;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,7 @@
 | 
				
			|||||||
/dts-v1/;
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "binman.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/ {
 | 
					/ {
 | 
				
			||||||
	#address-cells = <2>;
 | 
						#address-cells = <2>;
 | 
				
			||||||
	#size-cells = <2>;
 | 
						#size-cells = <2>;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										78
									
								
								arch/riscv/dts/binman.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								arch/riscv/dts/binman.dtsi
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					// SPDX-License-Identifier: GPL-2.0+
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (C) 2021, Bin Meng <bmeng.cn@gmail.com>
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <config.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						binman: binman {
 | 
				
			||||||
 | 
							multiple-images;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					&binman {
 | 
				
			||||||
 | 
						itb {
 | 
				
			||||||
 | 
							filename = "u-boot.itb";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							fit {
 | 
				
			||||||
 | 
								description = "Configuration to load OpenSBI before U-Boot";
 | 
				
			||||||
 | 
								#address-cells = <1>;
 | 
				
			||||||
 | 
								fit,fdt-list = "of-list";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								images {
 | 
				
			||||||
 | 
									uboot {
 | 
				
			||||||
 | 
										description = "U-Boot";
 | 
				
			||||||
 | 
										type = "standalone";
 | 
				
			||||||
 | 
										os = "U-Boot";
 | 
				
			||||||
 | 
										arch = "riscv";
 | 
				
			||||||
 | 
										compression = "none";
 | 
				
			||||||
 | 
										load = <CONFIG_SYS_TEXT_BASE>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										uboot_blob: blob-ext {
 | 
				
			||||||
 | 
											filename = "u-boot-nodtb.bin";
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									opensbi {
 | 
				
			||||||
 | 
										description = "OpenSBI fw_dynamic Firmware";
 | 
				
			||||||
 | 
										type = "firmware";
 | 
				
			||||||
 | 
										os = "opensbi";
 | 
				
			||||||
 | 
										arch = "riscv";
 | 
				
			||||||
 | 
										compression = "none";
 | 
				
			||||||
 | 
										load = <CONFIG_SPL_OPENSBI_LOAD_ADDR>;
 | 
				
			||||||
 | 
										entry = <CONFIG_SPL_OPENSBI_LOAD_ADDR>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										opensbi_blob: opensbi {
 | 
				
			||||||
 | 
											filename = "fw_dynamic.bin";
 | 
				
			||||||
 | 
										};
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef CONFIG_OF_PRIOR_STAGE
 | 
				
			||||||
 | 
									@fdt-SEQ {
 | 
				
			||||||
 | 
										description = "NAME";
 | 
				
			||||||
 | 
										type = "flat_dt";
 | 
				
			||||||
 | 
										compression = "none";
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								configurations {
 | 
				
			||||||
 | 
									default = "conf-1";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef CONFIG_OF_PRIOR_STAGE
 | 
				
			||||||
 | 
									@conf-SEQ {
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
									conf-1 {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
										description = "NAME";
 | 
				
			||||||
 | 
										firmware = "opensbi";
 | 
				
			||||||
 | 
										loadables = "uboot";
 | 
				
			||||||
 | 
					#ifndef CONFIG_OF_PRIOR_STAGE
 | 
				
			||||||
 | 
										fdt = "fdt-SEQ";
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
									};
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@ -3,6 +3,7 @@
 | 
				
			|||||||
 * Copyright (C) 2019 Jagan Teki <jagan@amarulasolutions.com>
 | 
					 * Copyright (C) 2019 Jagan Teki <jagan@amarulasolutions.com>
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "binman.dtsi"
 | 
				
			||||||
#include "fu540-c000-u-boot.dtsi"
 | 
					#include "fu540-c000-u-boot.dtsi"
 | 
				
			||||||
#include "fu540-hifive-unleashed-a00-ddr.dtsi"
 | 
					#include "fu540-hifive-unleashed-a00-ddr.dtsi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										8
									
								
								arch/riscv/dts/qemu-virt.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								arch/riscv/dts/qemu-virt.dts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					// SPDX-License-Identifier: GPL-2.0+
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (C) 2021, Bin Meng <bmeng.cn@gmail.com>
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "binman.dtsi"
 | 
				
			||||||
@ -1,100 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
# SPDX-License-Identifier: GPL-2.0+
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# script to generate FIT image source for RISC-V boards with OpenSBI
 | 
					 | 
				
			||||||
# and, optionally, multiple device trees (given on the command line).
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# usage: $0 [<dt_name> [<dt_name] ...]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ -z "$OPENSBI" ] && OPENSBI="fw_dynamic.bin"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ -z "$UBOOT_LOAD_ADDR" ]; then
 | 
					 | 
				
			||||||
	UBOOT_LOAD_ADDR="$(grep "^CONFIG_SYS_TEXT_BASE=" .config | awk 'BEGIN{FS="="} {print $2}')"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ -z "$OPENSBI_LOAD_ADDR" ]; then
 | 
					 | 
				
			||||||
	OPENSBI_LOAD_ADDR="$(grep "^CONFIG_SPL_OPENSBI_LOAD_ADDR=" .config | awk 'BEGIN{FS="="} {print $2}')"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ ! -f $OPENSBI ]; then
 | 
					 | 
				
			||||||
	echo "WARNING: OpenSBI binary \"$OPENSBI\" not found, resulting binary is not functional." >&2
 | 
					 | 
				
			||||||
	OPENSBI=/dev/null
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cat << __HEADER_EOF
 | 
					 | 
				
			||||||
/dts-v1/;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/ {
 | 
					 | 
				
			||||||
	description = "Configuration to load OpenSBI before U-Boot";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	images {
 | 
					 | 
				
			||||||
		uboot {
 | 
					 | 
				
			||||||
			description = "U-Boot";
 | 
					 | 
				
			||||||
			data = /incbin/("u-boot-nodtb.bin");
 | 
					 | 
				
			||||||
			type = "standalone";
 | 
					 | 
				
			||||||
			os = "U-Boot";
 | 
					 | 
				
			||||||
			arch = "riscv";
 | 
					 | 
				
			||||||
			compression = "none";
 | 
					 | 
				
			||||||
			load = <$UBOOT_LOAD_ADDR>;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
		opensbi {
 | 
					 | 
				
			||||||
			description = "RISC-V OpenSBI";
 | 
					 | 
				
			||||||
			data = /incbin/("$OPENSBI");
 | 
					 | 
				
			||||||
			type = "firmware";
 | 
					 | 
				
			||||||
			os = "opensbi";
 | 
					 | 
				
			||||||
			arch = "riscv";
 | 
					 | 
				
			||||||
			compression = "none";
 | 
					 | 
				
			||||||
			load = <$OPENSBI_LOAD_ADDR>;
 | 
					 | 
				
			||||||
			entry = <$OPENSBI_LOAD_ADDR>;
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
__HEADER_EOF
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cnt=1
 | 
					 | 
				
			||||||
for dtname in $*
 | 
					 | 
				
			||||||
do
 | 
					 | 
				
			||||||
	cat << __FDT_IMAGE_EOF
 | 
					 | 
				
			||||||
		fdt_$cnt {
 | 
					 | 
				
			||||||
			description = "$(basename $dtname .dtb)";
 | 
					 | 
				
			||||||
			data = /incbin/("$dtname");
 | 
					 | 
				
			||||||
			type = "flat_dt";
 | 
					 | 
				
			||||||
			compression = "none";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
__FDT_IMAGE_EOF
 | 
					 | 
				
			||||||
cnt=$((cnt+1))
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cat << __CONF_HEADER_EOF
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
	configurations {
 | 
					 | 
				
			||||||
		default = "config_1";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
__CONF_HEADER_EOF
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ $# -eq 0 ]; then
 | 
					 | 
				
			||||||
cat << __CONF_SECTION_EOF
 | 
					 | 
				
			||||||
		config_1 {
 | 
					 | 
				
			||||||
			description = "U-Boot FIT";
 | 
					 | 
				
			||||||
			firmware = "opensbi";
 | 
					 | 
				
			||||||
			loadables = "uboot";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
__CONF_SECTION_EOF
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
cnt=1
 | 
					 | 
				
			||||||
for dtname in $*
 | 
					 | 
				
			||||||
do
 | 
					 | 
				
			||||||
cat << __CONF_SECTION_EOF
 | 
					 | 
				
			||||||
		config_$cnt {
 | 
					 | 
				
			||||||
			description = "$(basename $dtname .dtb)";
 | 
					 | 
				
			||||||
			firmware = "opensbi";
 | 
					 | 
				
			||||||
			loadables = "uboot";
 | 
					 | 
				
			||||||
			fdt = "fdt_$cnt";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
__CONF_SECTION_EOF
 | 
					 | 
				
			||||||
cnt=$((cnt+1))
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cat << __ITS_EOF
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
__ITS_EOF
 | 
					 | 
				
			||||||
@ -31,6 +31,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
 | 
				
			|||||||
	def_bool y
 | 
						def_bool y
 | 
				
			||||||
	select RISCV_NDS
 | 
						select RISCV_NDS
 | 
				
			||||||
	select SUPPORT_SPL
 | 
						select SUPPORT_SPL
 | 
				
			||||||
 | 
						select BINMAN if SPL
 | 
				
			||||||
	imply SMP
 | 
						imply SMP
 | 
				
			||||||
	imply SPL_RAM_SUPPORT
 | 
						imply SPL_RAM_SUPPORT
 | 
				
			||||||
	imply SPL_RAM_DEVICE
 | 
						imply SPL_RAM_DEVICE
 | 
				
			||||||
 | 
				
			|||||||
@ -27,6 +27,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
 | 
				
			|||||||
	def_bool y
 | 
						def_bool y
 | 
				
			||||||
	select SIFIVE_FU540
 | 
						select SIFIVE_FU540
 | 
				
			||||||
	select ENV_IS_IN_SPI_FLASH
 | 
						select ENV_IS_IN_SPI_FLASH
 | 
				
			||||||
 | 
						select BINMAN
 | 
				
			||||||
	imply CMD_DHCP
 | 
						imply CMD_DHCP
 | 
				
			||||||
	imply CMD_EXT2
 | 
						imply CMD_EXT2
 | 
				
			||||||
	imply CMD_EXT4
 | 
						imply CMD_EXT4
 | 
				
			||||||
 | 
				
			|||||||
@ -205,7 +205,7 @@ config SPL_LOAD_FIT
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	  This path has the following limitations:
 | 
						  This path has the following limitations:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	  1. "loadables" images, other than FTDs, which do not have a "load"
 | 
						  1. "loadables" images, other than FDTs, which do not have a "load"
 | 
				
			||||||
	     property will not be loaded. This limitation also applies to FPGA
 | 
						     property will not be loaded. This limitation also applies to FPGA
 | 
				
			||||||
	     images with the correct "compatible" string.
 | 
						     images with the correct "compatible" string.
 | 
				
			||||||
	  2. For FPGA images, only the "compatible" = "u-boot,fpga-legacy"
 | 
						  2. For FPGA images, only the "compatible" = "u-boot,fpga-legacy"
 | 
				
			||||||
@ -274,14 +274,13 @@ config SPL_FIT_SOURCE
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
config USE_SPL_FIT_GENERATOR
 | 
					config USE_SPL_FIT_GENERATOR
 | 
				
			||||||
	bool "Use a script to generate the .its script"
 | 
						bool "Use a script to generate the .its script"
 | 
				
			||||||
	default y if SPL_FIT && !ARCH_SUNXI
 | 
						default y if SPL_FIT && (!ARCH_SUNXI && !RISCV)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config SPL_FIT_GENERATOR
 | 
					config SPL_FIT_GENERATOR
 | 
				
			||||||
	string ".its file generator script for U-Boot FIT image"
 | 
						string ".its file generator script for U-Boot FIT image"
 | 
				
			||||||
	depends on USE_SPL_FIT_GENERATOR
 | 
						depends on USE_SPL_FIT_GENERATOR
 | 
				
			||||||
	default "arch/arm/mach-rockchip/make_fit_atf.py" if SPL_LOAD_FIT && ARCH_ROCKCHIP
 | 
						default "arch/arm/mach-rockchip/make_fit_atf.py" if SPL_LOAD_FIT && ARCH_ROCKCHIP
 | 
				
			||||||
	default "arch/arm/mach-zynqmp/mkimage_fit_atf.sh" if SPL_LOAD_FIT && ARCH_ZYNQMP
 | 
						default "arch/arm/mach-zynqmp/mkimage_fit_atf.sh" if SPL_LOAD_FIT && ARCH_ZYNQMP
 | 
				
			||||||
	default "arch/riscv/lib/mkimage_fit_opensbi.sh" if SPL_LOAD_FIT && RISCV
 | 
					 | 
				
			||||||
	help
 | 
						help
 | 
				
			||||||
	  Specifies a (platform specific) script file to generate the FIT
 | 
						  Specifies a (platform specific) script file to generate the FIT
 | 
				
			||||||
	  source file used to build the U-Boot FIT image file. This gets
 | 
						  source file used to build the U-Boot FIT image file. This gets
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,9 @@ CONFIG_RISCV=y
 | 
				
			|||||||
CONFIG_SYS_TEXT_BASE=0x01200000
 | 
					CONFIG_SYS_TEXT_BASE=0x01200000
 | 
				
			||||||
CONFIG_NR_DRAM_BANKS=2
 | 
					CONFIG_NR_DRAM_BANKS=2
 | 
				
			||||||
CONFIG_ENV_SECT_SIZE=0x1000
 | 
					CONFIG_ENV_SECT_SIZE=0x1000
 | 
				
			||||||
 | 
					CONFIG_SPL_SYS_MALLOC_F_LEN=0x100000
 | 
				
			||||||
CONFIG_SPL=y
 | 
					CONFIG_SPL=y
 | 
				
			||||||
 | 
					CONFIG_DEFAULT_DEVICE_TREE="ae350_32"
 | 
				
			||||||
CONFIG_TARGET_AX25_AE350=y
 | 
					CONFIG_TARGET_AX25_AE350=y
 | 
				
			||||||
CONFIG_RISCV_SMODE=y
 | 
					CONFIG_RISCV_SMODE=y
 | 
				
			||||||
CONFIG_DISTRO_DEFAULTS=y
 | 
					CONFIG_DISTRO_DEFAULTS=y
 | 
				
			||||||
 | 
				
			|||||||
@ -2,8 +2,10 @@ CONFIG_RISCV=y
 | 
				
			|||||||
CONFIG_SYS_TEXT_BASE=0x01200000
 | 
					CONFIG_SYS_TEXT_BASE=0x01200000
 | 
				
			||||||
CONFIG_NR_DRAM_BANKS=2
 | 
					CONFIG_NR_DRAM_BANKS=2
 | 
				
			||||||
CONFIG_ENV_SECT_SIZE=0x1000
 | 
					CONFIG_ENV_SECT_SIZE=0x1000
 | 
				
			||||||
 | 
					CONFIG_SPL_SYS_MALLOC_F_LEN=0x100000
 | 
				
			||||||
CONFIG_SPL_TEXT_BASE=0x80000000
 | 
					CONFIG_SPL_TEXT_BASE=0x80000000
 | 
				
			||||||
CONFIG_SPL=y
 | 
					CONFIG_SPL=y
 | 
				
			||||||
 | 
					CONFIG_DEFAULT_DEVICE_TREE="ae350_32"
 | 
				
			||||||
CONFIG_TARGET_AX25_AE350=y
 | 
					CONFIG_TARGET_AX25_AE350=y
 | 
				
			||||||
CONFIG_RISCV_SMODE=y
 | 
					CONFIG_RISCV_SMODE=y
 | 
				
			||||||
CONFIG_XIP=y
 | 
					CONFIG_XIP=y
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,9 @@ CONFIG_RISCV=y
 | 
				
			|||||||
CONFIG_SYS_TEXT_BASE=0x01200000
 | 
					CONFIG_SYS_TEXT_BASE=0x01200000
 | 
				
			||||||
CONFIG_NR_DRAM_BANKS=2
 | 
					CONFIG_NR_DRAM_BANKS=2
 | 
				
			||||||
CONFIG_ENV_SECT_SIZE=0x1000
 | 
					CONFIG_ENV_SECT_SIZE=0x1000
 | 
				
			||||||
 | 
					CONFIG_SPL_SYS_MALLOC_F_LEN=0x100000
 | 
				
			||||||
CONFIG_SPL=y
 | 
					CONFIG_SPL=y
 | 
				
			||||||
 | 
					CONFIG_DEFAULT_DEVICE_TREE="ae350_64"
 | 
				
			||||||
CONFIG_TARGET_AX25_AE350=y
 | 
					CONFIG_TARGET_AX25_AE350=y
 | 
				
			||||||
CONFIG_ARCH_RV64I=y
 | 
					CONFIG_ARCH_RV64I=y
 | 
				
			||||||
CONFIG_RISCV_SMODE=y
 | 
					CONFIG_RISCV_SMODE=y
 | 
				
			||||||
 | 
				
			|||||||
@ -2,8 +2,10 @@ CONFIG_RISCV=y
 | 
				
			|||||||
CONFIG_SYS_TEXT_BASE=0x01200000
 | 
					CONFIG_SYS_TEXT_BASE=0x01200000
 | 
				
			||||||
CONFIG_NR_DRAM_BANKS=2
 | 
					CONFIG_NR_DRAM_BANKS=2
 | 
				
			||||||
CONFIG_ENV_SECT_SIZE=0x1000
 | 
					CONFIG_ENV_SECT_SIZE=0x1000
 | 
				
			||||||
 | 
					CONFIG_SPL_SYS_MALLOC_F_LEN=0x100000
 | 
				
			||||||
CONFIG_SPL_TEXT_BASE=0x80000000
 | 
					CONFIG_SPL_TEXT_BASE=0x80000000
 | 
				
			||||||
CONFIG_SPL=y
 | 
					CONFIG_SPL=y
 | 
				
			||||||
 | 
					CONFIG_DEFAULT_DEVICE_TREE="ae350_64"
 | 
				
			||||||
CONFIG_TARGET_AX25_AE350=y
 | 
					CONFIG_TARGET_AX25_AE350=y
 | 
				
			||||||
CONFIG_ARCH_RV64I=y
 | 
					CONFIG_ARCH_RV64I=y
 | 
				
			||||||
CONFIG_RISCV_SMODE=y
 | 
					CONFIG_RISCV_SMODE=y
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,7 @@ CONFIG_RISCV=y
 | 
				
			|||||||
CONFIG_NR_DRAM_BANKS=1
 | 
					CONFIG_NR_DRAM_BANKS=1
 | 
				
			||||||
CONFIG_ENV_SIZE=0x20000
 | 
					CONFIG_ENV_SIZE=0x20000
 | 
				
			||||||
CONFIG_SPL=y
 | 
					CONFIG_SPL=y
 | 
				
			||||||
 | 
					CONFIG_DEFAULT_DEVICE_TREE="qemu-virt"
 | 
				
			||||||
CONFIG_TARGET_QEMU_VIRT=y
 | 
					CONFIG_TARGET_QEMU_VIRT=y
 | 
				
			||||||
CONFIG_RISCV_SMODE=y
 | 
					CONFIG_RISCV_SMODE=y
 | 
				
			||||||
CONFIG_DISTRO_DEFAULTS=y
 | 
					CONFIG_DISTRO_DEFAULTS=y
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,7 @@ CONFIG_RISCV=y
 | 
				
			|||||||
CONFIG_NR_DRAM_BANKS=1
 | 
					CONFIG_NR_DRAM_BANKS=1
 | 
				
			||||||
CONFIG_ENV_SIZE=0x20000
 | 
					CONFIG_ENV_SIZE=0x20000
 | 
				
			||||||
CONFIG_SPL=y
 | 
					CONFIG_SPL=y
 | 
				
			||||||
 | 
					CONFIG_DEFAULT_DEVICE_TREE="qemu-virt"
 | 
				
			||||||
CONFIG_TARGET_QEMU_VIRT=y
 | 
					CONFIG_TARGET_QEMU_VIRT=y
 | 
				
			||||||
CONFIG_ARCH_RV64I=y
 | 
					CONFIG_ARCH_RV64I=y
 | 
				
			||||||
CONFIG_RISCV_SMODE=y
 | 
					CONFIG_RISCV_SMODE=y
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										18
									
								
								dts/Kconfig
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								dts/Kconfig
									
									
									
									
									
								
							@ -19,6 +19,24 @@ config BINMAN
 | 
				
			|||||||
	bool
 | 
						bool
 | 
				
			||||||
	select DTOC
 | 
						select DTOC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config BINMAN_STANDALONE_FDT
 | 
				
			||||||
 | 
						bool
 | 
				
			||||||
 | 
						depends on BINMAN
 | 
				
			||||||
 | 
						default y if OF_BOARD || OF_PRIOR_STAGE
 | 
				
			||||||
 | 
						help
 | 
				
			||||||
 | 
						  This option tells U-Boot build system that a standalone device tree
 | 
				
			||||||
 | 
						  source is explicitly required when using binman to package U-Boot.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  This is not necessary in a common scenario where a device tree source
 | 
				
			||||||
 | 
						  that contains the binman node is provided in the arch/<arch>/dts
 | 
				
			||||||
 | 
						  directory for a specific board. Such device tree sources are built for
 | 
				
			||||||
 | 
						  OF_SEPARATE or OF_EMBED. However for a scenario like the board device
 | 
				
			||||||
 | 
						  tree blob is not provided in the U-Boot build tree, but fed to U-Boot
 | 
				
			||||||
 | 
						  in the runtime, e.g.: in the OF_PRIOR_STAGE case that it is passed by
 | 
				
			||||||
 | 
						  a prior stage bootloader. For such scenario, a standalone device tree
 | 
				
			||||||
 | 
						  blob containing binman node to describe how to package U-Boot should
 | 
				
			||||||
 | 
						  be provided explicitly.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
menu "Device Tree Control"
 | 
					menu "Device Tree Control"
 | 
				
			||||||
	depends on SUPPORT_OF_CONTROL
 | 
						depends on SUPPORT_OF_CONTROL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -25,7 +25,7 @@ config BCH
 | 
				
			|||||||
config BINMAN_FDT
 | 
					config BINMAN_FDT
 | 
				
			||||||
	bool "Allow access to binman information in the device tree"
 | 
						bool "Allow access to binman information in the device tree"
 | 
				
			||||||
	depends on BINMAN && DM && OF_CONTROL
 | 
						depends on BINMAN && DM && OF_CONTROL
 | 
				
			||||||
	default y
 | 
						default y if OF_SEPARATE || OF_EMBED
 | 
				
			||||||
	help
 | 
						help
 | 
				
			||||||
	  This enables U-Boot to access information about binman entries,
 | 
						  This enables U-Boot to access information about binman entries,
 | 
				
			||||||
	  stored in the device tree in a binman node. Typical uses are to
 | 
						  stored in the device tree in a binman node. Typical uses are to
 | 
				
			||||||
 | 
				
			|||||||
@ -232,6 +232,30 @@ You can use other, more specific CONFIG options - see 'Automatic .dtsi
 | 
				
			|||||||
inclusion' below.
 | 
					inclusion' below.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Using binman with OF_BOARD or OF_PRIOR_STAGE
 | 
				
			||||||
 | 
					--------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Normally binman is used with a board configured with OF_SEPARATE or OF_EMBED.
 | 
				
			||||||
 | 
					This is a typical scenario where a device tree source that contains the binman
 | 
				
			||||||
 | 
					node is provided in the arch/<arch>/dts directory for a specific board.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					However for a board configured with OF_BOARD or OF_PRIOR_STAGE, no device tree
 | 
				
			||||||
 | 
					blob is provided in the U-Boot build phase hence the binman node information
 | 
				
			||||||
 | 
					is not available. In order to support such use case, a new Kconfig option
 | 
				
			||||||
 | 
					BINMAN_STANDALONE_FDT is introduced, to tell the build system that a standalone
 | 
				
			||||||
 | 
					device tree blob containing binman node is explicitly required.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note there is a Kconfig option BINMAN_FDT which enables U-Boot run time to
 | 
				
			||||||
 | 
					access information about binman entries, stored in the device tree in a binman
 | 
				
			||||||
 | 
					node. Generally speaking, this option makes sense for OF_SEPARATE or OF_EMBED.
 | 
				
			||||||
 | 
					For the other OF_CONTROL methods, it's quite possible binman node is not
 | 
				
			||||||
 | 
					available as binman is invoked during the build phase, thus this option is not
 | 
				
			||||||
 | 
					turned on by default for these OF_CONTROL methods.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					See qemu-riscv64_spl_defconfig for an example of how binman is used with
 | 
				
			||||||
 | 
					OF_PRIOR_STAGE to generate u-boot.itb image.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Access to binman entry offsets at run time (symbols)
 | 
					Access to binman entry offsets at run time (symbols)
 | 
				
			||||||
----------------------------------------------------
 | 
					----------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -322,9 +346,9 @@ Sometimes it is useful to pass binman the value of an entry property from the
 | 
				
			|||||||
command line. For example some entries need access to files and it is not
 | 
					command line. For example some entries need access to files and it is not
 | 
				
			||||||
always convenient to put these filenames in the image definition (device tree).
 | 
					always convenient to put these filenames in the image definition (device tree).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The-a option supports this::
 | 
					The -a option supports this::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    -a<prop>=<value>
 | 
					    -a <prop>=<value>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
where::
 | 
					where::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -761,6 +761,19 @@ binman.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Entry: opensbi: RISC-V OpenSBI fw_dynamic blob
 | 
				
			||||||
 | 
					----------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Properties / Entry arguments:
 | 
				
			||||||
 | 
					    - opensbi-path: Filename of file to read into entry. This is typically
 | 
				
			||||||
 | 
					        called fw_dynamic.bin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This entry holds the run-time firmware, typically started by U-Boot SPL.
 | 
				
			||||||
 | 
					See the U-Boot README for your architecture or board for how to use it. See
 | 
				
			||||||
 | 
					https://github.com/riscv/opensbi for more information about OpenSBI.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Entry: powerpc-mpc85xx-bootpg-resetvec: PowerPC mpc85xx bootpg + resetvec code for U-Boot
 | 
					Entry: powerpc-mpc85xx-bootpg-resetvec: PowerPC mpc85xx bootpg + resetvec code for U-Boot
 | 
				
			||||||
-----------------------------------------------------------------------------------------
 | 
					-----------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,7 @@
 | 
				
			|||||||
# Copyright 2020 Google LLC
 | 
					# Copyright 2020 Google LLC
 | 
				
			||||||
# Written by Simon Glass <sjg@chromium.org>
 | 
					# Written by Simon Glass <sjg@chromium.org>
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Entry-type module for Intel Management Engine binary blob
 | 
					# Entry-type module for ARM Trusted Firmware binary blob
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from binman.etype.blob_named_by_arg import Entry_blob_named_by_arg
 | 
					from binman.etype.blob_named_by_arg import Entry_blob_named_by_arg
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										23
									
								
								tools/binman/etype/opensbi.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								tools/binman/etype/opensbi.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					# SPDX-License-Identifier: GPL-2.0+
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Copyright (C) 2021, Bin Meng <bmeng.cn@gmail.com>
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Entry-type module for RISC-V OpenSBI binary blob
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from binman.etype.blob_named_by_arg import Entry_blob_named_by_arg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Entry_opensbi(Entry_blob_named_by_arg):
 | 
				
			||||||
 | 
					    """RISC-V OpenSBI fw_dynamic blob
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Properties / Entry arguments:
 | 
				
			||||||
 | 
					        - opensbi-path: Filename of file to read into entry. This is typically
 | 
				
			||||||
 | 
					            called fw_dynamic.bin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    This entry holds the run-time firmware, typically started by U-Boot SPL.
 | 
				
			||||||
 | 
					    See the U-Boot README for your architecture or board for how to use it. See
 | 
				
			||||||
 | 
					    https://github.com/riscv/opensbi for more information about OpenSBI.
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    def __init__(self, section, etype, node):
 | 
				
			||||||
 | 
					        super().__init__(section, etype, node, 'opensbi')
 | 
				
			||||||
 | 
					        self.external = True
 | 
				
			||||||
@ -76,6 +76,7 @@ FSP_M_DATA            = b'fsp_m'
 | 
				
			|||||||
FSP_S_DATA            = b'fsp_s'
 | 
					FSP_S_DATA            = b'fsp_s'
 | 
				
			||||||
FSP_T_DATA            = b'fsp_t'
 | 
					FSP_T_DATA            = b'fsp_t'
 | 
				
			||||||
ATF_BL31_DATA         = b'bl31'
 | 
					ATF_BL31_DATA         = b'bl31'
 | 
				
			||||||
 | 
					OPENSBI_DATA          = b'opensbi'
 | 
				
			||||||
SCP_DATA              = b'scp'
 | 
					SCP_DATA              = b'scp'
 | 
				
			||||||
TEST_FDT1_DATA        = b'fdt1'
 | 
					TEST_FDT1_DATA        = b'fdt1'
 | 
				
			||||||
TEST_FDT2_DATA        = b'test-fdt2'
 | 
					TEST_FDT2_DATA        = b'test-fdt2'
 | 
				
			||||||
@ -178,6 +179,7 @@ class TestFunctional(unittest.TestCase):
 | 
				
			|||||||
        TestFunctional._MakeInputFile('compress', COMPRESS_DATA)
 | 
					        TestFunctional._MakeInputFile('compress', COMPRESS_DATA)
 | 
				
			||||||
        TestFunctional._MakeInputFile('compress_big', COMPRESS_DATA_BIG)
 | 
					        TestFunctional._MakeInputFile('compress_big', COMPRESS_DATA_BIG)
 | 
				
			||||||
        TestFunctional._MakeInputFile('bl31.bin', ATF_BL31_DATA)
 | 
					        TestFunctional._MakeInputFile('bl31.bin', ATF_BL31_DATA)
 | 
				
			||||||
 | 
					        TestFunctional._MakeInputFile('fw_dynamic.bin', OPENSBI_DATA)
 | 
				
			||||||
        TestFunctional._MakeInputFile('scp.bin', SCP_DATA)
 | 
					        TestFunctional._MakeInputFile('scp.bin', SCP_DATA)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Add a few .dtb files for testing
 | 
					        # Add a few .dtb files for testing
 | 
				
			||||||
@ -3826,7 +3828,7 @@ class TestFunctional(unittest.TestCase):
 | 
				
			|||||||
            'default-dt': 'test-fdt2',
 | 
					            'default-dt': 'test-fdt2',
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        data = self._DoReadFileDtb(
 | 
					        data = self._DoReadFileDtb(
 | 
				
			||||||
            '172_fit_fdt.dts',
 | 
					            '170_fit_fdt.dts',
 | 
				
			||||||
            entry_args=entry_args,
 | 
					            entry_args=entry_args,
 | 
				
			||||||
            extra_indirs=[os.path.join(self._indir, TEST_FDT_SUBDIR)])[0]
 | 
					            extra_indirs=[os.path.join(self._indir, TEST_FDT_SUBDIR)])[0]
 | 
				
			||||||
        self.assertEqual(U_BOOT_NODTB_DATA, data[-len(U_BOOT_NODTB_DATA):])
 | 
					        self.assertEqual(U_BOOT_NODTB_DATA, data[-len(U_BOOT_NODTB_DATA):])
 | 
				
			||||||
@ -3848,7 +3850,7 @@ class TestFunctional(unittest.TestCase):
 | 
				
			|||||||
    def testFitFdtMissingList(self):
 | 
					    def testFitFdtMissingList(self):
 | 
				
			||||||
        """Test handling of a missing 'of-list' entry arg"""
 | 
					        """Test handling of a missing 'of-list' entry arg"""
 | 
				
			||||||
        with self.assertRaises(ValueError) as e:
 | 
					        with self.assertRaises(ValueError) as e:
 | 
				
			||||||
            self._DoReadFile('172_fit_fdt.dts')
 | 
					            self._DoReadFile('170_fit_fdt.dts')
 | 
				
			||||||
        self.assertIn("Generator node requires 'of-list' entry argument",
 | 
					        self.assertIn("Generator node requires 'of-list' entry argument",
 | 
				
			||||||
                      str(e.exception))
 | 
					                      str(e.exception))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -3871,7 +3873,7 @@ class TestFunctional(unittest.TestCase):
 | 
				
			|||||||
        entry_args = {
 | 
					        entry_args = {
 | 
				
			||||||
            'of-list': '',
 | 
					            'of-list': '',
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        data = self._DoReadFileDtb('172_fit_fdt.dts', entry_args=entry_args)[0]
 | 
					        data = self._DoReadFileDtb('170_fit_fdt.dts', entry_args=entry_args)[0]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def testFitFdtMissing(self):
 | 
					    def testFitFdtMissing(self):
 | 
				
			||||||
        """Test handling of a missing 'default-dt' entry arg"""
 | 
					        """Test handling of a missing 'default-dt' entry arg"""
 | 
				
			||||||
@ -3880,7 +3882,7 @@ class TestFunctional(unittest.TestCase):
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        with self.assertRaises(ValueError) as e:
 | 
					        with self.assertRaises(ValueError) as e:
 | 
				
			||||||
            self._DoReadFileDtb(
 | 
					            self._DoReadFileDtb(
 | 
				
			||||||
                '172_fit_fdt.dts',
 | 
					                '170_fit_fdt.dts',
 | 
				
			||||||
                entry_args=entry_args,
 | 
					                entry_args=entry_args,
 | 
				
			||||||
                extra_indirs=[os.path.join(self._indir, TEST_FDT_SUBDIR)])[0]
 | 
					                extra_indirs=[os.path.join(self._indir, TEST_FDT_SUBDIR)])[0]
 | 
				
			||||||
        self.assertIn("Generated 'default' node requires default-dt entry argument",
 | 
					        self.assertIn("Generated 'default' node requires default-dt entry argument",
 | 
				
			||||||
@ -3894,7 +3896,7 @@ class TestFunctional(unittest.TestCase):
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        with self.assertRaises(ValueError) as e:
 | 
					        with self.assertRaises(ValueError) as e:
 | 
				
			||||||
            self._DoReadFileDtb(
 | 
					            self._DoReadFileDtb(
 | 
				
			||||||
                '172_fit_fdt.dts',
 | 
					                '170_fit_fdt.dts',
 | 
				
			||||||
                entry_args=entry_args,
 | 
					                entry_args=entry_args,
 | 
				
			||||||
                extra_indirs=[os.path.join(self._indir, TEST_FDT_SUBDIR)])[0]
 | 
					                extra_indirs=[os.path.join(self._indir, TEST_FDT_SUBDIR)])[0]
 | 
				
			||||||
        self.assertIn("default-dt entry argument 'test-fdt3' not found in fdt list: test-fdt1, test-fdt2",
 | 
					        self.assertIn("default-dt entry argument 'test-fdt3' not found in fdt list: test-fdt1, test-fdt2",
 | 
				
			||||||
@ -4535,5 +4537,10 @@ class TestFunctional(unittest.TestCase):
 | 
				
			|||||||
        expected += tools.GetBytes(0, 88 - len(expected)) + U_BOOT_NODTB_DATA
 | 
					        expected += tools.GetBytes(0, 88 - len(expected)) + U_BOOT_NODTB_DATA
 | 
				
			||||||
        self.assertEqual(expected, data)
 | 
					        self.assertEqual(expected, data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def testPackOpenSBI(self):
 | 
				
			||||||
 | 
					        """Test that an image with an OpenSBI binary can be created"""
 | 
				
			||||||
 | 
					        data = self._DoReadFile('201_opensbi.dts')
 | 
				
			||||||
 | 
					        self.assertEqual(OPENSBI_DATA, data[:len(OPENSBI_DATA)])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == "__main__":
 | 
					if __name__ == "__main__":
 | 
				
			||||||
    unittest.main()
 | 
					    unittest.main()
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										14
									
								
								tools/binman/test/201_opensbi.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								tools/binman/test/201_opensbi.dts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					// SPDX-License-Identifier: GPL-2.0+
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						#address-cells = <1>;
 | 
				
			||||||
 | 
						#size-cells = <1>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						binman {
 | 
				
			||||||
 | 
							opensbi {
 | 
				
			||||||
 | 
								filename = "fw_dynamic.bin";
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user