Hello,

I am booting a AM4378 platform and am running in to some issues.

I have modeled my board after am43xx_evm_defconfig and have achieved an 
executable SPL that I can debug with JTAG. 
>U-Boot SPL 2020.01-g2781231a33 (Sep 01 2021 - 12:00:00 +0000)
>WDT:   Not found!
>SPL: Unsupported Boot Device!
>SPL: failed to boot from all boot devices

After programming to the NOR that is connected via QSPI, I am able to break at 
the QSPI memory mapped location (0x30000000) on boot and single step through 
instructions that I know resemble u-boot-spl (haven’t gotten symbol loading to 
work right with the memory map location). However I am running in to trouble as 
at some point in the boot a data abort is thrown and I haven’t figured out 
why/where yet.

Before I spend too long trying to debug this I wanted to ask a few questions:

* Is CONFIG_QSPI_BOOT required to boot an AM4378? Quoting the config, “This is 
not a must, some SoCs need this, some not.” My searches only see it coming up 
in regard to TI_SECURE_DEVICE, which I am not attempting to do anything with 
(i.e. not doing a secure boot).
* am43xx_evm_qspiboot_defconfig Doesn’t use an SPL:
* * Can it?
* * Is an SPL necessary? My u-boot image currently exceeds available on chip 
memory and I thought an SPL would be required so that u-boot would have RAM 
available to it. Does the “eXecute in place” work around this on this platform 
such that you can skip using an SPL?  DDR will get initialized by u-boot since 
it is executing from the NOR and didn’t have to be loaded in to memory, then it 
can init the DDR so it has the room to load Linux later on.
* * When I build this config with CONFIG_SPL=y I get the error:
> arm-oe-linux-gnueabi-ld.bfd: invalid length for memory region .sram
But it does look as if the link script wasn’t processed correctly for this 
build configuration, as all the variables aren’t filled in:
> MEMORY { .sram : ORIGIN = 0x402F4000, LENGTH = IMAGE_MAX_SIZE }
> MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, LENGTH = 
> CONFIG_SPL_BSS_MAX_SIZE }
> OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
* Are these options and the extra options redundant or required? 
CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=1,QSPI,QSPI_BOOT"; CONFIG_QSPI_BOOT=y; I 
wasn’t able to locate any CONFIG_QSPI in the code, only QSPI_BOOT.
* I am currently building with CONFIG_OF_EMBED=y in order to get the above 
output from the UART. I understand this makes the DTB encoded in the executable 
ELF that I am debugging. Does this also mean the same for a binary that is 
flashed? Or does a flashed binary have to use OF_EMBED=n and the DTB appended 
to the end of the image (u-boot[-spl].bin, versus (u-boot[-spl]-no-dtb.bin). 

I appreciate any insight anyone might be able to offer.
Thanks,
Mike
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#14812): 
https://lists.yoctoproject.org/g/meta-ti/message/14812
Mute This Topic: https://lists.yoctoproject.org/mt/91653948/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to