Hello, we have a custom board based on a Xavier NX SoM.
During the boot process the rtcpu-rce driver sets up an IVC/HSP channel used for IPC to the Realtime Camera Engine. During the rtcpu-rce driver probe the driver pushes a message into the channel instructing the RCE to load its firmware, however the HSP never gets a response from the RCE, which results in several hsp-vm1 timeouts. The rtcpu-rce driver attempts to reset the RCE several times but never gets a response from the RCE, which results in a boot sync failure.
Xavier NX TRM doesn’t provide any RCE documentation.
We are using a Xavier NX SoM with eMMC (p3668-0001). A decompiled version of our DTB is attached as well as the config files and XML flash files. I’ve also attached a file called install.log which contains the output diagnostics from the flash tools.
After flashing the rtcpu-rce fails to load and start it’s firmware. The rtcpu-rce fails to respond to the hsp-vm1 FW_HASH command resulting in the following errors in the logs:
We are using L4T version r35.1. We use the jetson-xavier-nx-sting-chassis-carrier.conf and sting-chassis-carrier-p3668.conf.common which are based on the DevKit’s jetson-xavier-nx-devkit-emmc.conf and p3668.conf.common files.
Our .conf files use a smaller ROOTFS and add a few more partitions. The diffs between the sting-chassis-carrier-p3668.conf.common and jetson-xavier-nx-devkit-emmc.conf are:
The attached flash_l4t_t194_spi_emmc_p3668.xml has been modified from the Xavier NX devkit version to include additional partitions, with the ‘APP’ partition renamed to ‘ROOT’. The diffs are
--- a/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_p3668.xml
+++ b/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_p3668.xml
@@ -496,16 +496,14 @@
partitions defined after this entry are configured in the kernel, and are
accessible by standard partition tools such as gdisk and parted. </description>
</partition>
- <partition name="APP" type="data">
+ <partition name="ROOT" type="data">
<allocation_policy> sequential </allocation_policy>
<filesystem_type> basic </filesystem_type>
- <size> APPSIZE </size>
+ <size> ROOTSIZE </size>
<file_system_attribute> 0 </file_system_attribute>
<allocation_attribute> 0x8 </allocation_attribute>
<align_boundary> 4096 </align_boundary>
<percent_reserved> 0 </percent_reserved>
- <filename> APPFILE </filename>
- <unique_guid> APPUUID </unique_guid>
<description> **Required.** Contains the rootfs. This partition must be defined
after `primary_GPT` so that it can be accessed as the fixed known special device
`/dev/mmcblk0p1`. </description>
@@ -532,6 +530,48 @@
<filename> DTB_FILE </filename>
<description> **Required.** Chain A; contains kernel device tree blob. </description>
</partition>
+ <partition name="HOME" type="data">
+ <allocation_policy> sequential </allocation_policy>
+ <filesystem_type> basic </filesystem_type>
+ <size> HOMESIZE </size>
+ <file_system_attribute> 0 </file_system_attribute>
+ <allocation_attribute> 0x8 </allocation_attribute>
+ <percent_reserved> 0 </percent_reserved>
+ </partition>
+ <partition name="VAR" type="data">
+ <allocation_policy> sequential </allocation_policy>
+ <filesystem_type> basic </filesystem_type>
+ <size> VARSIZE </size>
+ <file_system_attribute> 0 </file_system_attribute>
+ <allocation_attribute> 0x8 </allocation_attribute>
+ <percent_reserved> 0 </percent_reserved>
+ </partition>
+ <partition name="VARL" type="data">
+ <allocation_policy> sequential </allocation_policy>
+ <filesystem_type> basic </filesystem_type>
+ <size> VARLSIZE </size>
+ <file_system_attribute> 0 </file_system_attribute>
+ <allocation_attribute> 0x8 </allocation_attribute>
+ <percent_reserved> 0 </percent_reserved>
+ </partition>
+ <partition name="VARLA" type="data">
+ <allocation_policy> sequential </allocation_policy>
+ <filesystem_type> basic </filesystem_type>
+ <size> VARLASIZE </size>
+ <file_system_attribute> 0 </file_system_attribute>
+ <allocation_attribute> 0x8 </allocation_attribute>
+ <percent_reserved> 0 </percent_reserved>
+ </partition>
+ <partition name="RECOVERY" type="data">
+ <allocation_policy> sequential </allocation_policy>
+ <filesystem_type> basic </filesystem_type>
+ <size> RECOVERYSIZE </size>
+ <file_system_attribute> 0 </file_system_attribute>
+ <allocation_attribute> 0x8 </allocation_attribute>
+ <percent_reserved> 0 </percent_reserved>
+ <unique_guid> APPUUID </unique_guid>
+ <filename> RECOVERYFILE </filename>
+ </partition>
<partition name="reserved_for_chain_A_user" type="data">
<allocation_policy> sequential </allocation_policy>
<filesystem_type> basic </filesystem_type>