qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] fsl-imx6: Swap Ethernet interrupt defines


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH] fsl-imx6: Swap Ethernet interrupt defines
Date: Thu, 8 Mar 2018 10:50:42 +0000

On 7 March 2018 at 17:37, Guenter Roeck <address@hidden> wrote:
> The sabrelite machine model used by qemu-system-arm is based on the
> Freescale/NXP i.MX6Q processor. This SoC has an on-board ethernet
> controller which is supported in QEMU using the imx_fec.c module
> (actually called imx.enet for this model.)
>
> The include/hw/arm/fsm-imx6.h file defines the interrupt vectors for the
> imx.enet device like this:
>
>  #define FSL_IMX6_ENET_MAC_1588_IRQ 118
>  #define FSL_IMX6_ENET_MAC_IRQ 119
>
> According to https://www.nxp.com/docs/en/reference-manual/IMX6DQRM.pdf,
> page 225, in Table 3-1. ARM Cortex A9 domain interrupt summary,
> interrupts are as follows.
>
> 150 ENET MAC 0 IRQ
> 151 ENET MAC 0 1588 Timer interrupt
>
> where
>
> 150 - 32 == 118
> 151 - 32 == 119
>
> In other words, the vector definitions in the fsl-imx6.h file are reversed.
>
> This results in lost interrupt warnings when running recent (v4.15+) Linux
> kernels, and the Ethernet interface will fail to probe.
>
> Note that applying this patch will cause problems with older Linux kernels:
> The Ethernet interface will fail to probe with Linux v4.9 and earlier.
> Linux v4.1 and earlier will crash. This is a Linux kernel problem, not a
> qemu problem: the Linux kernel only worked by accident since it requested
> both interrupts.

So do the works-by-accident kernels fail on QEMU because
we don't emulate some bit of the ethernet device ?
Ideally we could fix that so we could boot newer kernels
without breaking the old ones...

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]