From d3d1e45f72d348220ba46b09db8640627b645980 Mon Sep 17 00:00:00 2001
From: Junior Martinez <junior.martinez@silabs.com>
Date: Thu, 2 Dec 2021 11:09:21 -0500
Subject: [PATCH 1/7] Add task to build and flash efr32 examples for selected
 boards. Update efr32.py and targets.py to support board selection

---
 .vscode/tasks.json              | 57 +++++++++++++++++++++++++++++++--
 scripts/build/build/targets.py  | 33 ++++++++++++-------
 scripts/build/builders/efr32.py | 23 +++++++++++++
 3 files changed, 100 insertions(+), 13 deletions(-)

diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index fda87757b21a9c..f4c7526a810fea 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -170,7 +170,31 @@
                     "${workspaceFolder}/src/test_driver/mbed/unit_tests/build"
                 ]
             }
-        }
+        },
+        {
+            "label": "Build specific EFR32 example",
+            "type": "shell",
+            "command": "scripts/run_in_build_env.sh",
+            "args": [
+                "./scripts/build/build_examples.py --target efr32-${input:efr32Board}-${input:efr32App}  build"
+            ],
+            "group": "build",
+            "problemMatcher": {
+                "base": "$gcc"
+            }
+        },
+        {
+            "label": "Flash EFR32 board",
+            "type": "shell",
+            "command": "python3",
+            "args": [
+                "${workspaceFolder}/out/efr32-${input:efr32Board}-${input:efr32App}/chip-efr32-*.flash.py"
+            ],
+            "group": "build",
+            "problemMatcher": {
+                "base": "$gcc"
+            }
+        },
     ],
     "inputs": [
         {
@@ -292,6 +316,35 @@
                 "telink-tlsr9518adk80d-light",
                 "tizen-arm-light"
             ]
-        }
+        },
+        {
+            "type": "pickString",
+            "id": "efr32App",
+            "description": "What mbed application do you want to use?",
+            "options": [
+                "light",
+                "light-rpc",
+                "lock",
+                "unit-test",
+                "window-covering",
+            ],
+            "default": "light"
+        },
+        {
+            "type": "pickString",
+            "id": "efr32Board",
+            "description": "What EFR32 board are you building for?",
+            "options": [ 
+                "brd4161a",
+                "brd4163a",
+                "brd4164a",
+                "brd4166a",
+                "brd4170a",
+                "brd4186a",
+                "brd4187a",
+                "brd4304a",
+            ],
+            "default": "brd4161a"
+        },
     ]
 }
diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py
index b6f90a30e8cc60..0acb3f92809449 100644
--- a/scripts/build/build/targets.py
+++ b/scripts/build/build/targets.py
@@ -214,20 +214,31 @@ def Esp32Targets():
 
 
 def Efr32Targets():
-    efr_target = Target('efr32-brd4161a', Efr32Builder,
-                        board=Efr32Board.BRD4161A)
+    efr_target = Target('efr32', Efr32Builder)
+    
+    board_targets = [
+        efr_target.Extend('brd4161a',board=Efr32Board.BRD4161A),
+        efr_target.Extend('brd4163a',board=Efr32Board.BRD4163A),
+        efr_target.Extend('brd4164a',board=Efr32Board.BRD4164A),
+        efr_target.Extend('brd4166a',board=Efr32Board.BRD4166A),
+        efr_target.Extend('brd4170a',board=Efr32Board.BRD4170A),
+        efr_target.Extend('brd4186a',board=Efr32Board.BRD4186A),
+        efr_target.Extend('brd4187a',board=Efr32Board.BRD4187A),
+        efr_target.Extend('brd4304a',board=Efr32Board.BRD4304A)
+    ]
 
-    yield efr_target.Extend('window-covering', app=Efr32App.WINDOW_COVERING)
-    yield efr_target.Extend('unit-test', app=Efr32App.UNIT_TEST)
+    for board_target in board_targets:
+        yield board_target.Extend('window-covering', app=Efr32App.WINDOW_COVERING)
+        yield board_target.Extend('unit-test', app=Efr32App.UNIT_TEST)
 
-    rpc_aware_targets = [
-        efr_target.Extend('light', app=Efr32App.LIGHT),
-        efr_target.Extend('lock', app=Efr32App.LOCK)
-    ]
+        rpc_aware_targets = [
+            board_target.Extend('light', app=Efr32App.LIGHT),
+            board_target.Extend('lock', app=Efr32App.LOCK)
+        ]
 
