Dear QEMU Team,
We have tried to up and running QNX 7.0 on QEMU 5.2.0 Sabrelite model. The QNX 
reach the prompt and was responsive to user command.
However, starting the network caused a QNX freeze. After debugging the problem 
at QNX and QEMU sites we end up with a solution which requires a slight QEMU 
source code modification.
It seem that the hw/net/imx_fec.c is source of the problem. To fix the issue we 
changed the condition in line 442 from:
if (s->regs[ENET_EIR] & s->regs[ENET_EIMR] &
     (ENET_INT_MAC | ENET_INT_TS_TIMER)) {
to:
if (s->regs[ENET_EIR] & s->regs[ENET_EIMR] & ENET_INT_TS_TIMER) {
Without this modification the PTP (Precise Time Protocol, 1588 IRQ) interrupt 
was generated each time any of the network interrupts occurred.
This was making QNX freeze when ifconfig has been called, because QNX was 
flooded by PTP interrupts that haven't occurred.
With this modification QEMU will generate PTP interrupt when it actually 
occurs. Just to cross check, this modification does not impact the Linux 
performance in any way.
Can anyone take a closer look at this condition and confirm that this 
modification make sense and it hasn't negative impact on anything else?
Regards,
Adam Olek
Senior Software Engineer
APTIV

Reply via email to