Skip to content

Commit add9b65

Browse files
authored
Add platform_asic file to each platform folder in sonic-device-data based package (sonic-net#8542)
#### Why I did it Add platform_asic file to each platform folder in sonic-device-data package. The file content will be used as the ground truth of mapping from PLATFORM_STRING to switch ASIC family. One use case of the mapping is to prevent installing a wrong image, which targets for other ASIC platforms. For example, currently we have several ONIE images naming as sonic-*.bin, it's easy to mistakenly install the wrong image. With this mapping built into image, we could fetch the ONIE platform string, and figure out which ASIC it is using, and check we are installing the correct image. After this PR merged, each platform vendor has to add one mandatory text file `device/PLATFORM_VENDOR/PLATFORM_STRING/platform_asic`, with the content of the platform's switch ASIC family. I will update https://github.com/Azure/SONiC/wiki/Porting-Guide after this PR is merged. You can get a list of the ASIC platforms by `ls -b platform | cat`. Currently the options are ``` barefoot broadcom cavium centec centec-arm64 generic innovium marvell marvell-arm64 marvell-armhf mellanox nephos p4 vs ``` Also support ``` broadcom-dnx ``` #### How I did it #### How to verify it Test one image on DUT. And check the folders under `/usr/share/sonic/device`
1 parent 0780aea commit add9b65

File tree

151 files changed

+216
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

151 files changed

+216
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nephos
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cavium
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
barefoot
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
barefoot
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
barefoot
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom-dnx
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom-dnx
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom-dnx
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom-dnx
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom-dnx
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom-dnx
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom-dnx
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
broadcom
2+
broadcom-dnx
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
barefoot
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
barefoot
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
barefoot
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
innovium
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
centec
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
centec
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
centec
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
centec
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
centec
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
centec
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
centec
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nephos
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nephos
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nephos
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
innovium
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nephos
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nephos
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
barefoot
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
marvell
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
marvell
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
marvell
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
marvell
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
marvell
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
marvell
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mellanox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
marvell
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom-dnx
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nephos
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
broadcom
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
vs
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
vs
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
vs
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
barefoot

src/sonic-device-data/src/Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ test:
1717
for f in $$(find ../../../device -name hwsku.json); do
1818
./hwsku_json_checker $$f
1919
done
20+
./platform_asic_checker ../../../platform ../../../device
2021
popd
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
#!/usr/bin/env python3
2+
# For any valid platform folder (which must includes a default_sku file), check there is a valid platform_asic file
3+
4+
import fnmatch
5+
import os
6+
import sys
7+
import argparse
8+
9+
def check_file(platform_asic_file, platforms):
10+
try:
11+
with open(platform_asic_file, "r") as f:
12+
for line in f.readlines():
13+
line = line.rstrip()
14+
if line not in platforms:
15+
return False
16+
except IOError:
17+
return False
18+
return True
19+
20+
21+
def main(argv):
22+
parser = argparse.ArgumentParser(description='')
23+
parser.add_argument('platform_folder', type=str,
24+
help='an integer for the accumulator')
25+
parser.add_argument('device_folder', type=str,
26+
help='sum the integers (default: find the max)')
27+
28+
args = parser.parse_args()
29+
30+
# Load all the valid platforms as strings
31+
platforms = set()
32+
with os.scandir(args.platform_folder) as it:
33+
for entry in it:
34+
p = entry.path
35+
if entry.is_dir() and os.path.isfile(os.path.join(p, 'rules.mk')):
36+
platforms.add(entry.name)
37+
# dnx platform is special broadcom platform, add it manually
38+
platforms.add('broadcom-dnx')
39+
40+
device_folder = os.path.normpath(args.device_folder)
41+
base_level = len(device_folder.split(os.sep))
42+
all_good = True
43+
for dirpath, _, filenames in os.walk(args.device_folder, followlinks=True):
44+
# The platform folder is like device_folder/vendor/platform
45+
if len(dirpath.split(os.sep)) != base_level + 2:
46+
continue
47+
# If none of below files found, this is not the root of a platform folder
48+
if not ({'default_sku', 'installer.conf', 'led_proc_init.soc', 'asic.conf'} & set(filenames)):
49+
continue
50+
51+
platform_asic_file = os.path.join(dirpath, 'platform_asic')
52+
good = check_file(platform_asic_file, platforms)
53+
if good:
54+
print("File " + platform_asic_file + " passed validity check")
55+
else:
56+
print("File " + platform_asic_file + " failed validity check")
57+
58+
all_good = all_good and good
59+
60+
if not all_good:
61+
sys.exit(-1)
62+
63+
64+
if __name__ == "__main__":
65+
main(sys.argv[1:])

0 commit comments

Comments
 (0)