-    for target in rpc_aware_targets:
-        yield target
-        yield target.Extend('rpc', enable_rpcs=True)
+        for target in rpc_aware_targets:
+            yield target
+            yield target.Extend('rpc', enable_rpcs=True)
 
 
 def NrfTargets():
diff --git a/scripts/build/builders/efr32.py b/scripts/build/builders/efr32.py
index 4f90419291bb6c..437138f4d6b3de 100644
--- a/scripts/build/builders/efr32.py
+++ b/scripts/build/builders/efr32.py
@@ -67,10 +67,33 @@ def BuildRoot(self, root):
 
 class Efr32Board(Enum):
     BRD4161A = 1
+    BRD4163A = 2
+    BRD4164A = 3
+    BRD4166A = 4
+    BRD4170A = 5
+    BRD4186A = 6
+    BRD4187A = 7
+    BRD4304A = 8
 
     def GnArgName(self):
         if self == Efr32Board.BRD4161A:
             return 'BRD4161A'
+        elif self == Efr32Board.BRD4163A:
+            return 'BRD4163A'
+        elif self == Efr32Board.BRD4164A:
+            return 'BRD4164A'
+        elif self == Efr32Board.BRD4166A:
+            return 'BRD4166A'
+        elif self == Efr32Board.BRD4170A:
+            return 'BRD4170A'
+        elif self == Efr32Board.BRD4186A:
+            return 'BRD4186A'
+        elif self == Efr32Board.BRD4187A:
+            return 'BRD4187A'
+        elif self == Efr32Board.BRD4304A:
+            return 'BRD4304A'
+        else:
+            raise Exception('Unknown board #: %r' % self)
 
 
 class Efr32Builder(GnBuilder):

From 5b792077eae3ffd8d779053fcc00f39da0924f5b Mon Sep 17 00:00:00 2001
From: Junior Martinez <junior.martinez@silabs.com>
Date: Thu, 2 Dec 2021 11:23:42 -0500
Subject: [PATCH 2/7] restyle

---
 .vscode/tasks.json             | 10 +++++-----
 scripts/build/build/targets.py | 18 +++++++++---------
 2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index f4c7526a810fea..8a2172f151b2b0 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -194,7 +194,7 @@
             "problemMatcher": {
                 "base": "$gcc"
             }
-        },
+        }
     ],
     "inputs": [
         {
@@ -326,7 +326,7 @@
                 "light-rpc",
                 "lock",
                 "unit-test",
-                "window-covering",
+                "window-covering"
             ],
             "default": "light"
         },
@@ -334,7 +334,7 @@
             "type": "pickString",
             "id": "efr32Board",
             "description": "What EFR32 board are you building for?",
-            "options": [ 
+            "options": [
                 "brd4161a",
                 "brd4163a",
                 "brd4164a",
@@ -342,9 +342,9 @@
                 "brd4170a",
                 "brd4186a",
                 "brd4187a",
-                "brd4304a",
+                "brd4304a"
             ],
             "default": "brd4161a"
-        },
+        }
     ]
 }
diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py
index 0acb3f92809449..ec6cd105de2978 100644
--- a/scripts/build/build/targets.py
+++ b/scripts/build/build/targets.py
@@ -215,16 +215,16 @@ def Esp32Targets():
 
 def Efr32Targets():
     efr_target = Target('efr32', Efr32Builder)
-    
+
     board_targets = [
-        efr_target.Extend('brd4161a',board=Efr32Board.BRD4161A),
-        efr_target.Extend('brd4163a',board=Efr32Board.BRD4163A),
-        efr_target.Extend('brd4164a',board=Efr32Board.BRD4164A),
-        efr_target.Extend('brd4166a',board=Efr32Board.BRD4166A),
-        efr_target.Extend('brd4170a',board=Efr32Board.BRD4170A),
-        efr_target.Extend('brd4186a',board=Efr32Board.BRD4186A),
-        efr_target.Extend('brd4187a',board=Efr32Board.BRD4187A),
-        efr_target.Extend('brd4304a',board=Efr32Board.BRD4304A)
+        efr_target.Extend('brd4161a', board=Efr32Board.BRD4161A),
+        efr_target.Extend('brd4163a', board=Efr32Board.BRD4163A),
+        efr_target.Extend('brd4164a', board=Efr32Board.BRD4164A),
+        efr_target.Extend('brd4166a', board=Efr32Board.BRD4166A),
+        efr_target.Extend('brd4170a', board=Efr32Board.BRD4170A),
+        efr_target.Extend('brd4186a', board=Efr32Board.BRD4186A),
+        efr_target.Extend('brd4187a', board=Efr32Board.BRD4187A),
+        efr_target.Extend('brd4304a', board=Efr32Board.BRD4304A)
     ]
 
     for board_target in board_targets:

