Skip to content

Commit cf3d958

Browse files
[ICECUBE800BANW] Added fw_util support for P2 icecube800banw
- Added CPU CPLD programming support to fw_util config file. The upgrade operation happens through JTAG and is supported only in the P2 variant - Added the firmware_onboarding config for icecube800banw platform - Tested the change by downgrading and upgrading the firmware targets through fw_util - This change is dependent on the BSP version 0.7.27 Change-Id: Ie67b14bc7a0742a5e169e0e66a7327a2ef511d80
1 parent 7ed0187 commit cf3d958

5 files changed

Lines changed: 68 additions & 7 deletions

File tree

fboss/platform/configs/icecube800banw/fw_util.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
11
{
22
"fwConfigs": {
3+
"cpu_cpld": {
4+
"upgrade": [
5+
{
6+
"commandType": "jam",
7+
"jamArgs": {
8+
"jamExtraArgs": [
9+
"-aprogram",
10+
"-fmarconi_cpu_cpld",
11+
"-v"
12+
]
13+
}
14+
}
15+
],
16+
"version": {
17+
"versionType": "sysfs",
18+
"path": "/run/devmap/inforoms/CPU_FPGA_INFO_ROM/fw_ver"
19+
},
20+
"priority": 2
21+
},
322
"smb_fpga": {
423
"upgrade": [
524
{
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
load("@fbcode_macros//build_defs:export_files.bzl", "export_file")
2+
3+
oncall("fboss_platform")
4+
5+
export_file(
6+
name = "spec",
7+
src = "spec.json",
8+
visibility = [
9+
"//fboss/platform/firmware_onboarding/...",
10+
],
11+
)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"spec_version": "1.0",
3+
4+
"platform": {
5+
"name": "icecube800banw",
6+
"silicon": [
7+
{ "name": "TH6" }
8+
]
9+
},
10+
11+
"components": [
12+
{
13+
"name": "smb_fpga",
14+
"platform_identifier": "icecube800banw",
15+
"location": "Switch Main Board",
16+
"display_location": "smb",
17+
"field_replaceable": false,
18+
"firmware": {
19+
"priority": 1,
20+
"shared_with_platforms": []
21+
}
22+
},
23+
{
24+
"name": "cpu_cpld",
25+
"platform_identifier": "icecube800banw",
26+
"location": "System Control Module",
27+
"display_location": "scm",
28+
"field_replaceable": true,
29+
"firmware": {
30+
"priority": 2,
31+
"shared_with_platforms": []
32+
}
33+
}
34+
]
35+
}

fboss/platform/firmware_onboarding/validator/BUCK

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ python_unittest(
5555
network_access = network_access_utils.none(),
5656
resources = {
5757
"//fboss/platform/firmware_onboarding/configs/icecube800bc:spec": "tests/icecube800bc.json",
58+
"//fboss/platform/firmware_onboarding/configs/icecube800banw:spec": "tests/icecube800banw.json",
5859
},
5960
deps = [":preflight"],
6061
)

fboss/platform/firmware_onboarding/validator/tests/test_canonical_examples.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,7 @@
2929
run_preflight,
3030
)
3131

32-
33-
_CANONICAL_PLATFORMS: list[str] = [
34-
"icecube800bc",
35-
]
32+
_CANONICAL_PLATFORMS: list[str] = ["icecube800bc", "icecube800banw"]
3633

3734

3835
class CanonicalExamplesTest(unittest.TestCase):
@@ -73,7 +70,5 @@ def test_each_canonical_spec_passes_preflight(self) -> None:
7370
# stays in sync if new tiers (e.g. `[depcheck]`) are added.
7471
hard = [e for e in errors if _is_hard_failure(e)]
7572
self.assertEqual(
76-
hard,
77-
[],
78-
f"{platform}/spec.json failed preflight: {errors}",
73+
hard, [], f"{platform}/spec.json failed preflight: {errors}"
7974
)

0 commit comments

Comments
 (0)