From 98a0b688bf194b9af9d09f7fe29efb3cfb1dd0b9 Mon Sep 17 00:00:00 2001 From: Gabriel Somlo Date: Tue, 24 Aug 2021 16:16:07 -0400 Subject: [PATCH] json2dts_linux: update ethmac DT node generation The Linux LiteETH driver parses registers by name. Provide the expected names for each register: "mac", "mdio", and "buffer", respectively. For setting up tx and rx slots, the Linux driver expects three pieces of information: number of tx and rx slots, and slot size. Update json2dts_linux to provide the appropriate names and values. --- litex/tools/litex_json2dts_linux.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/litex/tools/litex_json2dts_linux.py b/litex/tools/litex_json2dts_linux.py index 304acc2be..97016e88a 100755 --- a/litex/tools/litex_json2dts_linux.py +++ b/litex/tools/litex_json2dts_linux.py @@ -275,8 +275,10 @@ def generate_dts(d, initrd_start=None, initrd_size=None, polling=False): reg = <0x{ethmac_csr_base:x} 0x7c>, <0x{ethphy_csr_base:x} 0x0a>, <0x{ethmac_mem_base:x} 0x{ethmac_mem_size:x}>; - tx-fifo-depth = <{ethmac_tx_slots}>; - rx-fifo-depth = <{ethmac_rx_slots}>; + reg-names = "mac", "mdio", "buffer"; + litex,rx-slots = <{ethmac_rx_slots}>; + litex,tx-slots = <{ethmac_tx_slots}>; + litex,slot-size = <{ethmac_slot_size}>; {ethmac_interrupt} status = "okay"; }}; @@ -285,8 +287,9 @@ def generate_dts(d, initrd_start=None, initrd_size=None, polling=False): ethmac_csr_base = d["csr_bases"]["ethmac"], ethmac_mem_base = d["memories"]["ethmac"]["base"], ethmac_mem_size = d["memories"]["ethmac"]["size"], - ethmac_tx_slots = d["constants"]["ethmac_tx_slots"], ethmac_rx_slots = d["constants"]["ethmac_rx_slots"], + ethmac_tx_slots = d["constants"]["ethmac_tx_slots"], + ethmac_slot_size = d["constants"]["ethmac_slot_size"], ethmac_interrupt = "" if polling else "interrupts = <{}>;".format(d["constants"]["ethmac_interrupt"])) # USB OHCI -------------------------------------------------------------------------------------