From d62555710506b0c125a232eb49bbda7adea7c4b5 Mon Sep 17 00:00:00 2001
From: Junior Martinez <junior.martinez@silabs.com>
Date: Thu, 2 Dec 2021 12:51:35 -0500
Subject: [PATCH 3/7] add Global blacklist for all boards except BRD4161A

---
 scripts/build/build/targets.py | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py
index ec6cd105de2978..1abcae611defd3 100644
--- a/scripts/build/build/targets.py
+++ b/scripts/build/build/targets.py
@@ -218,13 +218,13 @@ def Efr32Targets():
 
     board_targets = [
         efr_target.Extend('brd4161a', board=Efr32Board.BRD4161A),
-        efr_target.Extend('brd4163a', board=Efr32Board.BRD4163A),
-        efr_target.Extend('brd4164a', board=Efr32Board.BRD4164A),
-        efr_target.Extend('brd4166a', board=Efr32Board.BRD4166A),
-        efr_target.Extend('brd4170a', board=Efr32Board.BRD4170A),
-        efr_target.Extend('brd4186a', board=Efr32Board.BRD4186A),
-        efr_target.Extend('brd4187a', board=Efr32Board.BRD4187A),
-        efr_target.Extend('brd4304a', board=Efr32Board.BRD4304A)
+        efr_target.Extend('brd4163a', board=Efr32Board.BRD4163A).GlobBlacklist('only user requested'),
+        efr_target.Extend('brd4164a', board=Efr32Board.BRD4164A).GlobBlacklist('only user requested'),
+        efr_target.Extend('brd4166a', board=Efr32Board.BRD4166A).GlobBlacklist('only user requested'),
+        efr_target.Extend('brd4170a', board=Efr32Board.BRD4170A).GlobBlacklist('only user requested'),
+        efr_target.Extend('brd4186a', board=Efr32Board.BRD4186A).GlobBlacklist('only user requested'),
+        efr_target.Extend('brd4187a', board=Efr32Board.BRD4187A).GlobBlacklist('only user requested'),
+        efr_target.Extend('brd4304a', board=Efr32Board.BRD4304A).GlobBlacklist('only user requested')
     ]
 
     for board_target in board_targets:

From 53df79a57928c71031c4f0cf6185b711bf34ba49 Mon Sep 17 00:00:00 2001
From: "Restyled.io" <commits@restyled.io>
Date: Thu, 2 Dec 2021 17:52:47 +0000
Subject: [PATCH 4/7] Restyled by autopep8

---
 scripts/build/build/targets.py | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py
index 1abcae611defd3..ccc8da7a91ef89 100644
--- a/scripts/build/build/targets.py
+++ b/scripts/build/build/targets.py
@@ -218,13 +218,20 @@ def Efr32Targets():
 
     board_targets = [
         efr_target.Extend('brd4161a', board=Efr32Board.BRD4161A),
-        efr_target.Extend('brd4163a', board=Efr32Board.BRD4163A).GlobBlacklist('only user requested'),
-        efr_target.Extend('brd4164a', board=Efr32Board.BRD4164A).GlobBlacklist('only user requested'),
-        efr_target.Extend('brd4166a', board=Efr32Board.BRD4166A).GlobBlacklist('only user requested'),
-        efr_target.Extend('brd4170a', board=Efr32Board.BRD4170A).GlobBlacklist('only user requested'),
-        efr_target.Extend('brd4186a', board=Efr32Board.BRD4186A).GlobBlacklist('only user requested'),
-        efr_target.Extend('brd4187a', board=Efr32Board.BRD4187A).GlobBlacklist('only user requested'),
-        efr_target.Extend('brd4304a', board=Efr32Board.BRD4304A).GlobBlacklist('only user requested')
+        efr_target.Extend('brd4163a', board=Efr32Board.BRD4163A).GlobBlacklist(
+            'only user requested'),
+        efr_target.Extend('brd4164a', board=Efr32Board.BRD4164A).GlobBlacklist(
+            'only user requested'),
+        efr_target.Extend('brd4166a', board=Efr32Board.BRD4166A).GlobBlacklist(
+            'only user requested'),
+        efr_target.Extend('brd4170a', board=Efr32Board.BRD4170A).GlobBlacklist(
+            'only user requested'),
+        efr_target.Extend('brd4186a', board=Efr32Board.BRD4186A).GlobBlacklist(
+            'only user requested'),
+        efr_target.Extend('brd4187a', board=Efr32Board.BRD4187A).GlobBlacklist(
+            'only user requested'),
+        efr_target.Extend('brd4304a', board=Efr32Board.BRD4304A).GlobBlacklist(
+            'only user requested')
     ]
 
     for board_target in board_targets:

