Two calls of CH_IRQ_PROLOGUE() / CH_IRQ_EPILOGUE() inside EXT IRQ handler, but SW#8 will be called in different IRQ handler, so there is no call trace or hit that can be used to find the problem.
The callback is called by the IRQ handler, the callback then calls CH_IRQ_PROLOGUE(), I think it is two in a row even if do not happen in the same function.
first CH_IRQ_PROLOGUE in EXT IRQ handler, the second CH_IRQ_PROLOGUE in EXT callback and chSysHalt(SV#8) will be call from different IRQ handler, in my case it were: ST and SPI, so there was no hint to look at CycloneTCP OS port which was call CH_IRQ_PROLOGUE from EXT callback.