From 1428548bcf3dc912e129b47c3d1a319235764b97 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 26 Mar 2025 11:25:33 +0000 Subject: [PATCH 1/2] Revert "dts: bcm2712-rpi: Add uart0_nodma" This reverts commit 898d64016ccbd902faf3db144adc33c7f93602e4. Signed-off-by: Phil Elwell --- arch/arm/boot/dts/overlays/README | 6 +----- arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi | 1 - 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index 5ba4fd8dc22ddb..391f5de41a6e84 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -454,16 +454,12 @@ Params: and entering the low power state (default 600). Requires EEE to be enabled - see "eee". - uart0 Set to "on" to enable and "off" to disable uart0 - (default "off" on 2712, otherwise "on") + uart0 Set to "off" to disable uart0 (default "on") uart0_console Move the kernel boot console to UART0 on pins 6, 8 and 10 of the 40-way header (2712 only, default "off") - uart0_nodma Enable uart0 without DMA (2712 only, default - "off") - uart1 Set to "on" or "off" to enable or disable uart1 (default varies) diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi index ad5cdb0a0da0d2..5cb04f345200cb 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi @@ -220,7 +220,6 @@ pio: &rp1_pio { suspend = <&pwr_key>, "linux,code:0=205"; uart0 = <&uart0>, "status"; uart0_console = <&uart0>,"status", <&aliases>, "console=",&uart0; - uart0_nodma = <&uart0>,"status", <&uart0>,"dma-names?=0"; wifiaddr = <&wifi>, "local-mac-address["; cam0_reg = <&cam0_reg>,"status"; From 8258166667a1a0fbb67f443d2d4c30db055af614 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 26 Mar 2025 11:28:28 +0000 Subject: [PATCH 2/2] dts: rp1: Don't use DMA with UARTs DMA has been enabled on RP1's UART0, but with mixed success. Transmits seem to work, but the DMA interface is not well suited to receiving arbitrary amounts of data. In particular, the PL011 driver is slow to pass on the received data, batching it into large blocks. On balance, it's better to just disable the DMA support. As with the other UARTs, the required runes are left in the DTS as comments. Signed-off-by: Phil Elwell --- arch/arm64/boot/dts/broadcom/rp1.dtsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/broadcom/rp1.dtsi b/arch/arm64/boot/dts/broadcom/rp1.dtsi index 3a798aa31dde92..b746de80010863 100644 --- a/arch/arm64/boot/dts/broadcom/rp1.dtsi +++ b/arch/arm64/boot/dts/broadcom/rp1.dtsi @@ -65,9 +65,9 @@ interrupts = ; clocks = <&rp1_clocks RP1_CLK_UART &rp1_clocks RP1_PLL_SYS_PRI_PH>; clock-names = "uartclk", "apb_pclk"; - dmas = <&rp1_dma RP1_DMA_UART0_TX>, - <&rp1_dma RP1_DMA_UART0_RX>; - dma-names = "tx", "rx"; + // dmas = <&rp1_dma RP1_DMA_UART0_TX>, + // <&rp1_dma RP1_DMA_UART0_RX>; + // dma-names = "tx", "rx"; pinctrl-names = "default"; arm,primecell-periphid = <0x00341011>; uart-has-rtscts;