From 299b79994b53a36c62f9eb317c8a582f6a3061f8 Mon Sep 17 00:00:00 2001
From: Junior Martinez <junior.martinez@silabs.com>
Date: Thu, 2 Dec 2021 20:05:24 -0500
Subject: [PATCH 5/7] address PR comments

---
 .vscode/tasks.json | 79 +++++++++++++++++++++-------------------------
 1 file changed, 36 insertions(+), 43 deletions(-)

diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 8a2172f151b2b0..a0f49412f87aed 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -171,26 +171,13 @@
                 ]
             }
         },
-        {
-            "label": "Build specific EFR32 example",
-            "type": "shell",
-            "command": "scripts/run_in_build_env.sh",
-            "args": [
-                "./scripts/build/build_examples.py --target efr32-${input:efr32Board}-${input:efr32App}  build"
-            ],
-            "group": "build",
-            "problemMatcher": {
-                "base": "$gcc"
-            }
-        },
         {
             "label": "Flash EFR32 board",
             "type": "shell",
             "command": "python3",
             "args": [
-                "${workspaceFolder}/out/efr32-${input:efr32Board}-${input:efr32App}/chip-efr32-*.flash.py"
+                "${workspaceFolder}/out/${input:exampleTarget}/chip-efr32-*.flash.py"
             ],
-            "group": "build",
             "problemMatcher": {
                 "base": "$gcc"
             }
@@ -253,10 +240,45 @@
                 "android-x64-chip-tool",
                 "android-x86-chip-tool",
                 "efr32-brd4161a-light",
+                "efr32-brd4163a-light",
+                "efr32-brd4164a-light",
+                "efr32-brd4166a-light",
+                "efr32-brd4170a-light",
+                "efr32-brd4186a-light",
+                "efr32-brd4187a-light",
+                "efr32-brd4304a-light",
                 "efr32-brd4161a-light-rpc",
+                "efr32-brd4163a-light-rpc",
+                "efr32-brd4164a-light-rpc",
+                "efr32-brd4166a-light-rpc",
+                "efr32-brd4170a-light-rpc",
+                "efr32-brd4186a-light-rpc",
+                "efr32-brd4187a-light-rpc",
+                "efr32-brd4304a-light-rpc",
                 "efr32-brd4161a-lock",
+                "efr32-brd4163a-lock",
+                "efr32-brd4164a-lock",
+                "efr32-brd4166a-lock",
+                "efr32-brd4170a-lock",
+                "efr32-brd4186a-lock",
+                "efr32-brd4187a-lock",
+                "efr32-brd4304a-lock",
                 "efr32-brd4161a-unit-test",
+                "efr32-brd4163a-unit-test",
+                "efr32-brd4164a-unit-test",
+                "efr32-brd4166a-unit-test",
+                "efr32-brd4170a-unit-test",
+                "efr32-brd4186a-unit-test",
+                "efr32-brd4187a-unit-test",
+                "efr32-brd4304a-unit-test",
                 "efr32-brd4161a-window-covering",
+                "efr32-brd4163a-window-covering",
+                "efr32-brd4164a-window-covering",
+                "efr32-brd4166a-window-covering",
+                "efr32-brd4170a-window-covering",
+                "efr32-brd4186a-window-covering",
+                "efr32-brd4187a-window-covering",
+                "efr32-brd4304a-window-covering",
                 "esp32-c3devkit-all-clusters",
                 "esp32-devkitc-all-clusters",
                 "esp32-devkitc-all-clusters-ipv6only",
@@ -316,35 +338,6 @@
                 "telink-tlsr9518adk80d-light",
                 "tizen-arm-light"
             ]
