Dear NXP Technical Support Team,
I am writing to request technical assistance regarding an issue where the HSE_B service hangs (no response) after activating multi-core operations on the S32K328 platform.
1. Environment & Setup
- MCU: S32K328 (Dual Cortex-M7 + HSE_B)
- Configuration Tool: EB tresos (for MCAL configuration)
- Core Roles: M7_0 and M7_1 are running concurrently with an Autosar-OS.
M7_0 communicates with HSE_B using shared SRAM for message descriptors.
2. XRDC & Peripheral Configuration (For Testing)
To isolate permission issues, we have applied a highly permissive configuration, but the symptoms remain identical regardless of whether M7_0 and HSE_B are grouped into a single domain or separated into distinct domains:
- Memory Config: Full Access granted for all SRAM regions, and specific PFLASH/DFLASH regions allocated for HSE.
- Peripheral Config (PDAC): Full Access assigned to CONFIGURATION_GPR, PFC/PFC_ALT, FMU/FMU_ALT, and MU_0 / MU_1.
3. Boot Sequence
The application follows the boot sequence below:
3.1 M7_0 Boots → Clock Initialization.
3.2 Verify HSE STATUS is INIT_OK.
3.3 Resource Manager Initialization (RM_Init for XRDC setup).
3.4 Peripheral Initialization.
3.5 Start M7_1 (Core 1).
3.6 Start OS.
4. Problem Description & Symptoms
Both M7_0 and M7_1 start up and run normally within the OS environment. However, as soon as an HSE service request is invoked afterwards, the HSE fails to respond, resulting in a hang. The register states during the hang are as follows:
- XRDC Register Status:
XRDC_DERRLOC[3] changes to 0x00020000.
However, no error values are captured in the DERR_W3_0/1/2 or DERR_W3_16/17/18 registers.
- Messaging Unit (MU_0) Status:
In the MU_0_TSR register, the flags TE1 and TE2 stay in the "Not Empty" state and do not clear.
In the MU_0_FSR register, the F3 flag remains unchanged.
5. Questions
5.1 Given that XRDC_DERRLOC[3] shifts but DERR_W3_x registers show no specific error details, what could be triggering this behavior? Could it be related to an implicit access violation by the HSE internal DMA or bus matrix configuration?
5.2 Even though the shared SRAM is explicitly configured as Non-Cacheable via the MPU, are there any known multi-core constraints or hidden caching behaviors under an OS environment that could prevent the HSE from reading the descriptors?
5.3 Are there any known constraints or prerequisites regarding the execution timing of RM_Init (XRDC initialization) relative to the HSE_STATUS_INIT_OK check or Core 1 bootup?
5.4 What steps or additional registers should we check to identify why the MU transmit status registers (TE1/TE2) are stuck and the HSE is not processing the descriptors?
We would highly appreciate your insights and guidance on resolving this bottleneck.
Best regards,