summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/systems/examples.nix4
-rw-r--r--lib/systems/inspect.nix1
-rw-r--r--lib/systems/parse.nix5
3 files changed, 10 insertions, 0 deletions
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index 8ba03a63fd8d..e19143543902 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -99,6 +99,10 @@ rec {
   riscv64 = riscv "64";
   riscv32 = riscv "32";
 
+  arduino-uno = {
+    config = "avr";
+    platform = { name = "avr5"; };
+  };
 
   #
   # Darwin
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index 65f560328af5..2fcf1afe4628 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -19,6 +19,7 @@ rec {
     isRiscV        = { cpu = { family = "riscv"; }; };
     isSparc        = { cpu = { family = "sparc"; }; };
     isWasm         = { cpu = { family = "wasm"; }; };
+    isAvr          = { cpu = { family = "avr"; }; };
 
     is32bit        = { cpu = { bits = 32; }; };
     is64bit        = { cpu = { bits = 64; }; };
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index bb26c93f3d7a..058d4bed9085 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -101,6 +101,8 @@ rec {
 
     wasm32   = { bits = 32; significantByte = littleEndian; family = "wasm"; };
     wasm64   = { bits = 64; significantByte = littleEndian; family = "wasm"; };
+
+    avr      = { bits = 8; family = "avr"; };
   };
 
   ################################################################################
@@ -255,6 +257,9 @@ rec {
     setType "system" components;
 
   mkSkeletonFromList = l: {
+    "1" = if elemAt l 0 == "avr"
+      then { cpu = elemAt l 0; kernel = "none"; abi = "unknown"; }
+      else throw "Target specification with 1 components is ambiguous";
     "2" = # We only do 2-part hacks for things Nix already supports
       if elemAt l 1 == "cygwin"
         then { cpu = elemAt l 0;                      kernel = "windows";  abi = "cygnus";   }