-        },
-        {
-            "type": "pickString",
-            "id": "efr32App",
-            "description": "What mbed application do you want to use?",
-            "options": [
-                "light",
-                "light-rpc",
-                "lock",
-                "unit-test",
-                "window-covering"
-            ],
-            "default": "light"
-        },
-        {
-            "type": "pickString",
-            "id": "efr32Board",
-            "description": "What EFR32 board are you building for?",
-            "options": [
-                "brd4161a",
-                "brd4163a",
-                "brd4164a",
-                "brd4166a",
-                "brd4170a",
-                "brd4186a",
-                "brd4187a",
-                "brd4304a"
-            ],
-            "default": "brd4161a"
         }
     ]
 }

From 87d4718cf220312450a5dfb8af6e0b587a7461a4 Mon Sep 17 00:00:00 2001
From: Junior Martinez <junior.martinez@silabs.com>
Date: Thu, 2 Dec 2021 20:58:48 -0500
Subject: [PATCH 6/7] Update testdata txt files to validate news boards in all
 targets dry-run

---
 .../testdata/all_targets_except_host.txt      |  42 +++++
 .../build/testdata/build_all_except_host.txt  | 150 ++++++++++++++++++
 2 files changed, 192 insertions(+)

diff --git a/scripts/build/testdata/all_targets_except_host.txt b/scripts/build/testdata/all_targets_except_host.txt
index 29b96163e85a39..b3f1f751625cb9 100644
--- a/scripts/build/testdata/all_targets_except_host.txt
+++ b/scripts/build/testdata/all_targets_except_host.txt
@@ -15,6 +15,48 @@ efr32-brd4161a-lock
 efr32-brd4161a-lock-rpc
 efr32-brd4161a-unit-test
 efr32-brd4161a-window-covering
+efr32-brd4163a-light (NOGLOB: only user requested)
+efr32-brd4163a-light-rpc (NOGLOB: only user requested)
+efr32-brd4163a-lock (NOGLOB: only user requested)
+efr32-brd4163a-lock-rpc (NOGLOB: only user requested)
+efr32-brd4163a-unit-test (NOGLOB: only user requested)
+efr32-brd4163a-window-covering (NOGLOB: only user requested)
+efr32-brd4164a-light (NOGLOB: only user requested)
+efr32-brd4164a-light-rpc (NOGLOB: only user requested)
+efr32-brd4164a-lock (NOGLOB: only user requested)
+efr32-brd4164a-lock-rpc (NOGLOB: only user requested)
+efr32-brd4164a-unit-test (NOGLOB: only user requested)
+efr32-brd4164a-window-covering (NOGLOB: only user requested)
+efr32-brd4166a-light (NOGLOB: only user requested)
+efr32-brd4166a-light-rpc (NOGLOB: only user requested)
+efr32-brd4166a-lock (NOGLOB: only user requested)
+efr32-brd4166a-lock-rpc (NOGLOB: only user requested)
+efr32-brd4166a-unit-test (NOGLOB: only user requested)
+efr32-brd4166a-window-covering (NOGLOB: only user requested)
+efr32-brd4170a-light (NOGLOB: only user requested)
+efr32-brd4170a-light-rpc (NOGLOB: only user requested)
+efr32-brd4170a-lock (NOGLOB: only user requested)
+efr32-brd4170a-lock-rpc (NOGLOB: only user requested)
+efr32-brd4170a-unit-test (NOGLOB: only user requested)
+efr32-brd4170a-window-covering (NOGLOB: only user requested)
+efr32-brd4186a-light (NOGLOB: only user requested)
+efr32-brd4186a-light-rpc (NOGLOB: only user requested)
+efr32-brd4186a-lock (NOGLOB: only user requested)
+efr32-brd4186a-lock-rpc (NOGLOB: only user requested)
+efr32-brd4186a-unit-test (NOGLOB: only user requested)
+efr32-brd4186a-window-covering (NOGLOB: only user requested)
+efr32-brd4187a-light (NOGLOB: only user requested)
+efr32-brd4187a-light-rpc (NOGLOB: only user requested)
+efr32-brd4187a-lock (NOGLOB: only user requested)
+efr32-brd4187a-lock-rpc (NOGLOB: only user requested)
+efr32-brd4187a-unit-test (NOGLOB: only user requested)
+efr32-brd4187a-window-covering (NOGLOB: only user requested)
+efr32-brd4304a-light (NOGLOB: only user requested)
+efr32-brd4304a-light-rpc (NOGLOB: only user requested)
+efr32-brd4304a-lock (NOGLOB: only user requested)
+efr32-brd4304a-lock-rpc (NOGLOB: only user requested)
+efr32-brd4304a-unit-test (NOGLOB: only user requested)
+efr32-brd4304a-window-covering (NOGLOB: only user requested)
 esp32-c3devkit-all-clusters
 esp32-devkitc-all-clusters
 esp32-devkitc-all-clusters-ipv6only
