So, I'm trying to fix the problem on am335x_evm (and some family configs) with needing SPL_OF_CONTROL enabled. This is mostly fine just enabling the option, except on am335x_evm itself, which is the kitchen-sink config and overflows memory. I've gone with switching to SPL_OF_PLATDATA there as am335x in general has all of the U_BOOT_DRVINFO entries it needs I believe. But, with the following patch: diff --git a/arch/arm/dts/am335x-evm-u-boot.dtsi b/arch/arm/dts/am335x-evm-u-boot.dtsi index 4cf5f9928d58..514f682cac99 100644 --- a/arch/arm/dts/am335x-evm-u-boot.dtsi +++ b/arch/arm/dts/am335x-evm-u-boot.dtsi @@ -8,6 +8,7 @@ &l4_per { segment@300000 { + u-boot,dm-pre-reloc; target-module@e000 { u-boot,dm-pre-reloc; diff --git a/configs/am335x_boneblack_vboot_defconfig b/configs/am335x_boneblack_vboot_defconfig index a0baeec79edd..ffeefd1a0087 100644 --- a/configs/am335x_boneblack_vboot_defconfig +++ b/configs/am335x_boneblack_vboot_defconfig @@ -31,6 +31,7 @@ CONFIG_CMD_SPL=y # CONFIG_CMD_SETEXPR is not set CONFIG_BOOTP_DNS2=y CONFIG_OF_CONTROL=y +CONFIG_SPL_OF_CONTROL=y CONFIG_ENV_OVERWRITE=y CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_REDUNDAND_ENVIRONMENT=y diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig index a33efff42a74..f35b2a02f56b 100644 --- a/configs/am335x_evm_defconfig +++ b/configs/am335x_evm_defconfig @@ -37,13 +37,16 @@ CONFIG_MTDIDS_DEFAULT="nand0=nand.0" CONFIG_MTDPARTS_DEFAULT="mtdparts=nand.0:128k(NAND.SPL),128k(NAND.SPL.backup1),128k(NAND.SPL.backup2),128k(NAND.SPL.backup3),256k(NAND.u-boot-spl-os),1m(NAND.u-boot),128k(NAND.u-boot-env),128k(NAND.u-boot-env.backup1),8m(NAND.kernel),-(NAND.file-system)" # CONFIG_SPL_EFI_PARTITION is not set CONFIG_OF_CONTROL=y +CONFIG_SPL_OF_CONTROL=y CONFIG_OF_LIST="am335x-evm am335x-bone am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2 am335x-pocketbeagle" +CONFIG_SPL_OF_PLATDATA=y CONFIG_ENV_OVERWRITE=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y CONFIG_SPL_ENV_IS_NOWHERE=y CONFIG_VERSION_VARIABLE=y CONFIG_BOOTP_SEND_HOSTNAME=y +# CONFIG_SPL_SIMPLE_BUS is not set CONFIG_BOOTCOUNT_LIMIT=y CONFIG_CLK=y CONFIG_CLK_CDCE9XX=y diff --git a/configs/am335x_evm_spiboot_defconfig b/configs/am335x_evm_spiboot_defconfig index 8f0c330674a9..4a2a56a9af9e 100644 --- a/configs/am335x_evm_spiboot_defconfig +++ b/configs/am335x_evm_spiboot_defconfig @@ -32,6 +32,7 @@ CONFIG_BOOTP_DNS2=y CONFIG_CMD_MTDPARTS=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_OF_CONTROL=y +CONFIG_SPL_OF_CONTROL=y CONFIG_OF_LIST="am335x-evm am335x-bone am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2 am335x-pocketbeagle" CONFIG_ENV_OVERWRITE=y # CONFIG_ENV_IS_IN_FAT is not set I get the following failure and I don't see how to debug this: DTOC spl/dts/dt-plat.c Traceback (most recent call last): File "./tools/dtoc/dtoc", line 115, in args.phase, instantiate=args.instantiate) File "/home/trini/work/u-boot/u-boot/tools/dtoc/../dtoc/dtb_platdata.py", line 1223, in run_steps outfile.method(plat) File "/home/trini/work/u-boot/u-boot/tools/dtoc/../dtoc/dtb_platdata.py", line 1081, in generate_plat self.output_node_plat(node) File "/home/trini/work/u-boot/u-boot/tools/dtoc/../dtoc/dtb_platdata.py", line 1023, in output_node_plat self._output_values(node) File "/home/trini/work/u-boot/u-boot/tools/dtoc/../dtoc/dtb_platdata.py", line 812, in _output_values self._output_prop(node, node.props[pname]) File "/home/trini/work/u-boot/u-boot/tools/dtoc/../dtoc/dtb_platdata.py", line 798, in _output_prop self._output_list(node, prop) File "/home/trini/work/u-boot/u-boot/tools/dtoc/../dtoc/dtb_platdata.py", line 628, in _output_list vals.append(get_value(prop.type, val)) File "/home/trini/work/u-boot/u-boot/tools/dtoc/../dtoc/dtb_platdata.py", line 126, in get_value val = '%#x' % fdt_util.fdt32_to_cpu(value) File "/home/trini/work/u-boot/u-boot/tools/dtoc/../dtoc/fdt_util.py", line 28, in fdt32_to_cpu return struct.unpack('>I', val)[0] TypeError: a bytes-like object is required, not 'bool' scripts/Makefile.spl:352: recipe for target 'spl/dts/dt-plat.c' failed make[1]: *** [spl/dts/dt-plat.c] Error 1 make[1]: *** Deleting file 'spl/dts/dt-plat.c' Makefile:1999: recipe for target 'spl/u-boot-spl' failed make: *** [spl/u-boot-spl] Error 2 -- Tom