From 5e0c3f0a04a1cf17a3f898db9b2382144cc52f4a Mon Sep 17 00:00:00 2001 From: Andrew Dennison Date: Tue, 21 May 2024 10:37:42 +1000 Subject: [PATCH] tools/litex_json2dts_linux: add compatible, model Fixes these dt-schema validation errors: /: 'compatible' is a required property from schema $id: http://devicetree.org/schemas/root-node.yaml# /: 'model' is a required property from schema $id: http://devicetree.org/schemas/root-node.yaml# --- litex/soc/integration/soc.py | 1 + litex/soc/integration/soc_core.py | 1 + litex/tools/litex_json2dts_linux.py | 10 ++++++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/litex/soc/integration/soc.py b/litex/soc/integration/soc.py index 7bcdfdd8a..8fc806fa2 100644 --- a/litex/soc/integration/soc.py +++ b/litex/soc/integration/soc.py @@ -944,6 +944,7 @@ class SoC(LiteXModule, SoCCoreCompat): self.sys_clk_freq = int(sys_clk_freq) # Do conversion to int here to allow passing float to SoC. self.constants = {} self.csr_regions = {} + self.add_constant("platform", platform.name) # Set Top-Level to LiteXContext. LiteXContext.top = self diff --git a/litex/soc/integration/soc_core.py b/litex/soc/integration/soc_core.py index 34a430bfc..14e3b53be 100644 --- a/litex/soc/integration/soc_core.py +++ b/litex/soc/integration/soc_core.py @@ -247,6 +247,7 @@ class SoCCore(LiteXSoC): # Add Identifier. if ident != "": self.add_identifier("identifier", identifier=ident, with_build_time=ident_version) + self.add_constant("identifier", ident) # Add UARTBone. if with_uartbone: diff --git a/litex/tools/litex_json2dts_linux.py b/litex/tools/litex_json2dts_linux.py index d83df1a50..185b7613c 100755 --- a/litex/tools/litex_json2dts_linux.py +++ b/litex/tools/litex_json2dts_linux.py @@ -55,14 +55,20 @@ def generate_dts(d, initrd_start=None, initrd_size=None, initrd=None, root_devic cpu_mmu = d["constants"].get("config_cpu_mmu", None) # Header --------------------------------------------------------------------------------------- + platform = d["constants"]["platform"] dts = """ /dts-v1/; -/ { +/ {{ + compatible = "litex,{platform}", "litex,soc"; + model = "{identifier}"; #address-cells = <1>; #size-cells = <1>; -""" +""".format( + platform=platform, + identifier=d["constants"].get("identifier", platform), + ) # Boot Arguments -------------------------------------------------------------------------------