diff --git a/scripts/build/testdata/build_all_except_host.txt b/scripts/build/testdata/build_all_except_host.txt
index 3c99220615f5c6..fbc3496a0c4566 100644
--- a/scripts/build/testdata/build_all_except_host.txt
+++ b/scripts/build/testdata/build_all_except_host.txt
@@ -142,6 +142,81 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src
 # Generating efr32-brd4161a-window-covering
 gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4161A"' {out}/efr32-brd4161a-window-covering
 
+# Generating efr32-brd4163a-light
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4163A"' {out}/efr32-brd4163a-light
+
+# Generating efr32-brd4163a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4163A" import("//with_pw_rpc.gni")' {out}/efr32-brd4163a-light-rpc
+
+# Generating efr32-brd4163a-lock
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A"' {out}/efr32-brd4163a-lock
+
+# Generating efr32-brd4170a-lock
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A"' {out}/efr32-brd4170a-lock
+
+# Generating efr32-brd4170a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A" import("//with_pw_rpc.gni")' {out}/efr32-brd4170a-lock-rpc
+
+# Generating efr32-brd4170a-unit-test
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4170A"' {out}/efr32-brd4170a-unit-test
+
+# Generating efr32-brd4170a-window-covering
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4170A"' {out}/efr32-brd4170a-window-covering
+
+# Generating efr32-brd4186a-light
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4186A"' {out}/efr32-brd4186a-light
+
+# Generating efr32-brd4186a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4186A" import("//with_pw_rpc.gni")' {out}/efr32-brd4186a-light-rpc
+
+# Generating efr32-brd4186a-lock
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4186A"' {out}/efr32-brd4186a-lock
+
+# Generating efr32-brd4186a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4186A" import("//with_pw_rpc.gni")' {out}/efr32-brd4186a-lock-rpc
+
+# Generating efr32-brd4186a-unit-test
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4186A"' {out}/efr32-brd4186a-unit-test
+
+# Generating efr32-brd4186a-window-covering
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4186A"' {out}/efr32-brd4186a-window-covering
+
+# Generating efr32-brd4187a-light
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4187A"' {out}/efr32-brd4187a-light
+
+# Generating efr32-brd4187a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4187A" import("//with_pw_rpc.gni")' {out}/efr32-brd4187a-light-rpc
+
+# Generating efr32-brd4187a-lock
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4187A"' {out}/efr32-brd4187a-lock
+
+# Generating efr32-brd4187a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4187A" import("//with_pw_rpc.gni")' {out}/efr32-brd4187a-lock-rpc
+
+# Generating efr32-brd4187a-unit-test
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4187A"' {out}/efr32-brd4187a-unit-test
+
+# Generating efr32-brd4187a-window-covering
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4187A"' {out}/efr32-brd4187a-window-covering
+
+# Generating efr32-brd4304a-light
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4304A"' {out}/efr32-brd4304a-light
+
+# Generating efr32-brd4304a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4304A" import("//with_pw_rpc.gni")' {out}/efr32-brd4304a-light-rpc
+
+# Generating efr32-brd4304a-lock
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4304A"' {out}/efr32-brd4304a-lock
+
+# Generating efr32-brd4304a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4304A" import("//with_pw_rpc.gni")' {out}/efr32-brd4304a-lock-rpc
+
+# Generating efr32-brd4304a-unit-test
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4304A"' {out}/efr32-brd4304a-unit-test
+
+# Generating efr32-brd4304a-window-covering
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4304A"' {out}/efr32-brd4304a-window-covering
+
 # Generating esp32-c3devkit-all-clusters
 mkdir -p {out}/esp32-c3devkit-all-clusters
 
