Asynchronous abort not fired after ISB

I am porting an hypervisor on the Jetson TX2 board and one of my test is checking for a proper implementation for Xen XSA-201 where an hardware virtualized guest could crash the system if it generated an Serror on the system.

The solution for this (which is working perfectly on Jetson TX1 board) is to have a data synchronization barrier (DSB) followed by an instruction synchronization barrier to force asynchronous aborts to occur at this exact point.

To test this, i have a guest doing a write at 0xf0 0000 0000 and going to sleep. The asynchronous abort should fire in EL2 when switching to an other guest. This is exactly what is happening on the Jetson TX1.

On the Jetson TX2 i have 2 effects:

  • When i have several cores activated (all other cores then first A57 are in idle in a wfi on my test), the Serror is happening on one of the sleeping cores from time to time
  • When i don’t activate the other cores or when the exception is firing on the core 0, it does not occur in EL2 mode after the ISB but sometimes later.

With only the core 0, i have the Serror firing correctly if i “manually” flush the pipeline like this:

mov x15, #0x10000

1:
nop
dsb sy
isb
sub x15, x15, #1
cbnz x15, 1b

Is it possible that the ISB instruction is not properly flushing the instruction pipeline on the TX2 ?
Does anyone else had some weird Serror on different cores then the one actually doing an invalid access ?
Is this a known issue ?

Thanks in advance

After more investigations and discussion with ARM support, an exception should not be raised on other cores.

And the fact that the pipeline flushing is not behaving correctly is not normal and can constitute an enormous bug that would make the board not useable in any safety or security related application: A buggy application could make the system crash as it could generate an exception that would happen later when something else is running.

Hi BertrandSysgo

Please check the Tegra X2 (Parker Series SoC) Technical Reference Manual, which includes sufficient information on machine checks and expected behavior.

Thanks

Hi,

This manual is not available on the download page, i only see the TX1 reference manual.
When will this manual be available ?

Regards

Hi BertrandSysgo,

Please find the Tegra X2 (Parker Series SoC) Technical Reference Manual from Jetson Download Center manually.

Thanks