Hi Sunny, What issues are you seeing with the PL011 UART in Windows? Last time I checked, it worked fine, and the fact that Bluetooth works also confirms this. It won't show up as a COM port (like mini UART does) as it's built using SerCx2. @@ -30,6 +30,12 @@ Device (URT0) > { > MEMORY32FIXED (ReadWrite, 0, BCM2836_PL011_UART_LENGTH, RMEM) > Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { > BCM2836_PL011_UART_INTERRUPT } > + > + PinFunction (Exclusive, PullDown, BCM_ALT3, "\\_SB.GDV0.GPI0", 0, > ResourceConsumer, , ) { 32, 33 } > + @@ -79,6 +85,11 @@ Device (URTM) > // from muxing the pins away. > > // PinFunction (Exclusive, PullDown, BCM_ALT5, "\\_SB.GPI0", 0, > ResourceConsumer, , ) { 14, 15 } > + PinFunction (Exclusive, PullDown, BCM_ALT5, "\\_SB.GDV0.GPI0", 0, > ResourceConsumer, , ) { 32, 33 } > + > What is the reason for trying to mux both UARTs to the BT chip? If PL011 is used for Bluetooth and the mini UART driver loads *after* it, wouldn't it mux away the pins and break Bluetooth? În lun., 31 mai 2021 la 11:23, Sunny Wang a scris: > This change is based on edk2-platforms-raspberrypi-pl011-bth-noflow.diff > in https://github.com/worproject/RPi-Bluetooth-Testing/ for enabling > Bluetooth and serial port (Mini UART) in Windows IOT. > > Note that PL011 UART still doesn't work with Windows 10 IOT with this > change, but PL011 UART works fine with VMware ESXi-Arm Fling v1.3. > Therefore, there should be no issue with PL011 UART related changes, > and we will still need a Windows expert to take a further look in the > future. Making PL011 UART work properly with Windows 10 IOT may require > additional changes to Windows driver or firmware's ACPI table. > > Testing Done: > - Successfully booted Windows Windows 10 IOT (20279.1) on SD (made by > WOR) with > the RPi-Windows-Drivers release ver 0.5 downloaded from > https://github.com/worproject/RPi-Windows-Drivers/releases > and checked that both Bluetooth and serial port (Mini UART) can > work fine. > - Successfully booted VMware ESXi-Arm Fling v1.3 with only serial > console connection (PL011 UART). > > Cc: Samer El-Haj-Mahmoud > Cc: Sami Mujawar > Cc: Jeremy Linton > Cc: Pete Batard > Cc: Ard Biesheuvel > Cc: Mario Bălănică > Signed-off-by: Sunny Wang > --- > Platform/RaspberryPi/AcpiTables/Uart.asl | 19 +++++++++++-------- > 1 file changed, 11 insertions(+), 8 deletions(-) > > diff --git a/Platform/RaspberryPi/AcpiTables/Uart.asl > b/Platform/RaspberryPi/AcpiTables/Uart.asl > index bac9d791eb..cb99086d39 100644 > --- a/Platform/RaspberryPi/AcpiTables/Uart.asl > +++ b/Platform/RaspberryPi/AcpiTables/Uart.asl > @@ -30,6 +30,12 @@ Device (URT0) > { > MEMORY32FIXED (ReadWrite, 0, BCM2836_PL011_UART_LENGTH, RMEM) > Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { > BCM2836_PL011_UART_INTERRUPT } > + > + PinFunction (Exclusive, PullDown, BCM_ALT3, "\\_SB.GDV0.GPI0", 0, > ResourceConsumer, , ) { 32, 33 } > + > + // fake the CTS signal as we don't support HW flow control yet > + // BCM_ALT2 is set as output (low) by default > + PinFunction (Exclusive, PullNone, BCM_ALT2, "\\_SB.GDV0.GPI0", 0, > ResourceConsumer, , ) { 31 } > }) > Method (_CRS, 0x0, Serialized) > { > @@ -79,6 +85,11 @@ Device (URTM) > // from muxing the pins away. > > // PinFunction (Exclusive, PullDown, BCM_ALT5, "\\_SB.GPI0", 0, > ResourceConsumer, , ) { 14, 15 } > + PinFunction (Exclusive, PullDown, BCM_ALT5, "\\_SB.GDV0.GPI0", 0, > ResourceConsumer, , ) { 32, 33 } > + > + // fake the CTS signal as we don't support HW flow control yet > + // BCM_ALT2 is set as output (low) by default > + PinFunction (Exclusive, PullNone, BCM_ALT2, "\\_SB.GDV0.GPI0", 0, > ResourceConsumer, , ) { 31 } > }) > Method (_CRS, 0x0, Serialized) > { > @@ -143,10 +154,6 @@ Device(BTH0) > UAR0, // DescriptorName: creates name > // for offset of resource descriptor > ) // Vendor data > - // > - // RPIQ connection for BT_ON/OFF > - // > - GpioIO (Shared, PullUp, 0, 0, IoRestrictionNone, "\\_SB.GDV0.RPIQ", > 0, ResourceConsumer, , ) { 128 } > }) > > // > @@ -190,10 +197,6 @@ Device(BTH0) > UARM, // DescriptorName: creates name > // for offset of resource descriptor > ) // Vendor data > - // > - // RPIQ connection for BT_ON/OFF > - // > - GpioIO (Shared, PullUp, 0, 0, IoRestrictionNone, "\\_SB.GDV0.RPIQ", > 0, ResourceConsumer, , ) { 128 } > }) > > Method (_CRS, 0x0, Serialized) > -- > 2.31.0.windows.1 > >