@@ -601,6 +676,81 @@ ninja -C {out}/efr32-brd4161a-unit-test
 
 # Building efr32-brd4161a-window-covering
 ninja -C {out}/efr32-brd4161a-window-covering
+# Building efr32-brd4163a-light
+ninja -C {out}/efr32-brd4163a-light
+
+# Building efr32-brd4163a-light-rpc
+ninja -C {out}/efr32-brd4163a-light-rpc
+
+# Building efr32-brd4163a-lock
+ninja -C {out}/efr32-brd4163a-lock
+
+# Building efr32-brd4163a-lock-rpc
+ninja -C {out}/efr32-brd4163a-lock-rpc
+
+# Building efr32-brd4163a-unit-test
+ninja -C {out}/efr32-brd4163a-unit-test
+
+# Building efr32-brd4163a-window-covering
+ninja -C {out}/efr32-brd4163a-window-covering
+
+# Building efr32-brd4164a-light
+ninja -C {out}/efr32-brd4164a-light
+
+# Building efr32-brd4164a-light-rpc
+ninja -C {out}/efr32-brd4164a-light-rpc
+
+# Building efr32-brd4164a-lock
+ninja -C {out}/efr32-brd4164a-lock
+
+
+# Building efr32-brd4186a-lock
+ninja -C {out}/efr32-brd4186a-lock
+
+# Building efr32-brd4186a-lock-rpc
+ninja -C {out}/efr32-brd4186a-lock-rpc
+
+# Building efr32-brd4186a-unit-test
+ninja -C {out}/efr32-brd4186a-unit-test
+
+# Building efr32-brd4186a-window-covering
+ninja -C {out}/efr32-brd4186a-window-covering
+
+# Building efr32-brd4187a-light
+ninja -C {out}/efr32-brd4187a-light
+
+# Building efr32-brd4187a-light-rpc
+ninja -C {out}/efr32-brd4187a-light-rpc
+
+# Building efr32-brd4187a-lock
+ninja -C {out}/efr32-brd4187a-lock
+
+# Building efr32-brd4187a-lock-rpc
+ninja -C {out}/efr32-brd4187a-lock-rpc
+
+# Building efr32-brd4187a-unit-test
+ninja -C {out}/efr32-brd4187a-unit-test
+
+# Building efr32-brd4187a-window-covering
+ninja -C {out}/efr32-brd4187a-window-covering
+
+# Building efr32-brd4304a-light
+ninja -C {out}/efr32-brd4304a-light
+
+# Building efr32-brd4304a-light-rpc
+ninja -C {out}/efr32-brd4304a-light-rpc
+
+# Building efr32-brd4304a-lock
+ninja -C {out}/efr32-brd4304a-lock
+
+# Building efr32-brd4304a-lock-rpc
+ninja -C {out}/efr32-brd4304a-lock-rpc
+
+# Building efr32-brd4304a-unit-test
+ninja -C {out}/efr32-brd4304a-unit-test
+
+# Building efr32-brd4304a-window-covering
+ninja -C {out}/efr32-brd4304a-window-covering
 
 rm -f examples/all-clusters-app/esp32/sdkconfig
 

From 6b9caa2ead7f5d46bc23e92173a7d6ab11cfd6db Mon Sep 17 00:00:00 2001
From: Junior Martinez <junior.martinez@silabs.com>
Date: Fri, 3 Dec 2021 09:58:53 -0500
Subject: [PATCH 7/7] fix build_all_except_host

---
 .../build/testdata/build_all_except_host.txt  | 102 ++++++++++++++++++
 1 file changed, 102 insertions(+)

diff --git a/scripts/build/testdata/build_all_except_host.txt b/scripts/build/testdata/build_all_except_host.txt
index fbc3496a0c4566..d075af52751845 100644
--- a/scripts/build/testdata/build_all_except_host.txt
+++ b/scripts/build/testdata/build_all_except_host.txt
@@ -151,6 +151,57 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa
 # Generating efr32-brd4163a-lock
 gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A"' {out}/efr32-brd4163a-lock
 
