zephyriot / zep-jira14

0 stars 0 forks source link

Fatal fault in SPI ISR when using multiple interfaces #1688

Open nashif opened 7 years ago

nashif commented 7 years ago

Reported by Arthur Biancarelli:

One code is targeting the arc and is supposed to communicate with the bmi160 chip (via internal SPI_SS_1 interface) and transmit those values via IPM to the x86. The other is running on the x86 processor and is communicating with a custom sensor on the SPI_1 interface and receiving the data from the ARC via IPM.

Each code works independently but not when the both are running together.

Binding and Initialization works but when using spi_transceive function, debug through IPM for the arc core is:

ipm_console0: 'Exception vector: 0x3, cause code: 0x4, parameter 0x0' ipm_console0: 'Address 0x40037186' ipm_console0: 'Fatal fault in ISR! Spinning...

When digging into the assembly code, the address is corresponding to <handle_spi_mst_interrupt+0xc2> function.

In the Intel Quark SE C1000 datasheet (February 2017 - Table 408 - p456) the exception vector 0x3 for the sensor core corresponds to a Machine Check Exception (to verify)

(Imported from Jira ZEP-1840)

nashif commented 7 years ago

by Arthur Biancarelli:

nashif commented 7 years ago

by Arthur Biancarelli:

Any advice ? Thanks