From 3864615f6fbe299e12f0541702596543829ce807 Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Sat, 6 Apr 2024 08:13:56 +0200 Subject: [PATCH] tools/litex_json2dts_linux.py: improved cpu_isa_extension attribute (fdc) and fixed kernel panic during rocket booting with linux --- litex/tools/litex_json2dts_linux.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/litex/tools/litex_json2dts_linux.py b/litex/tools/litex_json2dts_linux.py index 4620b5ac2..8d1c215fb 100755 --- a/litex/tools/litex_json2dts_linux.py +++ b/litex/tools/litex_json2dts_linux.py @@ -33,8 +33,25 @@ def generate_dts(d, initrd_start=None, initrd_size=None, initrd=None, root_devic cpu_name = d["constants"].get("config_cpu_name") cpu_arch = cpu_architectures[cpu_name] cpu_isa = d["constants"].get("config_cpu_isa", None) # kernel < 6.6.0 - cpu_isa_base = cpu_isa[:5] # kernel >= 6.6.0 - cpu_isa_extensions = "\"i\", \"m\", \"a\"" # kernel >= 6.6.0 + + # kernel >= 6.6.0 + cpu_isa_base = cpu_isa[:5] + cpu_isa_extensions = "\"i\"" # default + # Append with optionals + if "m" in cpu_isa[5:]: + cpu_isa_extensions += ", \"m\"" + if "a" in cpu_isa[5:]: + cpu_isa_extensions += ", \"a\"" + if "f" in cpu_isa[5:]: + cpu_isa_extensions += ", \"f\"" + if "d" in cpu_isa[5:]: + cpu_isa_extensions += ", \"d\"" + if "d" in cpu_isa[5:]: + cpu_isa_extensions += ", \"c\"" + # rocket specific extensions + if "rocket" in cpu_name: + cpu_isa_extensions += ", \"zicsr\", \"zifencei\", \"zihpm\"" + cpu_mmu = d["constants"].get("config_cpu_mmu", None) # Header ---------------------------------------------------------------------------------------