I am running RPi4 Linux (bcm2711_defconfig) under a hypervisor and I have a question about the PL011 IRQ numbers. I use PL011 as the primary UART and I disable BT.
In the DTS:
I interpret the interrupts property as PL011 having an IRQ number of 153. Is this correct?serial@7e201000 {
compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
reg = <0x7e201000 0x200>;
interrupts = <0x0 0x79 0x4>;
clocks = <0x3 0x13 0x3 0x14>;
clock-names = "uartclk", "apb_pclk";
arm,primecell-periphid = <0x241011>;
cts-event-workaround;
pinctrl-names = "default";
pinctrl-0 = <0x8 0x9>;
status = "okay";
phandle = <0x24>;
};
Second, when I run Linux, PL011 works fine when I "write" to it (i.e., I get the boot log output on PL011 on minicom), but the boot log sounds confusing to me with regards to IRQ number:
I am not a Linux expert, but why does it get IRQ number 19? Isn't that PPI? The UART/console also doesn't trigger any interrupts when I enter anything, so the init task is stuck at:[ 2.749292] uart-pl011 fe201000.serial: cts_event_workaround enabled
[ 2.755820] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 19, base_baud = 0) is a PL011 rev2
[ 3.793261] printk: console [ttyAMA0] enabled
[ 3.798108] fe201400.serial: ttyAMA1 at MMIO 0xfe201400 (irq = 19, base_baud = 0) is a PL011 rev2
[ 3.807405] fe201600.serial: ttyAMA2 at MMIO 0xfe201600 (irq = 19, base_baud = 0) is a PL011 rev2
[ 3.816684] fe201800.serial: ttyAMA3 at MMIO 0xfe201800 (irq = 19, base_baud = 0) is a PL011 rev2
[ 3.825953] fe201a00.serial: ttyAMA4 at MMIO 0xfe201a00 (irq = 19, base_baud = 0) is a PL011 rev2
[ 4.027345] uart-pl011 fe201000.serial: no DMA platform data
[ 4.039404] Freeing unused kernel memory: 1088K
[ 4.044295] Run /sbin/init as init process
Please press Enter to activate this console.
A kind of related question: Why the base address is 0x7e201000 and not 0xfe201000?
Thanks in advance