+# Generating efr32-brd4163a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A" import("//with_pw_rpc.gni")' {out}/efr32-brd4163a-lock-rpc
+
+# Generating efr32-brd4163a-unit-test
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4163A"' {out}/efr32-brd4163a-unit-test
+
+# Generating efr32-brd4163a-window-covering
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4163A"' {out}/efr32-brd4163a-window-covering
+
+# Generating efr32-brd4164a-light
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4164A"' {out}/efr32-brd4164a-light
+
+# Generating efr32-brd4164a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4164A" import("//with_pw_rpc.gni")' {out}/efr32-brd4164a-light-rpc
+
+# Generating efr32-brd4164a-lock
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4164A"' {out}/efr32-brd4164a-lock
+
+# Generating efr32-brd4164a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4164A" import("//with_pw_rpc.gni")' {out}/efr32-brd4164a-lock-rpc
+
+# Generating efr32-brd4164a-unit-test
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4164A"' {out}/efr32-brd4164a-unit-test
+
+# Generating efr32-brd4164a-window-covering
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4164A"' {out}/efr32-brd4164a-window-covering
+
+# Generating efr32-brd4166a-light
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4166A"' {out}/efr32-brd4166a-light
+
+# Generating efr32-brd4166a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4166A" import("//with_pw_rpc.gni")' {out}/efr32-brd4166a-light-rpc
+
+# Generating efr32-brd4166a-lock
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4166A"' {out}/efr32-brd4166a-lock
+
+# Generating efr32-brd4166a-lock-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4166A" import("//with_pw_rpc.gni")' {out}/efr32-brd4166a-lock-rpc
+
+# Generating efr32-brd4166a-unit-test
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4166A"' {out}/efr32-brd4166a-unit-test
+
+# Generating efr32-brd4166a-window-covering
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4166A"' {out}/efr32-brd4166a-window-covering
+
+# Generating efr32-brd4170a-light
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4170A"' {out}/efr32-brd4170a-light
+
+# Generating efr32-brd4170a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4170A" import("//with_pw_rpc.gni")' {out}/efr32-brd4170a-light-rpc
+
 # Generating efr32-brd4170a-lock
 gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A"' {out}/efr32-brd4170a-lock
 
@@ -676,6 +727,7 @@ ninja -C {out}/efr32-brd4161a-unit-test
 
 # Building efr32-brd4161a-window-covering
 ninja -C {out}/efr32-brd4161a-window-covering
+
 # Building efr32-brd4163a-light
 ninja -C {out}/efr32-brd4163a-light
 
@@ -703,6 +755,56 @@ ninja -C {out}/efr32-brd4164a-light-rpc
 # Building efr32-brd4164a-lock
 ninja -C {out}/efr32-brd4164a-lock
 
+# Building efr32-brd4164a-lock-rpc
+ninja -C {out}/efr32-brd4164a-lock-rpc
+
+# Building efr32-brd4164a-unit-test
+ninja -C {out}/efr32-brd4164a-unit-test
+
+# Building efr32-brd4164a-window-covering
+ninja -C {out}/efr32-brd4164a-window-covering
+
+# Building efr32-brd4166a-light
+ninja -C {out}/efr32-brd4166a-light
+
+# Building efr32-brd4166a-light-rpc
+ninja -C {out}/efr32-brd4166a-light-rpc
+
+# Building efr32-brd4166a-lock
+ninja -C {out}/efr32-brd4166a-lock
+
+# Building efr32-brd4166a-lock-rpc
+ninja -C {out}/efr32-brd4166a-lock-rpc
+
+# Building efr32-brd4166a-unit-test
+ninja -C {out}/efr32-brd4166a-unit-test
+
+# Building efr32-brd4166a-window-covering
+ninja -C {out}/efr32-brd4166a-window-covering
+
+# Building efr32-brd4170a-light
+ninja -C {out}/efr32-brd4170a-light
+
+# Building efr32-brd4170a-light-rpc
+ninja -C {out}/efr32-brd4170a-light-rpc
+
+# Building efr32-brd4170a-lock
+ninja -C {out}/efr32-brd4170a-lock
+
+# Building efr32-brd4170a-lock-rpc
+ninja -C {out}/efr32-brd4170a-lock-rpc
+
+# Building efr32-brd4170a-unit-test
+ninja -C {out}/efr32-brd4170a-unit-test
+
+# Building efr32-brd4170a-window-covering
+ninja -C {out}/efr32-brd4170a-window-covering
+
+# Building efr32-brd4186a-light
+ninja -C {out}/efr32-brd4186a-light
+
+# Building efr32-brd4186a-light-rpc
+ninja -C {out}/efr32-brd4186a-light-rpc
 
 # Building efr32-brd4186a-lock
 ninja -C {out}/efr32-brd4186a-lock