summary refs log tree commit diff
path: root/lib/systems
diff options
context:
space:
mode:
authorMinijackson <minijackson@riseup.net>2022-06-20 09:56:34 +0200
committerMinijackson <minijackson@riseup.net>2022-08-25 16:00:42 +0200
commit4db467f7e921cfe26c499076ea23044bb8a60ad6 (patch)
treea460866b96ad83738b8f0d552998cf1d00bc7321 /lib/systems
parent422a10903981c19da62da9aaa950ec76add654d2 (diff)
lib/systems: add MicroBlaze architectures
Diffstat (limited to 'lib/systems')
-rw-r--r--lib/systems/default.nix2
-rw-r--r--lib/systems/doubles.nix14
-rw-r--r--lib/systems/inspect.nix1
-rw-r--r--lib/systems/parse.nix3
4 files changed, 14 insertions, 6 deletions
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index 8f579368d6d34..eaee4ffa2874d 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -121,6 +121,8 @@ rec {
         else if final.isAarch64 then "arm64"
         else if final.isx86_32 then "i386"
         else if final.isx86_64 then "x86_64"
+        # linux kernel does not distinguish microblaze/microblazeel
+        else if final.isMicroBlaze then "microblaze"
         else if final.isMips32 then "mips"
         else if final.isMips64 then "mips"    # linux kernel does not distinguish mips32/mips64
         else if final.isPower then "powerpc"
diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix
index 90a6eb9f35c97..6b2ea63624af3 100644
--- a/lib/systems/doubles.nix
+++ b/lib/systems/doubles.nix
@@ -26,9 +26,10 @@ let
 
     # Linux
     "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux"
-    "armv7l-linux" "i686-linux" "m68k-linux" "mipsel-linux" "mips64el-linux"
-    "powerpc64-linux" "powerpc64le-linux" "riscv32-linux"
-    "riscv64-linux" "s390-linux" "s390x-linux" "x86_64-linux"
+    "armv7l-linux" "i686-linux" "m68k-linux" "microblaze-linux"
+    "microblazeel-linux" "mipsel-linux" "mips64el-linux" "powerpc64-linux"
+    "powerpc64le-linux" "riscv32-linux" "riscv64-linux" "s390-linux"
+    "s390x-linux" "x86_64-linux"
 
     # MMIXware
     "mmix-mmixware"
@@ -40,9 +41,9 @@ let
 
     # none
     "aarch64_be-none" "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none"
-    "msp430-none" "or1k-none" "m68k-none" "powerpc-none" "powerpcle-none"
-    "riscv32-none" "riscv64-none" "rx-none" "s390-none" "s390x-none" "vc4-none"
-    "x86_64-none"
+    "microblaze-none" "microblazeel-none" "msp430-none" "or1k-none" "m68k-none"
+    "powerpc-none" "powerpcle-none" "riscv32-none" "riscv64-none" "rx-none"
+    "s390-none" "s390x-none" "vc4-none" "x86_64-none"
 
     # OpenBSD
     "i686-openbsd" "x86_64-openbsd"
@@ -71,6 +72,7 @@ in {
   x86           = filterDoubles predicates.isx86;
   i686          = filterDoubles predicates.isi686;
   x86_64        = filterDoubles predicates.isx86_64;
+  microblaze    = filterDoubles predicates.isMicroBlaze;
   mips          = filterDoubles predicates.isMips;
   mmix          = filterDoubles predicates.isMmix;
   riscv         = filterDoubles predicates.isRiscV;
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index dbffca0300b56..54d398018e0b1 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -17,6 +17,7 @@ rec {
     isAarch32      = { cpu = { family = "arm"; bits = 32; }; };
     isAarch64      = { cpu = { family = "arm"; bits = 64; }; };
     isAarch        = { cpu = { family = "arm"; }; };
+    isMicroBlaze   = { cpu = { family = "microblaze"; }; };
     isMips         = { cpu = { family = "mips"; }; };
     isMips32       = { cpu = { family = "mips"; bits = 32; }; };
     isMips64       = { cpu = { family = "mips"; bits = 64; }; };
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index 9d2571c993a99..be5b1a0892bba 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -88,6 +88,9 @@ rec {
     i686     = { bits = 32; significantByte = littleEndian; family = "x86"; arch = "i686"; };
     x86_64   = { bits = 64; significantByte = littleEndian; family = "x86"; arch = "x86-64"; };
 
+    microblaze   = { bits = 32; significantByte = bigEndian;    family = "microblaze"; };
+    microblazeel = { bits = 32; significantByte = littleEndian; family = "microblaze"; };
+
     mips     = { bits = 32; significantByte = bigEndian;    family = "mips"; };
     mipsel   = { bits = 32; significantByte = littleEndian; family = "mips"; };
     mips64   = { bits = 64; significantByte = bigEndian;    family = "mips"; };