u-boot/arch/arm/dts/k3-am654-base-board-u-boot.dtsi
Bryan Brattlof 5e00547e58 arm: dts: k3-am654: add needed regs to udmap nodes
Ethernet is one of a few IPs in U-Boot that depend on DMA to operate.
However there are a few missing registers ranges in the udmap nodes
need to properly setup DMA for the am65x.

A fix has been added to the Linux kernel[0] to add these ranges however
they have not made it to a Linux tag. To keep DMA operational until the
next DT sync from Linux, add these ranges to the *-u-boot.dtsi with a
note for our future selves.

[0] https://lore.kernel.org/r/20231213135138.929517-2-vigneshr@ti.com

Tested-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Bryan Brattlof <bb@ti.com>
Reviewed-by: Nishanth Menon <nm@ti.com>
2024-01-03 08:36:37 -05:00

288 lines
3.5 KiB
Text

// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2018-2021 Texas Instruments Incorporated - https://www.ti.com/
*/
#include "k3-am65x-binman.dtsi"
/ {
chosen {
tick-timer = &mcu_timer0;
};
};
&mcu_timer0 {
ti,timer-alwon;
clock-frequency = <25000000>;
bootph-all;
};
&vtt_supply {
bootph-pre-ram;
};
&cbass_main {
bootph-pre-ram;
};
&main_navss {
bootph-pre-ram;
};
&cbass_mcu {
bootph-pre-ram;
};
&mcu_navss {
bootph-pre-ram;
};
&mcu_ringacc {
bootph-pre-ram;
};
&mcu_udmap {
bootph-pre-ram;
};
&wkup_gpio0 {
bootph-pre-ram;
};
&secure_proxy_main {
bootph-pre-ram;
};
&cbass_wakeup {
bootph-pre-ram;
chipid@43000014 {
bootph-pre-ram;
};
};
&dmsc {
bootph-pre-ram;
};
&k3_pds {
bootph-pre-ram;
};
&k3_clks {
bootph-pre-ram;
};
&k3_reset {
bootph-pre-ram;
};
&main_uart0 {
bootph-pre-ram;
};
&wkup_vtm0 {
bootph-pre-ram;
};
&wkup_pmx0 {
bootph-pre-ram;
};
&wkup_uart0_pins_default {
bootph-pre-ram;
};
&wkup_vtt_pins_default {
bootph-pre-ram;
};
&mcu_uart0_pins_default {
bootph-pre-ram;
};
&wkup_i2c0_pins_default {
bootph-pre-ram;
};
&mcu_fss0_ospi0_pins_default {
bootph-pre-ram;
};
&main_pmx0 {
bootph-pre-ram;
};
&main_uart0_pins_default {
bootph-pre-ram;
};
&main_mmc0_pins_default {
bootph-pre-ram;
};
&main_mmc1_pins_default {
bootph-pre-ram;
};
&usb0_pins_default {
bootph-pre-ram;
};
&main_pmx1 {
bootph-pre-ram;
};
&sdhci0 {
bootph-pre-ram;
};
&sdhci1 {
bootph-pre-ram;
};
&wkup_i2c0 {
bootph-pre-ram;
};
&vdd_mpu {
bootph-pre-ram;
};
&ospi0 {
bootph-pre-ram;
flash@0 {
bootph-pre-ram;
};
};
&dwc3_0 {
bootph-pre-ram;
};
&usb0_phy {
bootph-pre-ram;
};
&usb0 {
bootph-pre-ram;
};
&scm_conf {
bootph-pre-ram;
};
&fss {
bootph-pre-ram;
};
&pru0_0 {
remoteproc-name = "pru0_0";
};
&rtu0_0 {
remoteproc-name = "rtu0_0";
};
&tx_pru0_0 {
remoteproc-name = "tx_pru0_0";
};
&pru0_1 {
remoteproc-name = "pru0_1";
};
&rtu0_1 {
remoteproc-name = "rtu0_1";
};
&tx_pru0_1 {
remoteproc-name = "tx_pru0_1";
};
&pru1_0 {
remoteproc-name = "pru1_0";
};
&rtu1_0 {
remoteproc-name = "rtu1_0";
};
&tx_pru1_0 {
remoteproc-name = "tx_pru1_0";
};
&pru1_1 {
remoteproc-name = "pru1_1";
};
&rtu1_1 {
remoteproc-name = "rtu1_1";
};
&tx_pru1_1 {
remoteproc-name = "tx_pru1_1";
};
&pru2_0 {
remoteproc-name = "pru2_0";
};
&rtu2_0 {
remoteproc-name = "rtu2_0";
};
&tx_pru2_0 {
remoteproc-name = "tx_pru2_0";
};
&pru2_1 {
remoteproc-name = "pru2_1";
};
&rtu2_1 {
remoteproc-name = "rtu2_1";
};
&tx_pru2_1 {
remoteproc-name = "tx_pru2_1";
};
&mcu_r5fss0 {
ti,cluster-mode = <0>;
};
/*
* The DMA driver requires a few extra register ranges
* which are missing for the am65x. A patch has been
* sent and will be synced after the v6.8-rc1 linux
* tag is published
*/
&main_udmap {
reg = <0x0 0x31150000 0x0 0x100>,
<0x0 0x34000000 0x0 0x100000>,
<0x0 0x35000000 0x0 0x100000>,
<0x0 0x30b00000 0x0 0x10000>,
<0x0 0x30c00000 0x0 0x10000>,
<0x0 0x30d00000 0x0 0x8000>;
reg-names = "gcfg", "rchanrt", "tchanrt",
"tchan", "rchan", "rflow";
};
/*
* The DMA driver requires a few extra register ranges
* which are missing for the am65x. A patch has been
* sent and will be synced after the v6.8-rc1 linux
* tag is published
*/
&mcu_udmap {
reg = <0x0 0x285c0000 0x0 0x100>,
<0x0 0x2a800000 0x0 0x40000>,
<0x0 0x2aa00000 0x0 0x40000>,
<0x0 0x284a0000 0x0 0x4000>,
<0x0 0x284c0000 0x0 0x4000>,
<0x0 0x28400000 0x0 0x2000>;
reg-names = "gcfg", "rchanrt", "tchanrt",
"tchan", "rchan", "rflow";
};