summaryrefslogtreecommitdiff
path: root/tb/sim/irq.S
diff options
context:
space:
mode:
Diffstat (limited to 'tb/sim/irq.S')
-rw-r--r--tb/sim/irq.S19
1 files changed, 19 insertions, 0 deletions
diff --git a/tb/sim/irq.S b/tb/sim/irq.S
index 35ce2c9..2ed4621 100644
--- a/tb/sim/irq.S
+++ b/tb/sim/irq.S
@@ -29,6 +29,25 @@ reset:
str r1, [r2, #4]
.wfi:
+ # Una secuencia de load-stores intensos como esta se encuentra en el
+ # código de calibración de delay loop del kernel. Antes del commit
+ # con título 'Fix register corruption when interrupting a load-store',
+ # una IRQ justo aquí provcaba que el core entrara en un estado indefinido.
+ # En el caso de Linux, eso resultaba en kernel panics indepurables.
+ ldr r10, [r2]
+ ldr r10, [r2]
+ ldr r10, [r2]
+ ldr r10, [r2]
+ ldr r10, [r2]
+ ldr r10, [r2]
+ ldr r10, [r2]
+ ldr r10, [r2]
+ ldr r10, [r2]
+ ldr r10, [r2]
+ ldr r10, [r2]
+ ldr r10, [r2]
+ ldr r10, [r2]
+ ldr r10, [r2]
tst r0, r0
beq .wfi