This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
I'm trying to perform an early boot of the MCU-R5F (boot MCU-R5F before linux) without success.
Basically, I'm trying to replicate the booting method showed in the below image, where the WKUP-R5F releases the MCU reset before booting Linux.
I modified my R5 device tree with the alias of my new remoteproc and added the R5F driver in the SPL defconfig, but I can't get it to initialize.
I have this log:
U-Boot SPL 2023.04 (Feb 28 2024 - 18:30:33 +0000)
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.1.8--v09.01.08 (Kool Koala)')
SPL initial stack usage: 17040 bytes
Trying to boot from MMC1
Authentication passed
Authentication passed
Authentication passed
rproc_pre_probe: 'a53@0': using fdt
k3_arm64 a53@0: k3_arm64_probe
k3_arm64 a53@0: k3_arm64_of_to_priv
k3_arm64 a53@0: ti_sci_proc_of_to_priv
k3_arm64 a53@0: Remoteproc successfully probed
k3_arm64 a53@0: k3_arm64_init
k3_arm64 a53@0: k3_arm64_init: rproc successfully initialized
rproc_load: Loading to 'a53@0' from address 0x00000000 size of 2658664448 bytes
k3_arm64 a53@0: k3_arm64_load addr = 0x9e780000, size = 0x200
ti_sci_proc_request: proc_id = 32
k3_arm64 a53@0: GTC RATE= 200000000
ti_sci_proc_set_config: proc_id = 32, boot_vector = 0xx, cfg_set = 0x43c12c61, cfg_clr = 0x9e780000
Authentication passed
Authentication passed
Starting ATF on ARM64 core...
Are the steps executed correct? I couldn't find documentation regarding this.
Thanks,
Franco
Hello Franco,
I see SBL boot mentioned in your graphic, but SPL boot mentioned in your boot logs. Are you booting the processor with SPL boot or SBL boot?
If you are using SPL boot, it seems like you should be able to initialize the MCU R5F using the uboot rproc driver, as documented here:
https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/09_01_00_08/exports/docs/linux/Foundational_Components/U-Boot/UG-RemoteProc.html
SBL should also be able to initialize a remote core. Sample documentation here:
https://software-dl.ti.com/mcu-plus-sdk/esd/AM62PX/09_01_00_39/exports/docs/api_guide_am62px/EXAMPLES_DRIVERS_SBL_EMMC_LINUX_MULTISTAGE.html
Regards,
Nick
Hello,
Indeed, in the log I was using SPL boot.
I tried to follow the steps mentioned in the guide. I can see the devices from the uBoot prompt, but I can't load the image because I have issues loading the partition (I'm using Android partitions).
To do it from SBL, I still have some problems booting using the Android partitions.
Hello Franco,
I do not have any Android experience, but I'll see what I can do here to help.
Is there a different region of DDR that uboot is allowed to use?
The specific DDR address does not really matter here. Uboot cannot load the binary directly from the SD card into the remote core, so the binary is copied into DDR as a "middle step", and then loaded from DDR into the remote core.
Regards,
Nick
Hello Nick,
Yes, I understand. At the step where it failed, I must load the binary from the eMMC to the DDR. The next step would be to instruct the rproc driver to read it from there.
I understand that the problem lies in the partition format.
Hello Franco,
Let me know if you need me to pass your thread over to our Android guy for additional comments. Otherwise, I'll hang onto the thread if you have additional "general remote core" questions.
Regards,
Nick