Message ID | 1529355846-25102-1-git-send-email-linux@roeck-us.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
ping ... On Mon, Jun 18, 2018 at 02:04:06PM -0700, Guenter Roeck wrote: > RX and TX interrupt bits were reversed, resulting in an endless sequence > of serial interupts in the emulated system and the following repeated > error message when booting Linux. > > serial8250: too much work for irq61 > > This results in a boot failure most of the time. > > Qemu command line used to reproduce the problem: > > qemu-system-aarch64 -M raspi3 -m 1024 \ > -kernel arch/arm64/boot/Image \ > --append "rdinit=/sbin/init console=ttyS1,115200" > -initrd rootfs.cpio \ > -dtb arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb \ > -nographic -monitor null -serial null -serial stdio > > This is with arm64:defconfig. The root file system was generated using > buildroot. > > Signed-off-by: Guenter Roeck <linux@roeck-us.net> > --- > hw/char/bcm2835_aux.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/char/bcm2835_aux.c b/hw/char/bcm2835_aux.c > index 370dc7e..0364596 100644 > --- a/hw/char/bcm2835_aux.c > +++ b/hw/char/bcm2835_aux.c > @@ -39,8 +39,8 @@ > #define AUX_MU_BAUD_REG 0x68 > > /* bits in IER/IIR registers */ > -#define TX_INT 0x1 > -#define RX_INT 0x2 > +#define RX_INT 0x1 > +#define TX_INT 0x2 > > static void bcm2835_aux_update(BCM2835AuxState *s) > {
On 14/07/2018 15:53, Guenter Roeck wrote: > ping ... Queued, thanks. Paolo > On Mon, Jun 18, 2018 at 02:04:06PM -0700, Guenter Roeck wrote: >> RX and TX interrupt bits were reversed, resulting in an endless sequence >> of serial interupts in the emulated system and the following repeated >> error message when booting Linux. >> >> serial8250: too much work for irq61 >> >> This results in a boot failure most of the time. >> >> Qemu command line used to reproduce the problem: >> >> qemu-system-aarch64 -M raspi3 -m 1024 \ >> -kernel arch/arm64/boot/Image \ >> --append "rdinit=/sbin/init console=ttyS1,115200" >> -initrd rootfs.cpio \ >> -dtb arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb \ >> -nographic -monitor null -serial null -serial stdio >> >> This is with arm64:defconfig. The root file system was generated using >> buildroot. >> >> Signed-off-by: Guenter Roeck <linux@roeck-us.net> >> --- >> hw/char/bcm2835_aux.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/hw/char/bcm2835_aux.c b/hw/char/bcm2835_aux.c >> index 370dc7e..0364596 100644 >> --- a/hw/char/bcm2835_aux.c >> +++ b/hw/char/bcm2835_aux.c >> @@ -39,8 +39,8 @@ >> #define AUX_MU_BAUD_REG 0x68 >> >> /* bits in IER/IIR registers */ >> -#define TX_INT 0x1 >> -#define RX_INT 0x2 >> +#define RX_INT 0x1 >> +#define TX_INT 0x2 >> >> static void bcm2835_aux_update(BCM2835AuxState *s) >> {
On 18 June 2018 at 22:04, Guenter Roeck <linux@roeck-us.net> wrote: > RX and TX interrupt bits were reversed, resulting in an endless sequence > of serial interupts in the emulated system and the following repeated > error message when booting Linux. > > serial8250: too much work for irq61 > > This results in a boot failure most of the time. > > Qemu command line used to reproduce the problem: > > qemu-system-aarch64 -M raspi3 -m 1024 \ > -kernel arch/arm64/boot/Image \ > --append "rdinit=/sbin/init console=ttyS1,115200" > -initrd rootfs.cpio \ > -dtb arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb \ > -nographic -monitor null -serial null -serial stdio > > This is with arm64:defconfig. The root file system was generated using > buildroot. Worth mentioning in the commit message that there is an error in the BCM2835 datasheet for the TX_INT and RX_INT bits in the AUX_MU_IER_REG description (as per https://elinux.org/BCM2835_datasheet_errata) thanks -- PMM
On 07/16/2018 06:48 AM, Peter Maydell wrote: > On 18 June 2018 at 22:04, Guenter Roeck <linux@roeck-us.net> wrote: >> RX and TX interrupt bits were reversed, resulting in an endless sequence >> of serial interupts in the emulated system and the following repeated >> error message when booting Linux. >> >> serial8250: too much work for irq61 >> >> This results in a boot failure most of the time. >> >> Qemu command line used to reproduce the problem: >> >> qemu-system-aarch64 -M raspi3 -m 1024 \ >> -kernel arch/arm64/boot/Image \ >> --append "rdinit=/sbin/init console=ttyS1,115200" >> -initrd rootfs.cpio \ >> -dtb arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb \ >> -nographic -monitor null -serial null -serial stdio >> >> This is with arm64:defconfig. The root file system was generated using >> buildroot. > > Worth mentioning in the commit message that there is an > error in the BCM2835 datasheet for the TX_INT and RX_INT > bits in the AUX_MU_IER_REG description (as per > https://elinux.org/BCM2835_datasheet_errata) > I didn't know that ;-). I found out the hard way. Guenter
On 16 July 2018 at 15:13, Guenter Roeck <linux@roeck-us.net> wrote: > On 07/16/2018 06:48 AM, Peter Maydell wrote: >> >> On 18 June 2018 at 22:04, Guenter Roeck <linux@roeck-us.net> wrote: >>> >>> RX and TX interrupt bits were reversed, resulting in an endless sequence >>> of serial interupts in the emulated system and the following repeated >>> error message when booting Linux. >>> >>> serial8250: too much work for irq61 >>> >>> This results in a boot failure most of the time. >>> >>> Qemu command line used to reproduce the problem: >>> >>> qemu-system-aarch64 -M raspi3 -m 1024 \ >>> -kernel arch/arm64/boot/Image \ >>> --append "rdinit=/sbin/init console=ttyS1,115200" >>> -initrd rootfs.cpio \ >>> -dtb arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb \ >>> -nographic -monitor null -serial null -serial stdio >>> >>> This is with arm64:defconfig. The root file system was generated using >>> buildroot. >> >> >> Worth mentioning in the commit message that there is an >> error in the BCM2835 datasheet for the TX_INT and RX_INT >> bits in the AUX_MU_IER_REG description (as per >> https://elinux.org/BCM2835_datasheet_errata) >> > > I didn't know that ;-). I found out the hard way. I'll take this through target-arm.next (I have some other patches for rc1 anyway) and adjust the commit message. Paolo: you can drop it from your queue. thanks -- PMM
On 16/07/2018 16:47, Peter Maydell wrote: >> I didn't know that ;-). I found out the hard way. > I'll take this through target-arm.next (I have some other patches > for rc1 anyway) and adjust the commit message. > > Paolo: you can drop it from your queue. Done, thanks! Paolo
diff --git a/hw/char/bcm2835_aux.c b/hw/char/bcm2835_aux.c index 370dc7e..0364596 100644 --- a/hw/char/bcm2835_aux.c +++ b/hw/char/bcm2835_aux.c @@ -39,8 +39,8 @@ #define AUX_MU_BAUD_REG 0x68 /* bits in IER/IIR registers */ -#define TX_INT 0x1 -#define RX_INT 0x2 +#define RX_INT 0x1 +#define TX_INT 0x2 static void bcm2835_aux_update(BCM2835AuxState *s) {
RX and TX interrupt bits were reversed, resulting in an endless sequence of serial interupts in the emulated system and the following repeated error message when booting Linux. serial8250: too much work for irq61 This results in a boot failure most of the time. Qemu command line used to reproduce the problem: qemu-system-aarch64 -M raspi3 -m 1024 \ -kernel arch/arm64/boot/Image \ --append "rdinit=/sbin/init console=ttyS1,115200" -initrd rootfs.cpio \ -dtb arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb \ -nographic -monitor null -serial null -serial stdio This is with arm64:defconfig. The root file system was generated using buildroot. Signed-off-by: Guenter Roeck <linux@roeck-us.net> --- hw/char/bcm2835_aux.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)