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)
{
--
2.7.4
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
© 2016 - 2026 Red Hat, Inc.