From 84b667fbaf33a61545f82a4ce913af28b5b9ce6e Mon Sep 17 00:00:00 2001 From: Ying Xie Date: Fri, 16 Aug 2019 12:08:46 -0700 Subject: [PATCH 01/43] [radv service] radv service should be a cold only dependent of swss (#3348) radv should be left alone during warm restart of swss. Otherwise it will announce departure and cause hosts to lose default gateway. Signed-off-by: Ying Xie --- files/build_templates/radv.service.j2 | 4 ++-- files/scripts/swss.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/files/build_templates/radv.service.j2 b/files/build_templates/radv.service.j2 index 4f1c67e661..3dadc56e46 100644 --- a/files/build_templates/radv.service.j2 +++ b/files/build_templates/radv.service.j2 @@ -1,6 +1,6 @@ [Unit] Description=Router advertiser container -Requires=updategraph.service swss.service +Requires=updategraph.service After=updategraph.service swss.service Before=ntp-config.service @@ -11,4 +11,4 @@ ExecStart=/usr/bin/{{ docker_container_name }}.sh wait ExecStop=/usr/bin/{{ docker_container_name }}.sh stop [Install] -WantedBy=multi-user.target swss.service +WantedBy=multi-user.target diff --git a/files/scripts/swss.sh b/files/scripts/swss.sh index 7b6ae6b5db..5b2f582ef4 100755 --- a/files/scripts/swss.sh +++ b/files/scripts/swss.sh @@ -2,7 +2,7 @@ SERVICE="swss" PEER="syncd" -DEPENDENT="teamd" +DEPENDENT="teamd radv" DEBUGLOG="/tmp/swss-syncd-debug.log" LOCKFILE="/tmp/swss-syncd-lock" From bf08a2caf379238e81ce19f550fcebdab5e59ef4 Mon Sep 17 00:00:00 2001 From: shikenghua Date: Sat, 17 Aug 2019 05:29:42 +0800 Subject: [PATCH 02/43] [docker-fpm-frr]: Generate separated staticd.conf for staticd (#3306) * [docker-fpm-frr]: Generate separated staticd.conf for staticd Generate staticd.conf by templates/staticd.conf.j2 with config DB data * [docker-fpm-frr]: Remove default_route block from zebra.conf.j2 default_route block already moved to staticd.conf.j2 * [docker-fpm-frr]: Add test for staticd.conf.j2 template * Add test for staticd.conf.j2 template * Correct the sample output of zebra.conf.j2 template * Fix a typo in test_zebra_frr * [docker-fpm-frr]: Fix test_j2files test errors * Fix test errors in test_j2files.py and test_j2files_t2_chassis_fe.py * Fix typo in test_j2files_t2_chassis_fe.py --- dockers/docker-fpm-frr/start.sh | 3 +- dockers/docker-fpm-frr/staticd.conf.j2 | 29 +++++++++++++++++++ dockers/docker-fpm-frr/zebra.conf.j2 | 9 ------ .../tests/sample_output/staticd_frr.conf | 17 +++++++++++ .../sample_output/t2-chassis-fe-pc-zebra.conf | 2 -- .../t2-chassis-fe-vni-zebra.conf | 2 -- .../sample_output/t2-chassis-fe-zebra.conf | 2 -- .../tests/sample_output/zebra_frr.conf | 4 +-- src/sonic-config-engine/tests/test_j2files.py | 7 ++++- .../tests/test_j2files_t2_chassis_fe.py | 2 +- 10 files changed, 56 insertions(+), 21 deletions(-) create mode 100644 dockers/docker-fpm-frr/staticd.conf.j2 create mode 100644 src/sonic-config-engine/tests/sample_output/staticd_frr.conf diff --git a/dockers/docker-fpm-frr/start.sh b/dockers/docker-fpm-frr/start.sh index 555c1ce249..fd092919e0 100755 --- a/dockers/docker-fpm-frr/start.sh +++ b/dockers/docker-fpm-frr/start.sh @@ -7,12 +7,13 @@ CONFIG_TYPE=`sonic-cfggen -d -v 'DEVICE_METADATA["localhost"]["docker_routing_co if [ -z "$CONFIG_TYPE" ] || [ "$CONFIG_TYPE" == "separated" ]; then sonic-cfggen -d -y /etc/sonic/deployment_id_asn_map.yml -t /usr/share/sonic/templates/bgpd.conf.j2 > /etc/frr/bgpd.conf sonic-cfggen -d -t /usr/share/sonic/templates/zebra.conf.j2 > /etc/frr/zebra.conf + sonic-cfggen -d -t /usr/share/sonic/templates/staticd.conf.j2 > /etc/frr/staticd.conf echo "no service integrated-vtysh-config" > /etc/frr/vtysh.conf rm -f /etc/frr/frr.conf elif [ "$CONFIG_TYPE" == "unified" ]; then sonic-cfggen -d -y /etc/sonic/deployment_id_asn_map.yml -t /usr/share/sonic/templates/frr.conf.j2 >/etc/frr/frr.conf echo "service integrated-vtysh-config" > /etc/frr/vtysh.conf - rm -f /etc/frr/bgpd.conf /etc/frr/zebra.conf + rm -f /etc/frr/bgpd.conf /etc/frr/zebra.conf /etc/frr/staticd.conf fi sonic-cfggen -d -t /usr/share/sonic/templates/isolate.j2 > /usr/sbin/bgp-isolate diff --git a/dockers/docker-fpm-frr/staticd.conf.j2 b/dockers/docker-fpm-frr/staticd.conf.j2 new file mode 100644 index 0000000000..b3de8c424f --- /dev/null +++ b/dockers/docker-fpm-frr/staticd.conf.j2 @@ -0,0 +1,29 @@ +! +{% block banner %} +! =========== Managed by sonic-cfggen DO NOT edit manually! ==================== +! generated by templates/frr/staticd.conf.j2 using config DB data +! file: staticd.conf +! +{% endblock banner %} +! +{% block sys_init %} +hostname {{ DEVICE_METADATA['localhost']['hostname'] }} +password zebra +enable password zebra +{% endblock sys_init %} +! +{% block default_route %} +! set static default route to mgmt gateway as a backup to learned default +{% for (name, prefix) in MGMT_INTERFACE|pfx_filter %} +{% if prefix | ipv4 %} +ip route 0.0.0.0/0 {{ MGMT_INTERFACE[(name, prefix)]['gwaddr'] }} 200 +{% endif %} +{% endfor %} +{% endblock default_route %} +! +{% block logging %} +log syslog informational +log facility local4 +{% endblock logging %} +! + diff --git a/dockers/docker-fpm-frr/zebra.conf.j2 b/dockers/docker-fpm-frr/zebra.conf.j2 index 7200d81fda..3135a056a6 100644 --- a/dockers/docker-fpm-frr/zebra.conf.j2 +++ b/dockers/docker-fpm-frr/zebra.conf.j2 @@ -36,15 +36,6 @@ link-detect {% endfor %} {% endblock interfaces %} ! -{% block default_route %} -! set static default route to mgmt gateway as a backup to learned default -{% for (name, prefix) in MGMT_INTERFACE|pfx_filter %} -{% if prefix | ipv4 %} -ip route 0.0.0.0/0 {{ MGMT_INTERFACE[(name, prefix)]['gwaddr'] }} 200 -{% endif %} -{% endfor %} -{% endblock default_route %} -! {% block source_loopback %} {% set lo_ipv4_addrs = [] %} {% set lo_ipv6_addrs = [] %} diff --git a/src/sonic-config-engine/tests/sample_output/staticd_frr.conf b/src/sonic-config-engine/tests/sample_output/staticd_frr.conf new file mode 100644 index 0000000000..a1a5fddf32 --- /dev/null +++ b/src/sonic-config-engine/tests/sample_output/staticd_frr.conf @@ -0,0 +1,17 @@ +! +! =========== Managed by sonic-cfggen DO NOT edit manually! ==================== +! generated by templates/frr/staticd.conf.j2 using config DB data +! file: staticd.conf +! +! +hostname switch-t0 +password zebra +enable password zebra +! +! set static default route to mgmt gateway as a backup to learned default +ip route 0.0.0.0/0 10.0.0.1 200 +! +log syslog informational +log facility local4 +! + diff --git a/src/sonic-config-engine/tests/sample_output/t2-chassis-fe-pc-zebra.conf b/src/sonic-config-engine/tests/sample_output/t2-chassis-fe-pc-zebra.conf index 8861e6d301..312394bf76 100644 --- a/src/sonic-config-engine/tests/sample_output/t2-chassis-fe-pc-zebra.conf +++ b/src/sonic-config-engine/tests/sample_output/t2-chassis-fe-pc-zebra.conf @@ -23,8 +23,6 @@ interface PortChannel8 link-detect ! ! -! set static default route to mgmt gateway as a backup to learned default -! ! Set ip source to loopback for bgp learned routes route-map RM_SET_SRC permit 10 set src 4.0.0.0 diff --git a/src/sonic-config-engine/tests/sample_output/t2-chassis-fe-vni-zebra.conf b/src/sonic-config-engine/tests/sample_output/t2-chassis-fe-vni-zebra.conf index 1f9dce8812..30571f2082 100644 --- a/src/sonic-config-engine/tests/sample_output/t2-chassis-fe-vni-zebra.conf +++ b/src/sonic-config-engine/tests/sample_output/t2-chassis-fe-vni-zebra.conf @@ -23,8 +23,6 @@ interface Ethernet8 link-detect ! ! -! set static default route to mgmt gateway as a backup to learned default -! ! Set ip source to loopback for bgp learned routes route-map RM_SET_SRC permit 10 set src 4.0.0.0 diff --git a/src/sonic-config-engine/tests/sample_output/t2-chassis-fe-zebra.conf b/src/sonic-config-engine/tests/sample_output/t2-chassis-fe-zebra.conf index b89aeb4a38..c8157b0519 100644 --- a/src/sonic-config-engine/tests/sample_output/t2-chassis-fe-zebra.conf +++ b/src/sonic-config-engine/tests/sample_output/t2-chassis-fe-zebra.conf @@ -23,8 +23,6 @@ interface Ethernet8 link-detect ! ! -! set static default route to mgmt gateway as a backup to learned default -! ! Set ip source to loopback for bgp learned routes route-map RM_SET_SRC permit 10 set src 4.0.0.0 diff --git a/src/sonic-config-engine/tests/sample_output/zebra_frr.conf b/src/sonic-config-engine/tests/sample_output/zebra_frr.conf index aa3486b016..2b21ea523f 100644 --- a/src/sonic-config-engine/tests/sample_output/zebra_frr.conf +++ b/src/sonic-config-engine/tests/sample_output/zebra_frr.conf @@ -8,6 +8,7 @@ hostname switch-t0 password zebra enable password zebra ! +! ! Enable link-detect (default disabled) interface PortChannel01 link-detect @@ -22,9 +23,6 @@ interface PortChannel04 link-detect ! ! -! set static default route to mgmt gateway as a backup to learned default -ip route 0.0.0.0/0 10.0.0.1 200 -! ! Set ip source to loopback for bgp learned routes route-map RM_SET_SRC permit 10 set src 10.1.0.32 diff --git a/src/sonic-config-engine/tests/test_j2files.py b/src/sonic-config-engine/tests/test_j2files.py index 01bb5d8144..ed8ad6cbc5 100644 --- a/src/sonic-config-engine/tests/test_j2files.py +++ b/src/sonic-config-engine/tests/test_j2files.py @@ -89,11 +89,16 @@ class TestJ2Files(TestCase): self.assertTrue(r, "Diff:\n" + diff_output) def test_zebra_frr(self): - conf_template = os.path.join(self.test_dir, '..', '..', '..', 'dockers', 'docker-fpm-quagga', 'zebra.conf.j2') + conf_template = os.path.join(self.test_dir, '..', '..', '..', 'dockers', 'docker-fpm-frr', 'zebra.conf.j2') argument = '-m ' + self.t0_minigraph + ' -p ' + self.t0_port_config + ' -t ' + conf_template + ' > ' + self.output_file self.run_script(argument) self.assertTrue(filecmp.cmp(os.path.join(self.test_dir, 'sample_output', 'zebra_frr.conf'), self.output_file)) + def test_staticd_frr(self): + conf_template = os.path.join(self.test_dir, '..', '..', '..', 'dockers', 'docker-fpm-frr', 'staticd.conf.j2') + argument = '-m ' + self.t0_minigraph + ' -p ' + self.t0_port_config + ' -t ' + conf_template + ' > ' + self.output_file + self.run_script(argument) + self.assertTrue(filecmp.cmp(os.path.join(self.test_dir, 'sample_output', 'staticd_frr.conf'), self.output_file)) def test_ipinip(self): ipinip_file = os.path.join(self.test_dir, '..', '..', '..', 'dockers', 'docker-orchagent', 'ipinip.json.j2') diff --git a/src/sonic-config-engine/tests/test_j2files_t2_chassis_fe.py b/src/sonic-config-engine/tests/test_j2files_t2_chassis_fe.py index 388f1b2885..531a9d477a 100644 --- a/src/sonic-config-engine/tests/test_j2files_t2_chassis_fe.py +++ b/src/sonic-config-engine/tests/test_j2files_t2_chassis_fe.py @@ -35,7 +35,7 @@ class TestJ2FilesT2ChassisFe(TestCase): self.assertTrue(filecmp.cmp(os.path.join(self.test_dir, 'sample_output', 't2-chassis-fe-pc-zebra.conf'), self.output_file)) # Test zebra.conf in FRR docker for a T2 chassis frontend (fe) switch with specified VNI - def test_t2_chassis_fe_pc_zebra_frr(self): + def test_t2_chassis_fe_vni_zebra_frr(self): conf_template = os.path.join(self.test_dir, '..', '..', '..', 'dockers', 'docker-fpm-frr', 'zebra.conf.j2') argument = '-m ' + self.t2_chassis_fe_vni_minigraph + ' -p ' + self.t2_chassis_fe_port_config + ' -t ' + conf_template + ' > ' + self.output_file self.run_script(argument) From 7ca4d32daf34532b5620514d0c8046f346ba3533 Mon Sep 17 00:00:00 2001 From: Andriy Moroz Date: Mon, 19 Aug 2019 14:09:18 +0300 Subject: [PATCH 03/43] [Mellanox] Update SDK (v3.4.1886) and hw-magmt (v2.0.0191) (#3359) This commit also includes sonic-linux-kernel submodule update Commits included: f8b30b4 [Mellanox] Add hw-management driver patches (#97) feb786b Add psample and act_sample drivers (#94) 15f8651 Update optoe driver to add CMIS (QSFP-DD, OSFP, ...) support (#96) --- platform/mellanox/fw.mk | 4 ++-- platform/mellanox/hw-management.mk | 2 +- platform/mellanox/hw-management/hw-mgmt | 2 +- platform/mellanox/sdk.mk | 4 ++-- src/sonic-linux-kernel | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/platform/mellanox/fw.mk b/platform/mellanox/fw.mk index f6b2a86a7b..72a92c1dc5 100644 --- a/platform/mellanox/fw.mk +++ b/platform/mellanox/fw.mk @@ -2,12 +2,12 @@ MLNX_FW_BASE_URL = $(MLNX_SDK_BASE_URL) -MLNX_SPC_FW_VERSION = 13.2000.1634 +MLNX_SPC_FW_VERSION = 13.2000.1886 MLNX_SPC_FW_FILE = fw-SPC-rel-$(subst .,_,$(MLNX_SPC_FW_VERSION))-EVB.mfa $(MLNX_SPC_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC_FW_FILE) SONIC_ONLINE_FILES += $(MLNX_SPC_FW_FILE) -MLNX_SPC2_FW_VERSION = 29.2000.1634 +MLNX_SPC2_FW_VERSION = 29.2000.1886 MLNX_SPC2_FW_FILE = fw-SPC2-rel-$(subst .,_,$(MLNX_SPC2_FW_VERSION))-EVB.mfa $(MLNX_SPC2_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC2_FW_FILE) SONIC_ONLINE_FILES += $(MLNX_SPC2_FW_FILE) diff --git a/platform/mellanox/hw-management.mk b/platform/mellanox/hw-management.mk index 91af460c8d..21a16d29db 100644 --- a/platform/mellanox/hw-management.mk +++ b/platform/mellanox/hw-management.mk @@ -1,6 +1,6 @@ # Mellanox HW Management -MLNX_HW_MANAGEMENT_VERSION = 2.0.0183 +MLNX_HW_MANAGEMENT_VERSION = 2.0.0191 export MLNX_HW_MANAGEMENT_VERSION diff --git a/platform/mellanox/hw-management/hw-mgmt b/platform/mellanox/hw-management/hw-mgmt index a9ef3e5acf..93076e83b0 160000 --- a/platform/mellanox/hw-management/hw-mgmt +++ b/platform/mellanox/hw-management/hw-mgmt @@ -1 +1 @@ -Subproject commit a9ef3e5acf9a2bc4fb4de1f80a53ca2bf3c68a66 +Subproject commit 93076e83b08322207f7b860d34c6c3c2bd655aa0 diff --git a/platform/mellanox/sdk.mk b/platform/mellanox/sdk.mk index 1401b5f628..ae49cb6192 100644 --- a/platform/mellanox/sdk.mk +++ b/platform/mellanox/sdk.mk @@ -1,5 +1,5 @@ -MLNX_SDK_BASE_URL = https://github.com/Mellanox/SAI-Implementation/raw/f4bc0f92f729cedf4d65a19563f61db23acb7763/sdk -MLNX_SDK_VERSION = 4.3.1634 +MLNX_SDK_BASE_URL = https://github.com/Mellanox/SAI-Implementation/raw/acf8ed31fd43e8280b553357c4ac4248f2c2e3aa/sdk +MLNX_SDK_VERSION = 4.3.1886 MLNX_SDK_ISSU_VERSION = 101 MLNX_SDK_DEB_VERSION = $(subst _,.,$(MLNX_SDK_VERSION)) diff --git a/src/sonic-linux-kernel b/src/sonic-linux-kernel index 1d9c69fbe1..f8b30b40c3 160000 --- a/src/sonic-linux-kernel +++ b/src/sonic-linux-kernel @@ -1 +1 @@ -Subproject commit 1d9c69fbe1b996fd84a659bd28c91f67fe1fe044 +Subproject commit f8b30b40c358238d3055a18305c8b7b659b47739 From cc6642300a1bf996c3e317f8092fc1cc3860a5ab Mon Sep 17 00:00:00 2001 From: JohnsonYJLu <31528297+JohnsonYJLu@users.noreply.github.com> Date: Tue, 20 Aug 2019 01:23:48 +0800 Subject: [PATCH 04/43] update cpld & swpld module attribute (#3362) Signed-off-by: johnson --- .../ag9064/modules/delta_ag9064_common.h | 108 +++--------------- .../ag9064/modules/delta_ag9064_cpld.c | 4 - .../ag9064/modules/delta_ag9064_swpld.c | 64 +++-------- .../debian/platform-modules-ag9064.postinst | 19 +++ 4 files changed, 53 insertions(+), 142 deletions(-) create mode 100644 platform/broadcom/sonic-platform-modules-delta/debian/platform-modules-ag9064.postinst diff --git a/platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_common.h b/platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_common.h index da91750887..40eba7e241 100644 --- a/platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_common.h +++ b/platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_common.h @@ -148,14 +148,12 @@ enum cpld_attributes { MB_ID, MB_VER, CPU0_PWR_OK, - PSU_OVER_TEMP, PWR_RAIL_OVER_TEMP, CPU_DISOMIC_OVER_TEMP, DDR_OVER_TEMP, CPLD_PWR_ON_RST, CPLD_HARD_RST, CPLD_RST, - MB_PWR, MB_RST, PSU_FAN_INT, OP_MODULE_INT, @@ -167,9 +165,6 @@ enum cpld_attributes { PSU1_INT, PSU2_PWR_OK, PSU2_INT, - SYNCE_INT, - SYNCE_RST, - SYNCE_EEPROM_WP, PSU1_GREEN_LED, PSU1_RED_LED, PSU2_GREEN_LED, @@ -192,18 +187,10 @@ enum cpld_attributes { SB_VER, PLATFORM_TYPE, //SWPLD4 - SWPLD4_MAJOR_VER, - SWPLD4_MINOR_VER, - SWPLD4_SCRTCH_REG, - BMC_RST, - CPLD_LPC_RST, - CPLD_SW_RST, - MB_CPLD_RST, - BCM56970_RST, - CPLD_UPGRADE_RST, - MB_RST_CPLD, - CPU_RST_MB_OOB, - GPIO_PHY_RST, + SW_BOARD_ID1, + SW_BOARD_ID2, + SWBD_VER, + SWPLD4_VER, PSU_FAN_EVENT, CPU_THERMAL_INT, FAN_INT, @@ -334,11 +321,6 @@ static struct cpld_attribute_data attribute_data[] = { .reg = 0x08, .mask = 1 << 3, .note = "“1” =Power rail is good\n“0” = Power rail is failed" }, - [PSU_OVER_TEMP] = { - .bus = BUS0, .addr = CPUPLD_ADDR, - .reg = 0x0b, .mask = 1 << 4, - .note = "“1” = Not over temperature\n“0” = Over temperature" - }, [PWR_RAIL_OVER_TEMP] = { .bus = BUS0, .addr = CPUPLD_ADDR, .reg = 0x0b, .mask = 1 << 3, @@ -369,11 +351,6 @@ static struct cpld_attribute_data attribute_data[] = { .reg = 0x11, .mask = 1 << 0, .note = "“0” = Reset\n“1” = Normal operation" }, - [MB_PWR] = { - .bus = BUS0, .addr = CPUPLD_ADDR, - .reg = 0x12, .mask = 1 << 2, - .note = "“0” = Power rail is failed\n“1” =Power rail is good" - }, [MB_RST] = { .bus = BUS0, .addr = CPUPLD_ADDR, .reg = 0x12, .mask = 1 << 0, @@ -425,21 +402,6 @@ static struct cpld_attribute_data attribute_data[] = { .reg = 0x02, .mask = 1 << 1, .note = "‘0’ = Interrupt doesn’t occur\n‘1’ = Interrupt occurs" }, - [SYNCE_INT] = { - .bus = BUS0, .addr = SWPLD1_ADDR, - .reg = 0x12, .mask = 1 << 7, - .note = "‘0’ = Interrupt occurs\n‘1’ = Interrupt doesn’t occur" - }, - [SYNCE_RST] = { - .bus = BUS0, .addr = SWPLD1_ADDR, - .reg = 0x12, .mask = 1 << 6, - .note = "“0” = Reset\n“1” = Normal operation" - }, - [SYNCE_EEPROM_WP] = { - .bus = BUS0, .addr = SWPLD1_ADDR, - .reg = 0x12, .mask = 1 << 5, - .note = "“1” = enables the lock-down mechanism.\n“0” = overrides the lock-down function enabling blocks to be erased or programmed using software commands." - }, [PSU1_GREEN_LED] = { .bus = BUS0, .addr = SWPLD1_ADDR, .reg = 0x13, .mask = 1 << 7, @@ -538,65 +500,25 @@ static struct cpld_attribute_data attribute_data[] = { .note = "“0x0”: 64X100G_2U\n“0x1”~”0xF” Reserved" }, //SWPLD4 - [SWPLD4_MAJOR_VER] = { + [SW_BOARD_ID1] = { .bus = BUS0, .addr = SWPLD4_ADDR, - .reg = 0x00, .mask = 0xF0, - .note = "CPLD Major Version, controlled by CPLD editor." + .reg = 0x00, .mask = 0xFF, + .note = "0x00" }, - [SWPLD4_MINOR_VER] = { - .bus = BUS0, .addr = SWPLD4_ADDR, - .reg = 0x00, .mask = 0x0F, - .note = "CPLD Minor Version, controlled by CPLD editor." - }, - [SWPLD4_SCRTCH_REG] = { + [SW_BOARD_ID2] = { .bus = BUS0, .addr = SWPLD4_ADDR, .reg = 0x01, .mask = 0xFF, - .note = "CPLD read/write test register, to provide a way to test CPLD access." + .note = "Configured by PLD Editor\n0x03: AG9064" }, - [BMC_RST] = { + [SWBD_VER] = { .bus = BUS0, .addr = SWPLD4_ADDR, - .reg = 0x02, .mask = 1 << 6, - .note = "“0” = Reset\n“1” = Normal operation" + .reg = 0x02, .mask = 0xFF, + .note = "Configured by external resistor\n0x01:EVT1\n0x02:EVT2\n0x03:EVT3\n0x04:EVT4\n0x10:DVT\n0x20:PVT" }, - [CPLD_LPC_RST] = { + [SWPLD4_VER] = { .bus = BUS0, .addr = SWPLD4_ADDR, - .reg = 0x02, .mask = 1 << 5, - .note = "“0” = Reset\n“1” = Normal operation" - }, - [CPLD_SW_RST] = { - .bus = BUS0, .addr = SWPLD4_ADDR, - .reg = 0x02, .mask = 1 << 3, - .note = "“0” = Reset\n“1” = Normal operation" - }, - [MB_CPLD_RST] = { - .bus = BUS0, .addr = SWPLD4_ADDR, - .reg = 0x02, .mask = 1 << 2, - .note = "“0” = Reset\n“1” = Normal operation" - }, - [BCM56970_RST] = { - .bus = BUS0, .addr = SWPLD4_ADDR, - .reg = 0x02, .mask = 1 << 1, - .note = "“0” = Reset\n“1” = Normal operation" - }, - [CPLD_UPGRADE_RST] = { - .bus = BUS0, .addr = SWPLD4_ADDR, - .reg = 0x03, .mask = 1 << 7, - .note = "“0” = Reset\n“1” = Normal operation" - }, - [MB_RST_CPLD] = { - .bus = BUS0, .addr = SWPLD4_ADDR, - .reg = 0x03, .mask = 1 << 6, - .note = "“0” = Reset\n“1” = Normal operation" - }, - [CPU_RST_MB_OOB] = { - .bus = BUS0, .addr = SWPLD4_ADDR, - .reg = 0x03, .mask = 1 << 5, - .note = "“0” = Reset\n“1” = Normal operation" - }, - [GPIO_PHY_RST] = { - .bus = BUS0, .addr = SWPLD4_ADDR, - .reg = 0x03, .mask = 1 << 4, - .note = "“0” = Reset\n“1” = Normal operation" + .reg = 0x03, .mask = 0xFF, + .note = "-" }, [PSU_FAN_EVENT] = { .bus = BUS0, .addr = SWPLD4_ADDR, diff --git a/platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_cpld.c b/platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_cpld.c index 75bab55d7e..a1c275209b 100644 --- a/platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_cpld.c +++ b/platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_cpld.c @@ -772,14 +772,12 @@ static SENSOR_DEVICE_ATTR(cpu_id, S_IRUGO, get_cpld_reg, NU static SENSOR_DEVICE_ATTR(mb_id, S_IRUGO, get_cpld_reg, NULL, MB_ID); static SENSOR_DEVICE_ATTR(mb_ver, S_IRUGO, get_cpld_reg, NULL, MB_VER); static SENSOR_DEVICE_ATTR(cpu0_pwr_ok, S_IRUGO, get_cpld_reg, NULL, CPU0_PWR_OK); -static SENSOR_DEVICE_ATTR(psu_over_temp, S_IRUGO, get_cpld_reg, NULL, PSU_OVER_TEMP); static SENSOR_DEVICE_ATTR(pwr_rail_over_temp, S_IRUGO, get_cpld_reg, NULL, PWR_RAIL_OVER_TEMP); static SENSOR_DEVICE_ATTR(cpu_disomic_over_temp, S_IRUGO, get_cpld_reg, NULL, CPU_DISOMIC_OVER_TEMP); static SENSOR_DEVICE_ATTR(ddr_over_temp, S_IRUGO, get_cpld_reg, NULL, DDR_OVER_TEMP); static SENSOR_DEVICE_ATTR(cpld_pwr_on_rst, S_IRUGO, get_cpld_reg, NULL, CPLD_PWR_ON_RST); static SENSOR_DEVICE_ATTR(cpld_hard_rst, S_IRUGO, get_cpld_reg, NULL, CPLD_HARD_RST); static SENSOR_DEVICE_ATTR(cpld_rst, S_IRUGO | S_IWUSR, get_cpld_reg, set_cpld_reg, CPLD_RST); -static SENSOR_DEVICE_ATTR(mb_pwr, S_IRUGO, get_cpld_reg, NULL, MB_PWR); static SENSOR_DEVICE_ATTR(mb_rst, S_IRUGO | S_IWUSR, get_cpld_reg, set_cpld_reg, MB_RST); static SENSOR_DEVICE_ATTR(psu_fan_int, S_IRUGO, get_cpld_reg, NULL, PSU_FAN_INT); static SENSOR_DEVICE_ATTR(op_module_int, S_IRUGO, get_cpld_reg, NULL, OP_MODULE_INT); @@ -800,14 +798,12 @@ static struct attribute *ag9064_cpld_attrs[] = { &sensor_dev_attr_mb_id.dev_attr.attr, &sensor_dev_attr_mb_ver.dev_attr.attr, &sensor_dev_attr_cpu0_pwr_ok.dev_attr.attr, - &sensor_dev_attr_psu_over_temp.dev_attr.attr, &sensor_dev_attr_pwr_rail_over_temp.dev_attr.attr, &sensor_dev_attr_cpu_disomic_over_temp.dev_attr.attr, &sensor_dev_attr_ddr_over_temp.dev_attr.attr, &sensor_dev_attr_cpld_pwr_on_rst.dev_attr.attr, &sensor_dev_attr_cpld_hard_rst.dev_attr.attr, &sensor_dev_attr_cpld_rst.dev_attr.attr, - &sensor_dev_attr_mb_pwr.dev_attr.attr, &sensor_dev_attr_mb_rst.dev_attr.attr, &sensor_dev_attr_psu_fan_int.dev_attr.attr, &sensor_dev_attr_op_module_int.dev_attr.attr, diff --git a/platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_swpld.c b/platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_swpld.c index 084f0c74f2..fd17a28378 100644 --- a/platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_swpld.c +++ b/platform/broadcom/sonic-platform-modules-delta/ag9064/modules/delta_ag9064_swpld.c @@ -110,7 +110,7 @@ static ssize_t get_swpld_reg(struct device *dev, struct device_attribute *dev_at case SWPLD3_MAJOR_VER ... PLATFORM_TYPE : cmd_data[1] = SWPLD3_ADDR; break; - case SWPLD4_MAJOR_VER ... FAN_EEPROM_WP : + case SW_BOARD_ID1 ... FAN_EEPROM_WP : cmd_data[1] = SWPLD4_ADDR; break; default: @@ -244,7 +244,7 @@ static ssize_t set_swpld_reg(struct device *dev, struct device_attribute *dev_at case SWPLD3_MAJOR_VER ... PLATFORM_TYPE://SWPLD3 cmd_data[1] = SWPLD3_ADDR; break; - case SWPLD4_MAJOR_VER ... FAN_EEPROM_WP://SWPLD4 + case SW_BOARD_ID1 ... FAN_EEPROM_WP://SWPLD4 cmd_data[1] = SWPLD4_ADDR; break; default: @@ -303,9 +303,6 @@ static SENSOR_DEVICE_ATTR(psu1_pwr_ok, S_IRUGO, get_swpld_reg, N static SENSOR_DEVICE_ATTR(psu1_int, S_IRUGO, get_swpld_reg, NULL, PSU1_INT); static SENSOR_DEVICE_ATTR(psu2_pwr_ok, S_IRUGO, get_swpld_reg, NULL, PSU2_PWR_OK); static SENSOR_DEVICE_ATTR(psu2_int, S_IRUGO, get_swpld_reg, NULL, PSU2_INT); -static SENSOR_DEVICE_ATTR(synce_int, S_IRUGO, get_swpld_reg, NULL, SYNCE_INT); -static SENSOR_DEVICE_ATTR(synce_rst, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, SYNCE_RST); -static SENSOR_DEVICE_ATTR(synce_eeprom_wp, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, SYNCE_EEPROM_WP); static SENSOR_DEVICE_ATTR(psu1_green_led, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, PSU1_GREEN_LED); static SENSOR_DEVICE_ATTR(psu1_red_led, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, PSU1_RED_LED); static SENSOR_DEVICE_ATTR(psu2_green_led, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, PSU2_GREEN_LED); @@ -329,29 +326,19 @@ static SENSOR_DEVICE_ATTR(sb_ver, S_IRUGO, get_swpld_reg, N static SENSOR_DEVICE_ATTR(platform_type, S_IRUGO, get_swpld_reg, NULL, PLATFORM_TYPE); //SWPLD4 -static SENSOR_DEVICE_ATTR(swpld4_major_ver, S_IRUGO, get_swpld_reg, NULL, SWPLD4_MAJOR_VER); -static SENSOR_DEVICE_ATTR(swpld4_minor_ver, S_IRUGO, get_swpld_reg, NULL, SWPLD4_MINOR_VER); -static SENSOR_DEVICE_ATTR(swpld4_scrtch_reg, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, SWPLD4_SCRTCH_REG); -static SENSOR_DEVICE_ATTR(bmc_rst, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, BMC_RST); -static SENSOR_DEVICE_ATTR(cpld_lpc_rst, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, CPLD_LPC_RST); -static SENSOR_DEVICE_ATTR(cpld_sw_rst, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, CPLD_SW_RST); -static SENSOR_DEVICE_ATTR(mb_cpld_rst, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, MB_CPLD_RST); -static SENSOR_DEVICE_ATTR(bcm56970_rst, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, BCM56970_RST); - -static SENSOR_DEVICE_ATTR(cpld_upgrade_rst, S_IRUGO, get_swpld_reg, NULL, CPLD_UPGRADE_RST); -static SENSOR_DEVICE_ATTR(mb_rst_cpld, S_IRUGO, get_swpld_reg, NULL, MB_RST_CPLD); -static SENSOR_DEVICE_ATTR(cpu_rst_mb_oob, S_IRUGO, get_swpld_reg, NULL, CPU_RST_MB_OOB); -static SENSOR_DEVICE_ATTR(gpio_phy_rst, S_IRUGO, get_swpld_reg, NULL, GPIO_PHY_RST); -static SENSOR_DEVICE_ATTR(psu_fan_event, S_IRUGO, get_swpld_reg, NULL, PSU_FAN_EVENT); -static SENSOR_DEVICE_ATTR(cpu_thermal_int, S_IRUGO, get_swpld_reg, NULL, CPU_THERMAL_INT); -static SENSOR_DEVICE_ATTR(fan_int, S_IRUGO, get_swpld_reg, NULL, FAN_INT); - -static SENSOR_DEVICE_ATTR(cpld_spi_wp, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, CPLD_SPI_WP); -static SENSOR_DEVICE_ATTR(rj45_console_sel, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, RJ45_CONSOLE_SEL); -static SENSOR_DEVICE_ATTR(system_int, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, SYSTEM_INT); -static SENSOR_DEVICE_ATTR(cpld_mb_rst_done, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, CPLD_MB_RST_DONE); -static SENSOR_DEVICE_ATTR(mb_pwr_ok, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, MB_PWR_OK); -static SENSOR_DEVICE_ATTR(fan_eeprom_wp, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, FAN_EEPROM_WP); +static SENSOR_DEVICE_ATTR(sw_board_id1, S_IRUGO, get_swpld_reg, NULL, SW_BOARD_ID1); +static SENSOR_DEVICE_ATTR(sw_board_id2, S_IRUGO, get_swpld_reg, NULL, SW_BOARD_ID2); +static SENSOR_DEVICE_ATTR(swbd_ver, S_IRUGO, get_swpld_reg, NULL, SWBD_VER); +static SENSOR_DEVICE_ATTR(swpld4_ver, S_IRUGO, get_swpld_reg, NULL, SWPLD4_VER); +static SENSOR_DEVICE_ATTR(psu_fan_event, S_IRUGO, get_swpld_reg, NULL, PSU_FAN_EVENT); +static SENSOR_DEVICE_ATTR(cpu_thermal_int, S_IRUGO, get_swpld_reg, NULL, CPU_THERMAL_INT); +static SENSOR_DEVICE_ATTR(fan_int, S_IRUGO, get_swpld_reg, NULL, FAN_INT); +static SENSOR_DEVICE_ATTR(cpld_spi_wp, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, CPLD_SPI_WP); +static SENSOR_DEVICE_ATTR(rj45_console_sel, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, RJ45_CONSOLE_SEL); +static SENSOR_DEVICE_ATTR(system_int, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, SYSTEM_INT); +static SENSOR_DEVICE_ATTR(cpld_mb_rst_done, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, CPLD_MB_RST_DONE); +static SENSOR_DEVICE_ATTR(mb_pwr_ok, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, MB_PWR_OK); +static SENSOR_DEVICE_ATTR(fan_eeprom_wp, S_IRUGO | S_IWUSR, get_swpld_reg, set_swpld_reg, FAN_EEPROM_WP); static struct attribute *swpld1_device_attrs[] = { &sensor_dev_attr_swpld1_reg_value.dev_attr.attr, @@ -363,9 +350,6 @@ static struct attribute *swpld1_device_attrs[] = { &sensor_dev_attr_psu1_int.dev_attr.attr, &sensor_dev_attr_psu2_pwr_ok.dev_attr.attr, &sensor_dev_attr_psu2_int.dev_attr.attr, - &sensor_dev_attr_synce_int.dev_attr.attr, - &sensor_dev_attr_synce_rst.dev_attr.attr, - &sensor_dev_attr_synce_eeprom_wp.dev_attr.attr, &sensor_dev_attr_psu1_green_led.dev_attr.attr, &sensor_dev_attr_psu1_red_led.dev_attr.attr, &sensor_dev_attr_psu2_green_led.dev_attr.attr, @@ -401,20 +385,10 @@ static struct attribute *swpld3_device_attrs[] = { }; static struct attribute *swpld4_device_attrs[] = { - &sensor_dev_attr_swpld4_reg_value.dev_attr.attr, - &sensor_dev_attr_swpld4_reg_addr.dev_attr.attr, - &sensor_dev_attr_swpld4_major_ver.dev_attr.attr, - &sensor_dev_attr_swpld4_minor_ver.dev_attr.attr, - &sensor_dev_attr_swpld4_scrtch_reg.dev_attr.attr, - &sensor_dev_attr_bmc_rst.dev_attr.attr, - &sensor_dev_attr_cpld_lpc_rst.dev_attr.attr, - &sensor_dev_attr_cpld_sw_rst.dev_attr.attr, - &sensor_dev_attr_mb_cpld_rst.dev_attr.attr, - &sensor_dev_attr_bcm56970_rst.dev_attr.attr, - &sensor_dev_attr_cpld_upgrade_rst.dev_attr.attr, - &sensor_dev_attr_mb_rst_cpld.dev_attr.attr, - &sensor_dev_attr_cpu_rst_mb_oob.dev_attr.attr, - &sensor_dev_attr_gpio_phy_rst.dev_attr.attr, + &sensor_dev_attr_sw_board_id1.dev_attr.attr, + &sensor_dev_attr_sw_board_id2.dev_attr.attr, + &sensor_dev_attr_swbd_ver.dev_attr.attr, + &sensor_dev_attr_swpld4_ver.dev_attr.attr, &sensor_dev_attr_psu_fan_event.dev_attr.attr, &sensor_dev_attr_cpu_thermal_int.dev_attr.attr, &sensor_dev_attr_fan_int.dev_attr.attr, diff --git a/platform/broadcom/sonic-platform-modules-delta/debian/platform-modules-ag9064.postinst b/platform/broadcom/sonic-platform-modules-delta/debian/platform-modules-ag9064.postinst new file mode 100644 index 0000000000..6044de2327 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-delta/debian/platform-modules-ag9064.postinst @@ -0,0 +1,19 @@ +# postinst script for ag9064 + +# Insert kernel module +depmod -a +modprobe i2c-dev +modprobe i2c-i801 +modprobe i2c-ismt +modprobe ipmi_devintf +modprobe ipmi_si ports=0xca2 +modprobe i2c-mei +modprobe i2c-mux-pca954x +modprobe at24 +modprobe optoe +modprobe delta_ag9064_platform +modprobe delta_ag9064_cpld +modprobe delta_ag9064_swpld + +#DEBHELPER# + From 2a7d8624cb249b789cbaf35bf74feb0d4cca9e66 Mon Sep 17 00:00:00 2001 From: Mykola F <37578614+mykolaf@users.noreply.github.com> Date: Mon, 19 Aug 2019 20:25:39 +0300 Subject: [PATCH 05/43] [Mellanox] align platform reboot to use "hardware reboot" (#3321) Signed-off-by: Mykola Faryma --- .../x86_64-mlnx_msn2700-r0/platform_reboot | 8 +++++-- .../platform_reboot | 22 ++++++++++++++++++- .../platform_reboot | 2 +- 3 files changed, 28 insertions(+), 4 deletions(-) mode change 120000 => 100755 device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_reboot diff --git a/device/mellanox/x86_64-mlnx_msn2700-r0/platform_reboot b/device/mellanox/x86_64-mlnx_msn2700-r0/platform_reboot index 58ead64023..d310210497 100755 --- a/device/mellanox/x86_64-mlnx_msn2700-r0/platform_reboot +++ b/device/mellanox/x86_64-mlnx_msn2700-r0/platform_reboot @@ -4,6 +4,7 @@ declare -r EXIT_SUCCESS="0" declare -r EXIT_ERROR="1" declare -r FW_UPGRADE_SCRIPT="/usr/bin/mlnx-fw-upgrade.sh" +declare -r SYSFS_PWR_CYCLE="/sys/devices/platform/mlxplat/mlxreg-io/hwmon/hwmon*/pwr_cycle" FORCE_REBOOT="no" @@ -20,7 +21,7 @@ function ParseArguments() { ParseArguments "$@" -${FW_UPGRADE_SCRIPT} --upgrade +${FW_UPGRADE_SCRIPT} --upgrade --verbose EXIT_CODE="$?" if [[ "${EXIT_CODE}" != "${EXIT_SUCCESS}" ]]; then echo "Failed to burn MLNX FW: errno=${EXIT_CODE}" @@ -31,4 +32,7 @@ if [[ "${EXIT_CODE}" != "${EXIT_SUCCESS}" ]]; then fi fi -exec /sbin/reboot $@ +# perform "hardware" reboot +echo 1 > $SYSFS_PWR_CYCLE +sleep 3 +echo 0 > $SYSFS_PWR_CYCLE diff --git a/device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_reboot b/device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_reboot deleted file mode 120000 index 43c8ea5674..0000000000 --- a/device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_reboot +++ /dev/null @@ -1 +0,0 @@ -../x86_64-mlnx_msn2700-r0/platform_reboot \ No newline at end of file diff --git a/device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_reboot b/device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_reboot new file mode 100755 index 0000000000..5b9809e104 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_reboot @@ -0,0 +1,21 @@ +#!/bin/bash + +declare -r EXIT_SUCCESS="0" +declare -r EXIT_ERROR="1" + +FORCE_REBOOT="no" + +function ParseArguments() { + while [ $# -ge 1 ]; do + case "$1" in + -f|--force) + FORCE_REBOOT="yes" + ;; + esac + shift + done +} + +ParseArguments "$@" + +exec /sbin/reboot $@ diff --git a/device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_reboot b/device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_reboot index d66ab7537b..dfaf534176 120000 --- a/device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_reboot +++ b/device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_reboot @@ -1 +1 @@ -../x86_64-mlnx_msn3700-r0/platform_reboot \ No newline at end of file +../x86_64-mlnx_msn2700_simx-r0/platform_reboot \ No newline at end of file From f468bc7859f0d8a762657e8728715ca2a547d60e Mon Sep 17 00:00:00 2001 From: Andriy Kokhan <43479230+akokhan@users.noreply.github.com> Date: Mon, 19 Aug 2019 20:28:00 +0300 Subject: [PATCH 06/43] [barefoot]: updated SDK to 9.0 pre-release (#3350) Signed-off-by: Andriy Kokhan --- .../Arista-7170-64C/switch-tna-sai.conf | 6 +++--- .../Arista-7170-Q59S20/switch-tna-sai.conf | 6 +++--- .../montara/switch-tna-sai.conf | 6 +++--- .../mavericks/switch-tna-sai.conf | 6 +++--- .../INGRASYS-S9180-32X/switch-tna-sai.conf | 6 +++--- .../INGRASYS-S9280-64X/switch-tna-sai.conf | 6 +++--- .../x86_64-wnc_osw1800-r0/OSW1800-48x6q/switch-tna-sai.conf | 6 +++--- platform/barefoot/bfn-platform.mk | 6 +++--- platform/barefoot/bfn-sai.mk | 6 +++--- 9 files changed, 27 insertions(+), 27 deletions(-) diff --git a/device/arista/x86_64-arista_7170_64c/Arista-7170-64C/switch-tna-sai.conf b/device/arista/x86_64-arista_7170_64c/Arista-7170-64C/switch-tna-sai.conf index 2a2270767d..403b08d6bb 100644 --- a/device/arista/x86_64-arista_7170_64c/Arista-7170-64C/switch-tna-sai.conf +++ b/device/arista/x86_64-arista_7170_64c/Arista-7170-64C/switch-tna-sai.conf @@ -22,13 +22,13 @@ "p4_pipelines": [ { "p4_pipeline_name": "pipe", - "config": "share/tofinopd/switch/pipe/tofino.bin", - "context": "share/tofinopd/switch/pipe/context.json" + "config": "share/switch/pipe/tofino.bin", + "context": "share/switch/pipe/context.json" } ], "program-name": "switch", "switchsai": "lib/libswitchsai.so", - "bfrt-config": "share/tofinopd/switch/bf-rt.json", + "bfrt-config": "share/switch/bf-rt.json", "model_json_path" : "share/switch/aug_model.json", "switchapi_port_add": false, "non_default_port_ppgs": 5 diff --git a/device/arista/x86_64-arista_7170_64c/Arista-7170-Q59S20/switch-tna-sai.conf b/device/arista/x86_64-arista_7170_64c/Arista-7170-Q59S20/switch-tna-sai.conf index 2a2270767d..403b08d6bb 100644 --- a/device/arista/x86_64-arista_7170_64c/Arista-7170-Q59S20/switch-tna-sai.conf +++ b/device/arista/x86_64-arista_7170_64c/Arista-7170-Q59S20/switch-tna-sai.conf @@ -22,13 +22,13 @@ "p4_pipelines": [ { "p4_pipeline_name": "pipe", - "config": "share/tofinopd/switch/pipe/tofino.bin", - "context": "share/tofinopd/switch/pipe/context.json" + "config": "share/switch/pipe/tofino.bin", + "context": "share/switch/pipe/context.json" } ], "program-name": "switch", "switchsai": "lib/libswitchsai.so", - "bfrt-config": "share/tofinopd/switch/bf-rt.json", + "bfrt-config": "share/switch/bf-rt.json", "model_json_path" : "share/switch/aug_model.json", "switchapi_port_add": false, "non_default_port_ppgs": 5 diff --git a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/montara/switch-tna-sai.conf b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/montara/switch-tna-sai.conf index 79b10cafa8..a459e92553 100644 --- a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/montara/switch-tna-sai.conf +++ b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/montara/switch-tna-sai.conf @@ -23,13 +23,13 @@ "p4_pipelines": [ { "p4_pipeline_name": "pipe", - "config": "share/tofinopd/switch/pipe/tofino.bin", - "context": "share/tofinopd/switch/pipe/context.json" + "config": "share/switch/pipe/tofino.bin", + "context": "share/switch/pipe/context.json" } ], "program-name": "switch", "switchsai": "lib/libswitchsai.so", - "bfrt-config": "share/tofinopd/switch/bf-rt.json", + "bfrt-config": "share/switch/bf-rt.json", "model_json_path" : "share/switch/aug_model.json", "switchapi_port_add": false, "non_default_port_ppgs": 5 diff --git a/device/barefoot/x86_64-accton_wedge100bf_65x-r0/mavericks/switch-tna-sai.conf b/device/barefoot/x86_64-accton_wedge100bf_65x-r0/mavericks/switch-tna-sai.conf index 647f418382..5497836266 100644 --- a/device/barefoot/x86_64-accton_wedge100bf_65x-r0/mavericks/switch-tna-sai.conf +++ b/device/barefoot/x86_64-accton_wedge100bf_65x-r0/mavericks/switch-tna-sai.conf @@ -23,13 +23,13 @@ "p4_pipelines": [ { "p4_pipeline_name": "pipe", - "config": "share/tofinopd/switch/pipe/tofino.bin", - "context": "share/tofinopd/switch/pipe/context.json" + "config": "share/switch/pipe/tofino.bin", + "context": "share/switch/pipe/context.json" } ], "program-name": "switch", "switchsai": "lib/libswitchsai.so", - "bfrt-config": "share/tofinopd/switch/bf-rt.json", + "bfrt-config": "share/switch/bf-rt.json", "model_json_path" : "share/switch/aug_model.json", "switchapi_port_add": false, "non_default_port_ppgs": 5 diff --git a/device/ingrasys/x86_64-ingrasys_s9180_32x-r0/INGRASYS-S9180-32X/switch-tna-sai.conf b/device/ingrasys/x86_64-ingrasys_s9180_32x-r0/INGRASYS-S9180-32X/switch-tna-sai.conf index 6ad356614a..43ed0e4af6 100644 --- a/device/ingrasys/x86_64-ingrasys_s9180_32x-r0/INGRASYS-S9180-32X/switch-tna-sai.conf +++ b/device/ingrasys/x86_64-ingrasys_s9180_32x-r0/INGRASYS-S9180-32X/switch-tna-sai.conf @@ -23,13 +23,13 @@ "p4_pipelines": [ { "p4_pipeline_name": "pipe", - "config": "share/tofinopd/switch/pipe/tofino.bin", - "context": "share/tofinopd/switch/pipe/context.json" + "config": "share/switch/pipe/tofino.bin", + "context": "share/switch/pipe/context.json" } ], "program-name": "switch", "switchsai": "lib/libswitchsai.so", - "bfrt-config": "share/tofinopd/switch/bf-rt.json", + "bfrt-config": "share/switch/bf-rt.json", "model_json_path" : "share/switch/aug_model.json", "switchapi_port_add": false, "non_default_port_ppgs": 5 diff --git a/device/ingrasys/x86_64-ingrasys_s9280_64x-r0/INGRASYS-S9280-64X/switch-tna-sai.conf b/device/ingrasys/x86_64-ingrasys_s9280_64x-r0/INGRASYS-S9280-64X/switch-tna-sai.conf index 36f2ca83df..29e8f4bae0 100644 --- a/device/ingrasys/x86_64-ingrasys_s9280_64x-r0/INGRASYS-S9280-64X/switch-tna-sai.conf +++ b/device/ingrasys/x86_64-ingrasys_s9280_64x-r0/INGRASYS-S9280-64X/switch-tna-sai.conf @@ -23,13 +23,13 @@ "p4_pipelines": [ { "p4_pipeline_name": "pipe", - "config": "share/tofinopd/switch/pipe/tofino.bin", - "context": "share/tofinopd/switch/pipe/context.json" + "config": "share/switch/pipe/tofino.bin", + "context": "share/switch/pipe/context.json" } ], "program-name": "switch", "switchsai": "lib/libswitchsai.so", - "bfrt-config": "share/tofinopd/switch/bf-rt.json", + "bfrt-config": "share/switch/bf-rt.json", "model_json_path" : "share/switch/aug_model.json", "switchapi_port_add": false, "non_default_port_ppgs": 5 diff --git a/device/wnc/x86_64-wnc_osw1800-r0/OSW1800-48x6q/switch-tna-sai.conf b/device/wnc/x86_64-wnc_osw1800-r0/OSW1800-48x6q/switch-tna-sai.conf index 4bff0a177b..f156534f87 100644 --- a/device/wnc/x86_64-wnc_osw1800-r0/OSW1800-48x6q/switch-tna-sai.conf +++ b/device/wnc/x86_64-wnc_osw1800-r0/OSW1800-48x6q/switch-tna-sai.conf @@ -23,13 +23,13 @@ "p4_pipelines": [ { "p4_pipeline_name": "pipe", - "config": "share/tofinopd/switch/pipe/tofino.bin", - "context": "share/tofinopd/switch/pipe/context.json" + "config": "share/switch/pipe/tofino.bin", + "context": "share/switch/pipe/context.json" } ], "program-name": "switch", "switchsai": "lib/libswitchsai.so", - "bfrt-config": "share/tofinopd/switch/bf-rt.json", + "bfrt-config": "share/switch/bf-rt.json", "model_json_path" : "share/switch/aug_model.json", "switchapi_port_add": false, "non_default_port_ppgs": 5 diff --git a/platform/barefoot/bfn-platform.mk b/platform/barefoot/bfn-platform.mk index 837f86c335..22fc9e6d7c 100644 --- a/platform/barefoot/bfn-platform.mk +++ b/platform/barefoot/bfn-platform.mk @@ -1,5 +1,5 @@ -BFN_PLATFORM = bfnplatform_8_9_1.x.ab1e16f.deb -$(BFN_PLATFORM)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/rel_8_9_1/bfnplatform_8_9_1.x.ab1e16f.deb" +BFN_PLATFORM = bfnplatform_9.0.0.cc6ccbe_pr_deb9.deb +$(BFN_PLATFORM)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/rel_9_0/bfnplatform_9.0.0.cc6ccbe_pr_deb9.deb" -SONIC_ONLINE_DEBS += $(BFN_PLATFORM) # $(BFN_SAI_DEV) +SONIC_ONLINE_DEBS += $(BFN_PLATFORM) $(BFN_SAI_DEV)_DEPENDS += $(BFN_PLATFORM) diff --git a/platform/barefoot/bfn-sai.mk b/platform/barefoot/bfn-sai.mk index e3253348e7..584c891575 100644 --- a/platform/barefoot/bfn-sai.mk +++ b/platform/barefoot/bfn-sai.mk @@ -1,5 +1,5 @@ -BFN_SAI = bfnsdk_8_9_1.x.ab1e16f.deb -$(BFN_SAI)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/rel_8_9_1/bfnsdk_8_9_1.x.ab1e16f.deb" +BFN_SAI = bfnsdk_9.0.0.cc6ccbe_pr_deb9.deb +$(BFN_SAI)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/rel_9_0/bfnsdk_9.0.0.cc6ccbe_pr_deb9.deb" -SONIC_ONLINE_DEBS += $(BFN_SAI) # $(BFN_SAI_DEV) +SONIC_ONLINE_DEBS += $(BFN_SAI) $(BFN_SAI_DEV)_DEPENDS += $(BFN_SAI) From 8facac914993cd48d7bdbf1ca55efd1a9412f623 Mon Sep 17 00:00:00 2001 From: pavel-shirshov Date: Mon, 19 Aug 2019 16:05:20 -0700 Subject: [PATCH 07/43] [Fast-Reboot]: FR mode is active only first 3 minutes after start. (#3352) * Fast reboot mode should be enabled only 3 minutes after restart * Advance sonic-quagga submodule --- files/scripts/syncd.sh | 2 +- src/sonic-quagga | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/files/scripts/syncd.sh b/files/scripts/syncd.sh index d4536b4d8b..0c3be805e7 100755 --- a/files/scripts/syncd.sh +++ b/files/scripts/syncd.sh @@ -64,7 +64,7 @@ function getBootType() TYPE='fastfast' ;; *SONIC_BOOT_TYPE=fast*|*fast-reboot*) - TYPE='fast' + TYPE=$(awk '{ if ($1 <= 180) print "fast"; else print "cold" }' /proc/uptime) ;; *) TYPE='cold' diff --git a/src/sonic-quagga b/src/sonic-quagga index b1d01a2dd8..904a350107 160000 --- a/src/sonic-quagga +++ b/src/sonic-quagga @@ -1 +1 @@ -Subproject commit b1d01a2dd841f76e73067171702f7c6321793c49 +Subproject commit 904a350107793d44be7167500fcec9087ca3243b From 8b674c8da4accfeb6c139b0d60f9cdc120e0ea30 Mon Sep 17 00:00:00 2001 From: Ying Xie Date: Wed, 21 Aug 2019 09:16:55 -0700 Subject: [PATCH 08/43] [kernel] Upgrade kernel to version 4.9.168-1+deb9u5 (#3369) * [kernel] Upgrade kernel to version 4.9.168-1+deb9u5 - Picking up security patches. Signed-off-by: Ying Xie * advance linux-kernel sub module head --- rules/linux-kernel.mk | 2 +- src/sonic-linux-kernel | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rules/linux-kernel.mk b/rules/linux-kernel.mk index fd8429eb8f..bc95255e0d 100644 --- a/rules/linux-kernel.mk +++ b/rules/linux-kernel.mk @@ -3,7 +3,7 @@ KVERSION_SHORT = 4.9.0-9-2 KVERSION = $(KVERSION_SHORT)-$(CONFIGURED_ARCH) KERNEL_VERSION = 4.9.168 -KERNEL_SUBVERSION = 1+deb9u3 +KERNEL_SUBVERSION = 1+deb9u5 export KVERSION_SHORT KVERSION KERNEL_VERSION KERNEL_SUBVERSION diff --git a/src/sonic-linux-kernel b/src/sonic-linux-kernel index f8b30b40c3..f8bbe29ff8 160000 --- a/src/sonic-linux-kernel +++ b/src/sonic-linux-kernel @@ -1 +1 @@ -Subproject commit f8b30b40c358238d3055a18305c8b7b659b47739 +Subproject commit f8bbe29ff89611d190658118e2c191943dabe3e0 From aea84a7477f0ef33d9c4eb5aa1082794ce357273 Mon Sep 17 00:00:00 2001 From: paavaanan Date: Fri, 23 Aug 2019 23:42:26 +0530 Subject: [PATCH 09/43] BIOS upgrade support with API2.0 for DellEMC S6100 (#3116) --- .../bin/S6100-BIOS-3.25.0.2-7.bin | Bin 0 -> 16777216 bytes platform/broadcom/platform-modules-dell.mk | 3 + .../debian/platform-modules-s6100.install | 1 + .../s6100/sonic_platform/chassis.py | 146 + ...-for-Intel-Rangeley-and-Denverton-CP.patch | 8510 +++++++++++++++++ .../tools/flashrom.sh | 10 + 6 files changed, 8670 insertions(+) create mode 100644 device/dell/x86_64-dell_s6100_c2538-r0/bin/S6100-BIOS-3.25.0.2-7.bin create mode 100644 platform/broadcom/sonic-platform-modules-dell/tools/0002-Flashrom-support-for-Intel-Rangeley-and-Denverton-CP.patch create mode 100755 platform/broadcom/sonic-platform-modules-dell/tools/flashrom.sh diff --git a/device/dell/x86_64-dell_s6100_c2538-r0/bin/S6100-BIOS-3.25.0.2-7.bin b/device/dell/x86_64-dell_s6100_c2538-r0/bin/S6100-BIOS-3.25.0.2-7.bin new file mode 100644 index 0000000000000000000000000000000000000000..e6371a2602d6a40f1f88e40a9f61dbdde9f4a2a1 GIT binary patch literal 16777216 zcmeF!u?@m75CFh;f+B?`h>9{uq-P$6foa$y9cwTG8yE)(6uOit&XVQV`(Jur=bZo7 z<^JmG*rX=y+CGjkM8v#eh;v&~pEczpx`=J=ayfo`)-ZJ+(k!vEui;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` 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

yplO0SngoMe5@nF#S5eEAgW9 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 z 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%0D7#>Q9nUIjaIdYp|wVQV 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

64Ker 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�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

vfN| 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

UHavc-2*jBVhgnPIC>Ih%_qyISc3a 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 z

8Dc&;E@A8rsb`YY@5KXgnR||_JNYIIfAjd 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

l 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%0AhyK+QsQk*AZ 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 z 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

WYD`y;+OC$?D9V;GV4% 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,pSujQdj2>~&Nqu@t;5lE= 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%0A?Er{edgx6{?iUpqW~Pk&CGf}f6tsjUPWD;G7fm= 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�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

(Ww-8a?)#iq*bLss>GUcqW^S20%f`vGR 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 z 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‹sdm`+*_ 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ν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�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

>0oHx;J40lVG~J6Z?gTJcS2J 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

|<&(P@S#%24G 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�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 z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## 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

}n#vs4ba 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 z00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG0 z1yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5 zPyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu` z00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG0 z1yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5 zPyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu` z00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG0 z1yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5 zPyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu` z00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG0 z1yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5 zPyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu` z00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG0 z1yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5 zPyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu` z00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG0 z1yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5 zPyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu`00mG01yBG5Pyhu` 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

Xu?H=Z|Cv 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 z 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

>ds^2Qh{5_uZ+f+t#IdK`wuJ&v$xhnRSs{}33 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�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 literal 0 HcmV?d00001 diff --git a/platform/broadcom/platform-modules-dell.mk b/platform/broadcom/platform-modules-dell.mk index 1d0c41956b..34e404cfae 100644 --- a/platform/broadcom/platform-modules-dell.mk +++ b/platform/broadcom/platform-modules-dell.mk @@ -36,3 +36,6 @@ $(DELL_S5232F_PLATFORM_MODULE)_PLATFORM = x86_64-dellemc_s5232f_c3538-r0 $(eval $(call add_extra_package,$(DELL_Z9100_PLATFORM_MODULE),$(DELL_S5232F_PLATFORM_MODULE))) SONIC_STRETCH_DEBS += $(DELL_Z9100_PLATFORM_MODULE) + +#flashrom tool +$(shell ./$(PLATFORM_PATH)/sonic-platform-modules-dell/tools/flashrom.sh > /dev/null 2>&1) diff --git a/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install b/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install index b9b6abbb35..b0c27702cb 100644 --- a/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install +++ b/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install @@ -12,3 +12,4 @@ s6100/scripts/platform_watchdog_disable.sh usr/local/bin s6100/scripts/sensors usr/bin s6100/systemd/platform-modules-s6100.service etc/systemd/system s6100/systemd/s6100-lpc-monitor.service etc/systemd/system +tools/flashrom/flashrom usr/local/bin/ diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/chassis.py b/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/chassis.py index 53d4eadaec..d03eee255d 100755 --- a/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/chassis.py +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/chassis.py @@ -10,6 +10,13 @@ try: import os + import sys + import click + import subprocess + import glob + import sonic_device_util + from commands import getstatusoutput + from sonic_platform_base.platform_base import PlatformBase from sonic_platform_base.chassis_base import ChassisBase from sonic_platform.sfp import Sfp from sonic_platform.psu import Psu @@ -76,6 +83,8 @@ class Chassis(ChassisBase): power_reason_dict[33] = ChassisBase.REBOOT_CAUSE_THERMAL_OVERLOAD_ASIC power_reason_dict[44] = ChassisBase.REBOOT_CAUSE_INSUFFICIENT_FAN_SPEED + _component_name_list = ["BIOS", "CPLD1", "CPLD2", "FPGA"] + def __init__(self): ChassisBase.__init__(self) @@ -141,6 +150,19 @@ class Chassis(ChassisBase): rv = rv.lstrip(" ") return rv + # Run bash command and print output to stdout + def run_command(self, command): + click.echo(click.style("Command: ", fg='cyan') + + click.style(command, fg='green')) + + proc = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE) + (out, err) = proc.communicate() + + click.echo(out) + + if proc.returncode != 0: + sys.exit(proc.returncode) + def get_name(self): """ Retrieves the name of the device @@ -230,3 +252,127 @@ class Chassis(ChassisBase): return (self.reset_reason_dict[reset_reason], None) return (ChassisBase.REBOOT_CAUSE_HARDWARE_OTHER, "Invalid Reason") + + def get_component_name_list(self): + """ + Retrieves chassis components list such as BIOS, CPLD, FPGA, etc. + + Returns: + A list containing component name. + """ + return self._component_name_list + + def get_firmware_version(self, component_name): + + version = None + + if component_name in self._component_name_list: + + if component_name == self._component_name_list[0]: # BIOS + status, version = getstatusoutput( + "dmidecode -s system-version") + + elif component_name == self._component_name_list[1]: # CPLD1 + version = None + + elif component_name == self._component_name_list[2]: # CPLD2 + version = None + + elif component_name == self._component_name_list[3]: # SMF + version = None + + return version + + def install_component_firmware(self, component_name, image_path): + + bios_image = None + bios_version = "3.25.0." + bios_file_name = "S6100*BIOS*" + flashrom = "/usr/local/bin/flashrom" + PLATFORM_ROOT_PATH = '/usr/share/sonic/device' + machine_info = sonic_device_util.get_machine_info() + platform = sonic_device_util.get_platform_info(machine_info) + platform_path = "/".join([PLATFORM_ROOT_PATH, platform, "bin"]) + + warning = """ + ******************************************************************** + * Warning - Upgrading BIOS is inherently risky and should only be * + * attempted when necessary. A failure at this upgrade may cause * + * a board RMA. Proceed with caution ! * + ******************************************************************** + """ + + if component_name in self._component_name_list: + if component_name == self._component_name_list[0]: # BIOS + + # current BIOS version + current_bios_version = self.get_firmware_version("BIOS") + + # Construct BIOS image path + if image_path is not None: + image_path = image_path + platform_path + for name in glob.glob( + os.path.join(image_path, bios_file_name)): + bios_image = image_path = name + + if not bios_image: + print "BIOS image file not found:", image_path + return False + + # Extract BIOS image version + bios_image = os.path.basename(bios_image) + bios_image = bios_image.strip('S6100-BIOS-') + bios_image_version = bios_image.strip('.bin') + + if bios_image_version.startswith(bios_version): + bios_image_minor = bios_image_version.replace( + bios_image_version[:7], '') + if bios_image_minor.startswith("2"): + bios_image_minor = bios_image_minor.split("-")[1] + + if current_bios_version.startswith(bios_version): + current_bios_minor = current_bios_version.replace( + current_bios_version[:7], '') + if current_bios_minor.startswith("2"): + current_bios_minor = current_bios_minor.split("-")[1] + + # BIOS version check + if bios_image_minor > current_bios_minor: + + print warning + prompt_text = "New BIOS image " + bios_image_version + \ + " available to install, continue?" + yes = click.confirm(prompt_text) + + elif current_bios_minor > bios_image_minor: + + print warning + prompt_text = "Do you want to downgrade BIOS image from " \ + + current_bios_version + " to " + \ + bios_image_version + " continue?" + + yes = click.confirm(prompt_text) + + else: + print("BIOS is already with {} latest version".format( + current_bios_version)) + return True + + if yes: + command = flashrom + " -p" + " internal" + " -w " + \ + image_path + self.run_command(command) + + elif component_name == self._component_name_list[1]: # CPLD1 + return False + + elif component_name == self._component_name_list[2]: # CPLD2 + return False + + elif component_name == self._component_name_list[3]: # SMF + return False + else: + print "Invalid component Name:", component_name + + return True + diff --git a/platform/broadcom/sonic-platform-modules-dell/tools/0002-Flashrom-support-for-Intel-Rangeley-and-Denverton-CP.patch b/platform/broadcom/sonic-platform-modules-dell/tools/0002-Flashrom-support-for-Intel-Rangeley-and-Denverton-CP.patch new file mode 100644 index 0000000000..ab77df9c4d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-dell/tools/0002-Flashrom-support-for-Intel-Rangeley-and-Denverton-CP.patch @@ -0,0 +1,8510 @@ +From 482e06109190eb918208820fd94c8f4a6963f77e Mon Sep 17 00:00:00 2001 +From: paavaanan +Date: Tue, 21 May 2019 10:40:59 -0400 +Subject: [PATCH] Intel-Rangeley-stripped-code-changes + +--- + 82802ab.c | 1 + + Makefile | 109 +++- + README | 26 +- + at45db.c | 562 ++++++++++++++++ + atahpt.c | 2 + + board_enable.c | 19 +- + buspirate_spi.c | 7 +- + cbtable.c | 7 +- + chipdrivers.h | 21 +- + chipset_enable.c | 610 +++++++++++------ + cli_classic.c | 40 +- + dmi.c | 332 ++++++++-- + dnv_smi_spi.c | 185 ++++++ + drkaiser.c | 14 +- + flash.h | 56 +- + flashchips.c | 791 +++++++++++++++++++---- + flashchips.h | 27 +- + flashrom.c | 162 ++++- + ft2232_spi.c | 6 + + gfxnvidia.c | 14 +- + hwaccess.h | 6 + + ich_descriptors.c | 104 +++ + ich_descriptors.h | 104 +++ + ichspi.c | 557 ++++++++++++++-- + internal.c | 5 +- + it85spi.c | 3 + + it87spi.c | 47 +- + layout.c | 126 +++- + linux_spi.c | 12 +- + mcp6x_spi.c | 15 +- + nic3com.c | 2 + + nicintel.c | 29 +- + nicintel_spi.c | 26 +- + nicnatsemi.c | 2 + + nicrealtek.c | 2 + + ogp_spi.c | 14 +- + pcidev.c | 2 +- + physmap.c | 170 +++-- + pony_spi.c | 1 + + print.c | 15 +- + programmer.h | 28 +- + rayer_spi.c | 196 ++++-- + satamv.c | 19 +- + satasii.c | 18 +- + sb600spi.c | 208 +++++- + serial.c | 113 ++-- + serprog.c | 165 +++-- + spi25.c | 35 +- + spi25_statusreg.c | 2 +- + stm50.c | 115 ++++ + udelay.c | 10 +- + util/getrevision.sh | 311 +++++++++ + util/ich_descriptors_tool/ich_descriptors_tool.c | 8 +- + util/z60_flashrom.rules | 4 + + 54 files changed, 4553 insertions(+), 912 deletions(-) + create mode 100644 at45db.c + create mode 100644 dnv_smi_spi.c + create mode 100644 stm50.c + create mode 100755 util/getrevision.sh + +diff --git a/82802ab.c b/82802ab.c +index 608995d..2a43813 100644 +--- a/82802ab.c ++++ b/82802ab.c +@@ -89,6 +89,7 @@ int probe_82802ab(struct flashctx *flash) + return 1; + } + ++/* FIXME: needs timeout */ + uint8_t wait_82802ab(struct flashctx *flash) + { + uint8_t status; +diff --git a/Makefile b/Makefile +index 6e41e5d..d66039a 100644 +--- a/Makefile ++++ b/Makefile +@@ -39,6 +39,7 @@ CFLAGS ?= -Os -Wall -Wshadow + EXPORTDIR ?= . + AR ?= ar + RANLIB ?= ranlib ++DOSLIBS_BASE ?= .. + # The following parameter changes the default programmer that will be used if there is no -p/--programmer + # argument given when running flashrom. The predefined setting does not enable any default so that every + # user has to declare the programmer he wants to use on every run. The rationale for this to be not set +@@ -50,7 +51,8 @@ RANLIB ?= ranlib + # values are those specified in enum programmer in programmer.h (which depend on other CONFIG_* options + # evaluated below, namely those that enable/disable the various programmers). + # Compilation will fail for unspecified values. +-CONFIG_DEFAULT_PROGRAMMER ?= PROGRAMMER_INVALID ++#CONFIG_DEFAULT_PROGRAMMER ?= PROGRAMMER_INVALID ++CONFIG_DEFAULT_PROGRAMMER ?= PROGRAMMER_INTERNAL + + # If your compiler spits out excessive warnings, run make WARNERROR=no + # You shouldn't have to change this flag. +@@ -61,10 +63,13 @@ CFLAGS += -Werror + endif + + ############################################################################### +-# General OS/architecture specific settings. ++# General OS-specific settings. ++# 1. Prepare for later by gathering information about host and target OS ++# 2. Set compiler flags and parameters according to OSes ++# 3. Likewise verify user-supplied CONFIG_* variables. + + # HOST_OS is only used to work around local toolchain issues. +-HOST_OS ?= $(shell uname) ++HOST_OS ?= $(shell uname) + ifeq ($(HOST_OS), MINGW32_NT-5.1) + # Explicitly set CC = gcc on MinGW, otherwise: "cc: command not found". + CC = gcc +@@ -94,13 +99,24 @@ CPPFLAGS += -I/usr/local/include + LDFLAGS += -L/usr/local/lib + endif + ++ifeq ($(TARGET_OS), NetBSD) ++CPPFLAGS += -I/usr/pkg/include ++LDFLAGS += -L/usr/pkg/lib ++endif ++ ++ifeq ($(TARGET_OS), DragonFlyBSD) ++CPPFLAGS += -I/usr/pkg/include ++LDFLAGS += -L/usr/pkg/lib ++endif ++ + ifeq ($(TARGET_OS), DOS) + EXEC_SUFFIX := .exe +-CPPFLAGS += -I../libgetopt ++CPPFLAGS += -I$(DOSLIBS_BASE)/libgetopt + # DJGPP has odd uint*_t definitions which cause lots of format string warnings. + CFLAGS += -Wno-format + # FIXME Check if we can achieve the same effect with -L../libgetopt -lgetopt +-LIBS += ../libgetopt/libgetopt.a ++LIBS += -lgetopt ++LDFLAGS += -L$(DOSLIBS_BASE)/libgetopt/ + # Bus Pirate, Serprog and PonyProg are not supported under DOS (missing serial support). + ifeq ($(CONFIG_BUSPIRATE_SPI), yes) + UNSUPPORTED_FEATURES += CONFIG_BUSPIRATE_SPI=yes +@@ -215,6 +231,10 @@ endif + endif + + ifeq ($(TARGET_OS), libpayload) ++ifeq ($(MAKECMDGOALS),) ++.DEFAULT_GOAL := libflashrom.a ++$(info Setting default goal to libflashrom.a) ++endif + FLASHROM_CFLAGS += -DSTANDALONE + ifeq ($(CONFIG_DUMMY), yes) + UNSUPPORTED_FEATURES += CONFIG_DUMMY=yes +@@ -263,6 +283,10 @@ override CONFIG_LINUX_SPI = no + endif + endif + ++############################################################################### ++# General architecture-specific settings. ++# Like above for the OS, below we verify user-supplied options depending on the target architecture. ++ + # Determine the destination processor architecture. + # IMPORTANT: The following line must be placed before ARCH is ever used + # (of course), but should come after any lines setting CC because the line +@@ -307,10 +331,10 @@ endif + ############################################################################### + # Flash chip drivers and bus support infrastructure. + +-CHIP_OBJS = jedec.o stm50flw0x0x.o w39.o w29ee011.o \ ++CHIP_OBJS = jedec.o stm50.o w39.o w29ee011.o \ + sst28sf040.o m29f400bt.o 82802ab.o pm49fl00x.o \ + sst49lfxxxc.o sst_fwhub.o flashchips.o spi.o spi25.o spi25_statusreg.o \ +- opaque.o sfdp.o en29lv640b.o ++ opaque.o sfdp.o en29lv640b.o at45db.o + + ############################################################################### + # Library code. +@@ -322,18 +346,22 @@ LIB_OBJS = layout.o flashrom.o udelay.o programmer.o + + CLI_OBJS = cli_classic.o cli_output.o print.o + +-# Set the flashrom version string from the highest revision number +-# of the checked out flashrom files. ++# Set the flashrom version string from the highest revision number of the checked out flashrom files. + # Note to packagers: Any tree exported with "make export" or "make tarball" + # will not require subversion. The downloadable snapshots are already exported. +-SVNVERSION := $(shell LC_ALL=C svnversion -cn . 2>/dev/null | sed -e "s/.*://" -e "s/\([0-9]*\).*/\1/" | grep "[0-9]" || LC_ALL=C svn info . 2>/dev/null | awk '/^Revision:/ {print $$2 }' | grep "[0-9]" || LC_ALL=C git svn info . 2>/dev/null | awk '/^Revision:/ {print $$2 }' | grep "[0-9]" || echo unknown) ++SVNVERSION := r1781 + + RELEASE := 0.9.7 +-VERSION := $(RELEASE)-r$(SVNVERSION) ++VERSION := $(RELEASE)-$(SVNVERSION) + RELEASENAME ?= $(VERSION) + + SVNDEF := -D'FLASHROM_VERSION="$(VERSION)"' + ++F10FLAGS := -DFORCE10_SPI_CHANGE ++ ++############################################################################### ++# Default settings of CONFIG_* variables. ++ + # Always enable internal/onboard support for now. + CONFIG_INTERNAL ?= yes + +@@ -425,16 +453,39 @@ endif + endif + + ############################################################################### ++# Handle CONFIG_* variables that depend on others set (and verified) above. ++ ++# The external DMI decoder (dmidecode) does not work in libpayload. Bail out if the internal one got disabled. ++ifeq ($(TARGET_OS), libpayload) ++ifeq ($(CONFIG_INTERNAL), yes) ++ifeq ($(CONFIG_INTERNAL_DMI), no) ++UNSUPPORTED_FEATURES += CONFIG_INTERNAL_DMI=no ++else ++override CONFIG_INTERNAL_DMI = yes ++endif ++endif ++endif ++ ++# Use internal DMI/SMBIOS decoder by default instead of relying on dmidecode. ++CONFIG_INTERNAL_DMI ?= yes ++ ++############################################################################### + # Programmer drivers and programmer support infrastructure. ++# Depending on the CONFIG_* variables set and verified above we set compiler flags and parameters below. ++ ++FEATURE_CFLAGS += -DDELL_DENVERTON_SUPPORT -DDELL_AVOTON_SUPPORT + + FEATURE_CFLAGS += -D'CONFIG_DEFAULT_PROGRAMMER=$(CONFIG_DEFAULT_PROGRAMMER)' + + ifeq ($(CONFIG_INTERNAL), yes) + FEATURE_CFLAGS += -D'CONFIG_INTERNAL=1' +-PROGRAMMER_OBJS += processor_enable.o chipset_enable.o board_enable.o cbtable.o dmi.o internal.o ++PROGRAMMER_OBJS += processor_enable.o chipset_enable.o board_enable.o cbtable.o internal.o + ifeq ($(ARCH), x86) + PROGRAMMER_OBJS += it87spi.o it85spi.o sb600spi.o amd_imc.o wbsio_spi.o mcp6x_spi.o +-PROGRAMMER_OBJS += ichspi.o ich_descriptors.o ++PROGRAMMER_OBJS += ichspi.o ich_descriptors.o dmi.o dnv_smi_spi.o ++ifeq ($(CONFIG_INTERNAL_DMI), yes) ++FEATURE_CFLAGS += -D'CONFIG_INTERNAL_DMI=1' ++endif + else + endif + NEED_PCI := yes +@@ -597,9 +648,9 @@ PCILIBS += -lpciutils -lpci + PCILIBS += -l$(shell uname -p) + else + ifeq ($(TARGET_OS), DOS) +-# FIXME There needs to be a better way to do this +-CPPFLAGS += -I../libpci/include +-PCILIBS += ../libpci/lib/libpci.a ++CPPFLAGS += -I$(DOSLIBS_BASE)/libpci/include ++LDFLAGS += -L$(DOSLIBS_BASE)/libpci/lib/ ++PCILIBS += -lpci + else + PCILIBS += -lpci + ifeq ($(TARGET_OS), OpenBSD) +@@ -635,10 +686,11 @@ FEATURE_LIBS += $(shell LC_ALL=C grep -q "NEEDLIBZ := yes" .libdeps && printf "% + LIBFLASHROM_OBJS = $(CHIP_OBJS) $(PROGRAMMER_OBJS) $(LIB_OBJS) + OBJS = $(CLI_OBJS) $(LIBFLASHROM_OBJS) + +-all: hwlibs features $(PROGRAM)$(EXEC_SUFFIX) ++all: hwlibs features $(PROGRAM)$(EXEC_SUFFIX) $(PROGRAM).8 + ifeq ($(ARCH), x86) + @+$(MAKE) -C util/ich_descriptors_tool/ TARGET_OS=$(TARGET_OS) EXEC_SUFFIX=$(EXEC_SUFFIX) + endif ++default: all + + $(PROGRAM)$(EXEC_SUFFIX): $(OBJS) + $(CC) $(LDFLAGS) -o $(PROGRAM)$(EXEC_SUFFIX) $(OBJS) $(LIBS) $(PCILIBS) $(FEATURE_LIBS) $(USBLIBS) +@@ -653,13 +705,13 @@ libflashrom.a: $(LIBFLASHROM_OBJS) + TAROPTIONS = $(shell LC_ALL=C tar --version|grep -q GNU && echo "--owner=root --group=root") + + %.o: %.c .features +- $(CC) -MMD $(CFLAGS) $(CPPFLAGS) $(FLASHROM_CFLAGS) $(FEATURE_CFLAGS) $(SVNDEF) -o $@ -c $< ++ $(CC) -MMD $(CFLAGS) $(CPPFLAGS) $(FLASHROM_CFLAGS) $(FEATURE_CFLAGS) $(SVNDEF) $(F10FLAGS) -o $@ -c $< + + # Make sure to add all names of generated binaries here. + # This includes all frontends and libflashrom. + # We don't use EXEC_SUFFIX here because we want to clean everything. + clean: +- rm -f $(PROGRAM) $(PROGRAM).exe libflashrom.a *.o *.d ++ rm -f $(PROGRAM) $(PROGRAM).exe libflashrom.a *.o *.d $(PROGRAM).8 + @+$(MAKE) -C util/ich_descriptors_tool/ clean + + distclean: clean +@@ -698,11 +750,20 @@ compiler: featuresavailable + @echo $(TARGET_OS)|wc -w|grep -q '^[[:blank:]]*1[[:blank:]]*$$' || \ + ( echo "unknown. Aborting."; exit 1) + @printf "%s\n" '$(TARGET_OS)' ++ifeq ($(TARGET_OS), libpayload) ++ @$(CC) --version 2>&1 | grep -q coreboot || \ ++ ( echo "Warning: It seems you are not using coreboot's reference compiler."; \ ++ echo "This might work but usually does not, please beware." ) ++endif + + define LIBPCI_TEST + /* Avoid a failing test due to libpci header symbol shadowing breakage */ + #define index shadow_workaround_index ++#if !defined __NetBSD__ && !defined __DragonFly__ + #include ++#else ++#include ++#endif + struct pci_access *pacc; + int main(int argc, char **argv) + { +@@ -853,16 +914,20 @@ endif + @$(DIFF) -q .features.tmp .features >/dev/null 2>&1 && rm .features.tmp || mv .features.tmp .features + @rm -f .featuretest.c .featuretest$(EXEC_SUFFIX) + +-install: $(PROGRAM)$(EXEC_SUFFIX) ++$(PROGRAM).8: $(PROGRAM).8.tmpl ++ @sed -e '1 s#".*".*#"$(shell ./util/getrevision.sh -d $(PROGRAM).8.tmpl)" "$(VERSION)"#' <$< >$@ ++ ++install: $(PROGRAM)$(EXEC_SUFFIX) $(PROGRAM).8 + mkdir -p $(DESTDIR)$(PREFIX)/sbin + mkdir -p $(DESTDIR)$(MANDIR)/man8 + $(INSTALL) -m 0755 $(PROGRAM)$(EXEC_SUFFIX) $(DESTDIR)$(PREFIX)/sbin + $(INSTALL) -m 0644 $(PROGRAM).8 $(DESTDIR)$(MANDIR)/man8 + +-export: ++export: $(PROGRAM).8 + @rm -rf $(EXPORTDIR)/flashrom-$(RELEASENAME) + @svn export -r BASE . $(EXPORTDIR)/flashrom-$(RELEASENAME) + @sed "s/^SVNVERSION.*/SVNVERSION := $(SVNVERSION)/" Makefile >$(EXPORTDIR)/flashrom-$(RELEASENAME)/Makefile ++ @cp $(PROGRAM).8 "$(EXPORTDIR)/flashrom-$(RELEASENAME)/$(PROGRAM).8" + @LC_ALL=C svn log >$(EXPORTDIR)/flashrom-$(RELEASENAME)/ChangeLog + @echo Exported $(EXPORTDIR)/flashrom-$(RELEASENAME)/ + +@@ -876,6 +941,6 @@ djgpp-dos: clean + libpayload: clean + make CC="CC=i386-elf-gcc lpgcc" AR=i386-elf-ar RANLIB=i386-elf-ranlib + +-.PHONY: all clean distclean compiler hwlibs features export tarball dos featuresavailable ++.PHONY: all install clean distclean compiler hwlibs features export tarball dos featuresavailable + + -include $(OBJS:.o=.d) +diff --git a/README b/README +index 7f24cca..b3e50a6 100644 +--- a/README ++++ b/README +@@ -80,11 +80,9 @@ To compile on Solaris, use: + + gmake LDFLAGS="-L$pathtolibpci" CC="gcc -I$pathtopciheaders" CFLAGS=-O2 + +-To compile on NetBSD or DragonFly BSD, use: ++To compile on NetBSD or DragonFly BSD (with pciutils, libftdi, libusb installed in /usr/pkg/), use: + +- ln -s /usr/pkg/include/pciutils pci +- gmake CPPFLAGS="-I. -I/usr/pkg/include" \ +- LDFLAGS="-L/usr/pkg/lib -Wl,-rpath-link,/usr/pkg/lib" ++ gmake + + To compile on OpenBSD, use: + +@@ -105,20 +103,24 @@ To cross-compile on Linux for DOS: + djcrx-2.04pre_20090725-13ap.i386.rpm + The cross toolchain packages for your distribution may have slightly different + names (look for packages named *djgpp*). +- Download pciutils 3.1.5 and apply http://assembler.cz/flashrom/pciutils.patch +- Download and compile http://assembler.cz/flashrom/libgetopt/ ++ ++ You will need the following library source trees containing their compiled ++ static libraries either in the parent directory of the flashrom source or ++ specify the base folder on compile time with the DOSLIBS_BASE parameter. ++ The default as described above is equal to calling ++ 'make djgpp-dos DOSLIBS_BASE=..' ++ ++ To get and build said libraries... ++ Download pciutils 3.1.5 and apply http://flashrom.org/File:Pciutils.patch.gz + Compile pciutils, see README.DJGPP for instructions. ++ Download and compile http://flashrom.org/File:Libgetopt.tar.gz + Enter the flashrom directory. +- ../libpci should contain pciutils source and binaries. +- ../libgetopt should contain getopt.a from libgetopt. + Run either (change settings where appropriate) + make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip + or (above settings hardcoded) + make djgpp-dos +- You might have to add WARNERROR=no to the make command line. +- To run flashrom.exe, download and unpack +- http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi7b.zip and make sure +- CWSDPMI.EXE is in the current directory. ++ To run flashrom.exe, download http://flashrom.org/File:Csdpmi7b.zip and ++ unpack CWSDPMI.EXE into the current directory or one in PATH. + + To cross-compile on Linux for Windows: + +diff --git a/at45db.c b/at45db.c +new file mode 100644 +index 0000000..5c90418 +--- /dev/null ++++ b/at45db.c +@@ -0,0 +1,562 @@ ++/* ++ * Support for Atmel AT45DB series DataFlash chips. ++ * This file is part of the flashrom project. ++ * ++ * Copyright (C) 2012 Aidan Thornton ++ * Copyright (C) 2013 Stefan Tauner ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; version 2 of the License. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++#include ++#include "flash.h" ++#include "chipdrivers.h" ++#include "programmer.h" ++#include "spi.h" ++ ++/* Status register bits */ ++#define AT45DB_READY (1<<7) ++#define AT45DB_CMP (1<<6) ++#define AT45DB_PROT (1<<1) ++#define AT45DB_POWEROF2 (1<<0) ++ ++/* Opcodes */ ++#define AT45DB_STATUS 0xD7 /* NB: this is a block erase command on most other chips(!). */ ++#define AT45DB_DISABLE_PROTECT 0x3D, 0x2A, 0x7F, 0x9A ++#define AT45DB_READ_ARRAY 0xE8 ++#define AT45DB_READ_PROTECT 0x32 ++#define AT45DB_READ_LOCKDOWN 0x35 ++#define AT45DB_PAGE_ERASE 0x81 ++#define AT45DB_BLOCK_ERASE 0x50 ++#define AT45DB_SECTOR_ERASE 0x7C ++#define AT45DB_CHIP_ERASE 0xC7 ++#define AT45DB_CHIP_ERASE_ADDR 0x94809A /* Magic address. See usage. */ ++#define AT45DB_BUFFER1_WRITE 0x84 ++#define AT45DB_BUFFER1_PAGE_PROGRAM 0x88 ++/* Buffer 2 is unused yet. ++#define AT45DB_BUFFER2_WRITE 0x87 ++#define AT45DB_BUFFER2_PAGE_PROGRAM 0x89 ++*/ ++ ++static uint8_t at45db_read_status_register(struct flashctx *flash, uint8_t *status) ++{ ++ static const uint8_t cmd[] = { AT45DB_STATUS }; ++ ++ int ret = spi_send_command(flash, sizeof(cmd), 1, cmd, status); ++ if (ret != 0) ++ msg_cerr("Reading the status register failed!\n"); ++ else ++ msg_cspew("Status register: 0x%02x.\n", *status); ++ return ret; ++} ++ ++int spi_disable_blockprotect_at45db(struct flashctx *flash) ++{ ++ static const uint8_t cmd[4] = { AT45DB_DISABLE_PROTECT }; /* NB: 4 bytes magic number */ ++ int ret = spi_send_command(flash, sizeof(cmd), 0, cmd, NULL); ++ if (ret != 0) { ++ msg_cerr("Sending disable lockdown failed!\n"); ++ return ret; ++ } ++ uint8_t status; ++ ret = at45db_read_status_register(flash, &status); ++ if (ret != 0 || ((status & AT45DB_PROT) != 0)) { ++ msg_cerr("Disabling lockdown failed!\n"); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static unsigned int at45db_get_sector_count(struct flashctx *flash) ++{ ++ unsigned int i, j; ++ unsigned int cnt = 0; ++ for (i = 0; i < NUM_ERASEFUNCTIONS; i++) { ++ if (flash->chip->block_erasers[i].block_erase == &spi_erase_at45db_sector) { ++ for (j = 0; j < NUM_ERASEREGIONS; j++) { ++ cnt += flash->chip->block_erasers[i].eraseblocks[j].count; ++ } ++ } ++ } ++ msg_cspew("%s: number of sectors=%u\n", __func__, cnt); ++ return cnt; ++} ++ ++/* Reads and prettyprints protection/lockdown registers. ++ * Some elegance of the printouts had to be cut down a bit to share this code. */ ++static uint8_t at45db_prettyprint_protection_register(struct flashctx *flash, uint8_t opcode, const char *regname) ++{ ++ const uint8_t cmd[] = { opcode, 0, 0, 0 }; ++ /* The first two sectors share the first result byte. */ ++ uint8_t buf[at45db_get_sector_count(flash) - 1]; ++ ++ int ret = spi_send_command(flash, sizeof(cmd), sizeof(buf), cmd, buf); ++ if (ret != 0) { ++ msg_cerr("Reading the %s register failed!\n", regname); ++ return ret; ++ } ++ ++ unsigned int i; ++ for (i = 0; i < sizeof(buf); i++) { ++ if (buf[i] != 0x00) ++ break; ++ if (i == sizeof(buf) - 1) { ++ msg_cdbg("No Sector is %sed.\n", regname); ++ return 0; ++ } ++ } ++ ++ /* TODO: print which addresses are mapped to (un)locked sectors. */ ++ msg_cdbg("Sector 0a is %s%sed.\n", ((buf[0] & 0xC0) == 0x00) ? "un" : "", regname); ++ msg_cdbg("Sector 0b is %s%sed.\n", ((buf[0] & 0x30) == 0x00) ? "un" : "", regname); ++ for (i = 1; i < sizeof(buf); i++) ++ msg_cdbg("Sector %2u is %s%sed.\n", i, (buf[i] == 0x00) ? "un" : "", regname); ++ ++ return 0; ++} ++ ++/* bit 7: busy flag ++ * bit 6: memory/buffer compare result ++ * bit 5-2: density (encoding see below) ++ * bit 1: protection enabled (soft or hard) ++ * bit 0: "power of 2" page size indicator (e.g. 1 means 256B; 0 means 264B) ++ * ++ * 5-2 encoding: bit 2 is always 1, bits 3-5 encode the density as "2^(bits - 1)" in Mb e.g.: ++ * AT45DB161D 1011 16Mb */ ++int spi_prettyprint_status_register_at45db(struct flashctx *flash) ++{ ++ uint8_t status; ++ if (at45db_read_status_register(flash, &status) != 0) { ++ return 1; ++ } ++ ++ /* AT45DB321C does not support lockdown or a page size of a power of 2... */ ++ const bool isAT45DB321C = (strcmp(flash->chip->name, "AT45DB321C") == 0); ++ msg_cdbg("Chip status register is 0x%02x\n", status); ++ msg_cdbg("Chip status register: Bit 7 / Ready is %sset\n", (status & AT45DB_READY) ? "" : "not "); ++ msg_cdbg("Chip status register: Bit 6 / Compare match is %sset\n", (status & AT45DB_CMP) ? "" : "not "); ++ spi_prettyprint_status_register_bit(status, 5); ++ spi_prettyprint_status_register_bit(status, 4); ++ spi_prettyprint_status_register_bit(status, 3); ++ spi_prettyprint_status_register_bit(status, 2); ++ const uint8_t dens = (status >> 3) & 0x7; /* Bit 2 is always 1, we use the other bits only */ ++ msg_cdbg("Chip status register: Density is %u Mb\n", 1 << (dens - 1)); ++ msg_cdbg("Chip status register: Bit 1 / Protection is %sset\n", (status & AT45DB_PROT) ? "" : "not "); ++ ++ if (isAT45DB321C) ++ spi_prettyprint_status_register_bit(status, 0); ++ else ++ msg_cdbg("Chip status register: Bit 0 / \"Power of 2\" is %sset\n", ++ (status & AT45DB_POWEROF2) ? "" : "not "); ++ ++ if (status & AT45DB_PROT) ++ at45db_prettyprint_protection_register(flash, AT45DB_READ_PROTECT, "protect"); ++ ++ if (!isAT45DB321C) ++ at45db_prettyprint_protection_register(flash, AT45DB_READ_LOCKDOWN, "lock"); ++ ++ return 0; ++} ++ ++/* Probe function for AT45DB* chips that support multiple page sizes. */ ++int probe_spi_at45db(struct flashctx *flash) ++{ ++ uint8_t status; ++ struct flashchip *chip = flash->chip; ++ ++ if (!probe_spi_rdid(flash)) ++ return 0; ++ ++ /* Some AT45DB* chips support two different page sizes each (e.g. 264 and 256 B). In order to tell which ++ * page size this chip has we need to read the status register. */ ++ if (at45db_read_status_register(flash, &status) != 0) ++ return 0; ++ ++ /* We assume sane power-of-2 page sizes and adjust the chip attributes in case this is not the case. */ ++ if ((status & AT45DB_POWEROF2) == 0) { ++ chip->total_size = (chip->total_size / 32) * 33; ++ chip->page_size = (chip->page_size / 32) * 33; ++ ++ unsigned int i, j; ++ for (i = 0; i < NUM_ERASEFUNCTIONS; i++) { ++ struct block_eraser *eraser = &chip->block_erasers[i]; ++ for (j = 0; j < NUM_ERASEREGIONS; j++) { ++ eraser->eraseblocks[j].size = (eraser->eraseblocks[j].size / 32) * 33; ++ } ++ } ++ } ++ ++ switch (chip->page_size) { ++ case 256: chip->gran = write_gran_256bytes; break; ++ case 264: chip->gran = write_gran_264bytes; break; ++ case 512: chip->gran = write_gran_512bytes; break; ++ case 528: chip->gran = write_gran_528bytes; break; ++ case 1024: chip->gran = write_gran_1024bytes; break; ++ case 1056: chip->gran = write_gran_1056bytes; break; ++ default: ++ msg_cerr("%s: unknown page size %d.\n", __func__, chip->page_size); ++ return 0; ++ } ++ ++ msg_cdbg2("%s: total size %i kB, page size %i B\n", __func__, chip->total_size * 1024, chip->page_size); ++ ++ return 1; ++} ++ ++/* Returns the minimum number of bits needed to represent the given address. ++ * FIXME: use mind-blowing implementation. ++ * FIXME: move to utility module. */ ++static uint32_t address_to_bits(uint32_t addr) ++{ ++ unsigned int lzb = 0; ++ while (((1 << (31 - lzb)) & ~addr) != 0) ++ lzb++; ++ return 32 - lzb; ++} ++ ++/* In case of non-power-of-two page sizes we need to convert the address flashrom uses to the address the ++ * DataFlash chips use. The latter uses a segmented address space where the page address is encoded in the ++ * more significant bits and the offset within the page is encoded in the less significant bits. The exact ++ * partition depends on the page size. ++ */ ++static unsigned int at45db_convert_addr(unsigned int addr, unsigned int page_size) ++{ ++ unsigned int page_bits = address_to_bits(page_size - 1); ++ unsigned int at45db_addr = ((addr / page_size) << page_bits) | (addr % page_size); ++ msg_cspew("%s: addr=0x%x, page_size=%u, page_bits=%u -> at45db_addr=0x%x\n", ++ __func__, addr, page_size, page_bits, at45db_addr); ++ return at45db_addr; ++} ++ ++int spi_read_at45db(struct flashctx *flash, uint8_t *buf, unsigned int addr, unsigned int len) ++{ ++ const unsigned int page_size = flash->chip->page_size; ++ const unsigned int total_size = flash->chip->total_size * 1024; ++ if ((addr + len) > total_size) { ++ msg_cerr("%s: tried to read beyond flash boundary: addr=%u, len=%u, size=%u\n", ++ __func__, addr, len, total_size); ++ return 1; ++ } ++ ++ /* We have to split this up into chunks to fit within the programmer's read size limit, but those ++ * chunks can cross page boundaries. */ ++ const unsigned int max_data_read = flash->pgm->spi.max_data_read; ++ const unsigned int max_chunk = (max_data_read > 0) ? max_data_read : page_size; ++ while (addr < len) { ++ unsigned int chunk = min(max_chunk, len); ++ int ret = spi_nbyte_read(flash, at45db_convert_addr(addr, page_size), buf + addr, chunk); ++ if (ret) { ++ msg_cerr("%s: error sending read command!\n", __func__); ++ return ret; ++ } ++ addr += chunk; ++ } ++ ++ return 0; ++} ++ ++/* Legacy continuous read, used where spi_read_at45db() is not available. ++ * The first 4 (dummy) bytes read need to be discarded. */ ++int spi_read_at45db_e8(struct flashctx *flash, uint8_t *buf, unsigned int addr, unsigned int len) ++{ ++ const unsigned int page_size = flash->chip->page_size; ++ const unsigned int total_size = flash->chip->total_size * 1024; ++ if ((addr + len) > total_size) { ++ msg_cerr("%s: tried to read beyond flash boundary: addr=%u, len=%u, size=%u\n", ++ __func__, addr, len, total_size); ++ return 1; ++ } ++ ++ /* We have to split this up into chunks to fit within the programmer's read size limit, but those ++ * chunks can cross page boundaries. */ ++ const unsigned int max_data_read = flash->pgm->spi.max_data_read; ++ const unsigned int max_chunk = (max_data_read > 0) ? max_data_read : page_size; ++ while (addr < len) { ++ const unsigned int addr_at45 = at45db_convert_addr(addr, page_size); ++ const unsigned char cmd[] = { ++ AT45DB_READ_ARRAY, ++ (addr_at45 >> 16) & 0xff, ++ (addr_at45 >> 8) & 0xff, ++ (addr_at45 >> 0) & 0xff ++ }; ++ /* We need to leave place for 4 dummy bytes and handle them explicitly. */ ++ unsigned int chunk = min(max_chunk, len + 4); ++ uint8_t tmp[chunk]; ++ int ret = spi_send_command(flash, sizeof(cmd), chunk, cmd, tmp); ++ if (ret) { ++ msg_cerr("%s: error sending read command!\n", __func__); ++ return ret; ++ } ++ /* Copy result without dummy bytes into buf and advance address counter respectively. */ ++ memcpy(buf + addr, tmp + 4, chunk - 4); ++ addr += chunk - 4; ++ } ++ return 0; ++} ++ ++/* Returns 0 when ready, 1 on errors and timeouts. */ ++static int at45db_wait_ready (struct flashctx *flash, unsigned int us, unsigned int retries) ++{ ++ while (true) { ++ uint8_t status; ++ int ret = at45db_read_status_register(flash, &status); ++ if ((status & AT45DB_READY) == AT45DB_READY) ++ return 0; ++ if (ret != 0 || retries-- == 0) ++ return 1; ++ programmer_delay(us); ++ } ++} ++ ++static int at45db_erase(struct flashctx *flash, uint8_t opcode, unsigned int at45db_addr, unsigned int stepsize, unsigned int retries) ++{ ++ const uint8_t cmd[] = { ++ opcode, ++ (at45db_addr >> 16) & 0xff, ++ (at45db_addr >> 8) & 0xff, ++ (at45db_addr >> 0) & 0xff ++ }; ++ ++ /* Send erase command. */ ++ int ret = spi_send_command(flash, sizeof(cmd), 0, cmd, NULL); ++ if (ret != 0) { ++ msg_cerr("%s: error sending erase command!\n", __func__); ++ return ret; ++ } ++ ++ /* Wait for completion. */ ++ ret = at45db_wait_ready(flash, stepsize, retries); ++ if (ret != 0) ++ msg_cerr("%s: chip did not became ready again after sending the erase command!\n", __func__); ++ ++ return ret; ++} ++ ++int spi_erase_at45db_page(struct flashctx *flash, unsigned int addr, unsigned int blocklen) ++{ ++ const unsigned int page_size = flash->chip->page_size; ++ const unsigned int total_size = flash->chip->total_size * 1024; ++ ++ if ((addr % page_size) != 0 || (blocklen % page_size) != 0) { ++ msg_cerr("%s: cannot erase partial pages: addr=%u, blocklen=%u\n", __func__, addr, blocklen); ++ return 1; ++ } ++ ++ if ((addr + blocklen) > total_size) { ++ msg_cerr("%s: tried to erase a block beyond flash boundary: addr=%u, blocklen=%u, size=%u\n", ++ __func__, addr, blocklen, total_size); ++ return 1; ++ } ++ ++ /* Needs typically about 35 ms for completion, so let's wait 100 ms in 500 us steps. */ ++ return at45db_erase(flash, AT45DB_PAGE_ERASE, at45db_convert_addr(addr, page_size), 500, 200); ++} ++ ++int spi_erase_at45db_block(struct flashctx *flash, unsigned int addr, unsigned int blocklen) ++{ ++ const unsigned int page_size = flash->chip->page_size; ++ const unsigned int total_size = flash->chip->total_size * 1024; ++ ++ if ((addr % page_size) != 0 || (blocklen % page_size) != 0) { // FIXME: should check blocks not pages ++ msg_cerr("%s: cannot erase partial pages: addr=%u, blocklen=%u\n", __func__, addr, blocklen); ++ return 1; ++ } ++ ++ if ((addr + blocklen) > total_size) { ++ msg_cerr("%s: tried to erase a block beyond flash boundary: addr=%u, blocklen=%u, size=%u\n", ++ __func__, addr, blocklen, total_size); ++ return 1; ++ } ++ ++ /* Needs typically between 20 and 100 ms for completion, so let's wait 300 ms in 1 ms steps. */ ++ return at45db_erase(flash, AT45DB_BLOCK_ERASE, at45db_convert_addr(addr, page_size), 1000, 300); ++} ++ ++int spi_erase_at45db_sector(struct flashctx *flash, unsigned int addr, unsigned int blocklen) ++{ ++ const unsigned int page_size = flash->chip->page_size; ++ const unsigned int total_size = flash->chip->total_size * 1024; ++ ++ if ((addr % page_size) != 0 || (blocklen % page_size) != 0) { // FIXME: should check sectors not pages ++ msg_cerr("%s: cannot erase partial pages: addr=%u, blocklen=%u\n", __func__, addr, blocklen); ++ return 1; ++ } ++ ++ if ((addr + blocklen) > total_size) { ++ msg_cerr("%s: tried to erase a sector beyond flash boundary: addr=%u, blocklen=%u, size=%u\n", ++ __func__, addr, blocklen, total_size); ++ return 1; ++ } ++ ++ /* Needs typically about 5 s for completion, so let's wait 20 seconds in 200 ms steps. */ ++ return at45db_erase(flash, AT45DB_SECTOR_ERASE, at45db_convert_addr(addr, page_size), 200000, 100); ++} ++ ++int spi_erase_at45db_chip(struct flashctx *flash, unsigned int addr, unsigned int blocklen) ++{ ++ const unsigned int total_size = flash->chip->total_size * 1024; ++ ++ if ((addr + blocklen) > total_size) { ++ msg_cerr("%s: tried to erase beyond flash boundary: addr=%u, blocklen=%u, size=%u\n", ++ __func__, addr, blocklen, total_size); ++ return 1; ++ } ++ ++ /* Needs typically from about 5 to over 60 s for completion, so let's wait 100 s in 500 ms steps. ++ * NB: the address is not a real address but a magic number. This hack allows to share code. */ ++ return at45db_erase(flash, AT45DB_CHIP_ERASE, AT45DB_CHIP_ERASE_ADDR, 500000, 200); ++} ++ ++/* This one is really special and works only for AT45CS1282. It uses two different opcodes depending on the ++ * address and has an asymmetric layout. */ ++int spi_erase_at45cs_sector(struct flashctx *flash, unsigned int addr, unsigned int blocklen) ++{ ++ const unsigned int page_size = flash->chip->page_size; ++ const unsigned int total_size = flash->chip->total_size * 1024; ++ const struct block_eraser be = flash->chip->block_erasers[0]; ++ const unsigned int sec_0a_top = be.eraseblocks[0].size; ++ const unsigned int sec_0b_top = be.eraseblocks[0].size + be.eraseblocks[1].size; ++ ++ if ((addr + blocklen) > total_size) { ++ msg_cerr("%s: tried to erase a sector beyond flash boundary: addr=%u, blocklen=%u, size=%u\n", ++ __func__, addr, blocklen, total_size); ++ return 1; ++ } ++ ++ bool partial_range = false; ++ uint8_t opcode = 0x7C; /* Used for all but sector 0a. */ ++ if (addr < sec_0a_top) { ++ opcode = 0x50; ++ /* One single sector of 8 pages at address 0. */ ++ if (addr != 0 || blocklen != (8 * page_size)) ++ partial_range = true; ++ } else if (addr < sec_0b_top) { ++ /* One single sector of 248 pages adjacent to the first. */ ++ if (addr != sec_0a_top || blocklen != (248 * page_size)) ++ partial_range = true; ++ } else { ++ /* The rest is filled by 63 aligned sectors of 256 pages. */ ++ if ((addr % (256 * page_size)) != 0 || (blocklen % (256 * page_size)) != 0) ++ partial_range = true; ++ } ++ if (partial_range) { ++ msg_cerr("%s: cannot erase partial sectors: addr=%u, blocklen=%u\n", __func__, addr, blocklen); ++ return 1; ++ } ++ ++ /* Needs up to 4 s for completion, so let's wait 20 seconds in 200 ms steps. */ ++ return at45db_erase(flash, opcode, at45db_convert_addr(addr, page_size), 200000, 100); ++} ++ ++static int at45db_fill_buffer1(struct flashctx *flash, uint8_t *bytes, unsigned int off, unsigned int len) ++{ ++ const unsigned int page_size = flash->chip->page_size; ++ if ((off + len) > page_size) { ++ msg_cerr("Tried to write %u bytes at offset %u into a buffer of only %u B.\n", ++ len, off, page_size); ++ return 1; ++ } ++ ++ /* Create a suitable buffer to store opcode, address and data chunks for buffer1. */ ++ const unsigned int max_data_write = flash->pgm->spi.max_data_write; ++ const unsigned int max_chunk = (max_data_write > 0 && max_data_write <= page_size) ? ++ max_data_write : page_size; ++ uint8_t buf[4 + max_chunk]; ++ ++ buf[0] = AT45DB_BUFFER1_WRITE; ++ while (off < page_size) { ++ unsigned int cur_chunk = min(max_chunk, page_size - off); ++ buf[1] = (off >> 16) & 0xff; ++ buf[2] = (off >> 8) & 0xff; ++ buf[3] = (off >> 0) & 0xff; ++ memcpy(&buf[4], bytes + off, cur_chunk); ++ int ret = spi_send_command(flash, 4 + cur_chunk, 0, buf, NULL); ++ if (ret != 0) { ++ msg_cerr("%s: error sending buffer write!\n", __func__); ++ return ret; ++ } ++ off += cur_chunk; ++ } ++ return 0; ++} ++ ++static int at45db_commit_buffer1(struct flashctx *flash, unsigned int at45db_addr) ++{ ++ const uint8_t cmd[] = { ++ AT45DB_BUFFER1_PAGE_PROGRAM, ++ (at45db_addr >> 16) & 0xff, ++ (at45db_addr >> 8) & 0xff, ++ (at45db_addr >> 0) & 0xff ++ }; ++ ++ /* Send buffer to device. */ ++ int ret = spi_send_command(flash, sizeof(cmd), 0, cmd, NULL); ++ if (ret != 0) { ++ msg_cerr("%s: error sending buffer to main memory command!\n", __func__); ++ return ret; ++ } ++ ++ /* Wait for completion (typically a few ms). */ ++ ret = at45db_wait_ready(flash, 250, 200); // 50 ms ++ if (ret != 0) { ++ msg_cerr("%s: chip did not became ready again!\n", __func__); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int at45db_program_page(struct flashctx *flash, uint8_t *buf, unsigned int at45db_addr) ++{ ++ int ret = at45db_fill_buffer1(flash, buf, 0, flash->chip->page_size); ++ if (ret != 0) { ++ msg_cerr("%s: filling the buffer failed!\n", __func__); ++ return ret; ++ } ++ ++ ret = at45db_commit_buffer1(flash, at45db_addr); ++ if (ret != 0) { ++ msg_cerr("%s: committing page failed!\n", __func__); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++int spi_write_at45db(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len) ++{ ++ const unsigned int page_size = flash->chip->page_size; ++ const unsigned int total_size = flash->chip->total_size; ++ ++ if ((start % page_size) != 0 || (len % page_size) != 0) { ++ msg_cerr("%s: cannot write partial pages: start=%u, len=%u\n", __func__, start, len); ++ return 1; ++ } ++ ++ if ((start + len) > (total_size * 1024)) { ++ msg_cerr("%s: tried to write beyond flash boundary: start=%u, len=%u, size=%u\n", ++ __func__, start, len, total_size); ++ return 1; ++ } ++ ++ unsigned int i; ++ for (i = 0; i < len; i += page_size) { ++ if (at45db_program_page(flash, buf + i, at45db_convert_addr(start + i, page_size)) != 0) { ++ msg_cerr("Writing page %u failed!\n", i); ++ return 1; ++ } ++ } ++ return 0; ++} +diff --git a/atahpt.c b/atahpt.c +index f8be8c4..242e14a 100644 +--- a/atahpt.c ++++ b/atahpt.c +@@ -69,6 +69,8 @@ int atahpt_init(void) + return 1; + + io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_4); ++ if (!io_base_addr) ++ return 1; + + /* Enable flash access. */ + reg32 = pci_read_long(dev, REG_FLASH_ACCESS); +diff --git a/board_enable.c b/board_enable.c +index 074cabb..e2a5fe2 100644 +--- a/board_enable.c ++++ b/board_enable.c +@@ -1488,6 +1488,7 @@ static int intel_ich_gpio_set(int gpio, int raise) + {0x24D0, 0x58, 0x1BFF0000, 0x00030305, 0}, /* 82801EB/ER (ICH5/ICH5R) */ + {0x2640, 0x48, 0x1BFF0000, 0x00030307, 0}, /* 82801FB/FR (ICH6/ICH6R) */ + {0x2641, 0x48, 0x1BFF0000, 0x00030307, 0}, /* 82801FBM (ICH6M) */ ++ {0x27B0, 0x48, 0xFFFFFFFF, 0x000300FF, 0}, /* 82801GDH (ICH7 DH) */ + {0x27B8, 0x48, 0xFFFFFFFF, 0x000300FF, 0}, /* 82801GB/GR (ICH7 Family) */ + {0x27B9, 0x48, 0xFFEBFFFE, 0x000300FE, 0}, /* 82801GBM (ICH7-M) */ + {0x27BD, 0x48, 0xFFEBFFFE, 0x000300FE, 0}, /* 82801GHM (ICH7-M DH) */ +@@ -1665,6 +1666,7 @@ static int intel_ich_gpio_set(int gpio, int raise) + * - abit IP35 Pro: Intel P35 + ICH9R + * - ASUS P5LD2 + * - ASUS P5LD2-VM ++ * - ASUS P5LD2-VM DH + */ + static int intel_ich_gpio16_raise(void) + { +@@ -2266,13 +2268,13 @@ static int p2_whitelist_laptop(void) + * NOTE: Please add boards that _don't_ need such enables or don't work yet + * to the respective tables in print.c. Thanks! + * +- * We use 2 sets of IDs here, you're free to choose which is which. This ++ * We use 2 sets of PCI IDs here, you're free to choose which is which. This + * is to provide a very high degree of certainty when matching a board on + * the basis of subsystem/card IDs. As not every vendor handles + * subsystem/card IDs in a sane manner. + * + * Keep the second set NULLed if it should be ignored. Keep the subsystem IDs +- * NULLed if they don't identify the board fully and if you can't use DMI. ++ * and the dmi identifier NULLed if they don't identify the board fully to disable autodetection. + * But please take care to provide an as complete set of pci ids as possible; + * autodetection is the preferred behaviour and we would like to make sure that + * matches are unique. +@@ -2306,6 +2308,7 @@ const struct board_match board_matches[] = { + #if defined(__i386__) || defined(__x86_64__) + {0x10DE, 0x0547, 0x147B, 0x1C2F, 0x10DE, 0x0548, 0x147B, 0x1C2F, NULL, NULL, NULL, P3, "abit", "AN-M2", 0, NT, nvidia_mcp_gpio2_raise}, + {0x1106, 0x0282, 0x147B, 0x1415, 0x1106, 0x3227, 0x147B, 0x1415, "^AV8 ", NULL, NULL, P3, "abit", "AV8", 0, OK, board_abit_av8}, ++ {0x8086, 0x7190, 0, 0, 0x8086, 0x7110, 0, 0, NULL /* "^I440BX-W977$" */, "abit", "bf6", P3, "abit", "BF6", 0, OK, intel_piix4_gpo26_lower}, + {0x8086, 0x7190, 0, 0, 0x8086, 0x7110, 0, 0, "^i440BX-W977 (BM6)$", NULL, NULL, P3, "abit", "BM6", 0, OK, intel_piix4_gpo26_lower}, + {0x8086, 0x24d3, 0x147b, 0x1014, 0x8086, 0x2578, 0x147b, 0x1014, NULL, NULL, NULL, P3, "abit", "IC7", 0, NT, intel_ich_gpio23_raise}, + {0x8086, 0x2930, 0x147b, 0x1084, 0x11ab, 0x4364, 0x147b, 0x1084, NULL, NULL, NULL, P3, "abit", "IP35", 0, OK, intel_ich_gpio16_raise}, +@@ -2330,6 +2333,7 @@ const struct board_match board_matches[] = { + {0x8086, 0x2570, 0x1849, 0x2570, 0x8086, 0x24d3, 0x1849, 0x24d0, NULL, NULL, NULL, P3, "ASRock", "775i65G", 0, OK, intel_ich_gpio23_raise}, + {0x10DE, 0x0060, 0x1043, 0x80AD, 0x10DE, 0x01E0, 0x1043, 0x80C0, NULL, NULL, NULL, P3, "ASUS", "A7N8X-VM/400", 0, OK, it8712f_gpio12_raise}, + {0x1106, 0x3189, 0x1043, 0x807F, 0x1106, 0x3065, 0x1043, 0x80ED, NULL, NULL, NULL, P3, "ASUS", "A7V600-X", 0, OK, it8712f_gpio31_raise}, ++ {0x1106, 0x3177, 0x1043, 0x80F9, 0x1106, 0x3205, 0x1043, 0x80F9, NULL, NULL, NULL, P3, "ASUS", "A7V8X-MX", 0, OK, w836xx_memw_enable_2e}, + {0x1106, 0x3177, 0x1043, 0x80A1, 0x1106, 0x3205, 0x1043, 0x8118, NULL, NULL, NULL, P3, "ASUS", "A7V8X-MX SE", 0, OK, w836xx_memw_enable_2e}, + {0x1106, 0x3189, 0x1043, 0x807F, 0x1106, 0x3177, 0x1043, 0x808C, NULL, NULL, NULL, P3, "ASUS", "A7V8X", 0, OK, it8703f_gpio51_raise}, + {0x1106, 0x3099, 0x1043, 0x807F, 0x1106, 0x3147, 0x1043, 0x808C, NULL, NULL, NULL, P3, "ASUS", "A7V333", 0, OK, it8703f_gpio51_raise}, +@@ -2372,12 +2376,14 @@ const struct board_match board_matches[] = { + {0x8086, 0x27b8, 0x1043, 0x2a22, 0x8086, 0x2770, 0x1043, 0x2a22, "^P5LP-LE$", NULL, NULL, P3, "ASUS", "P5LP-LE (Epson OEM)", 0, OK, intel_ich_gpio34_raise}, + {0x8086, 0x27da, 0x1043, 0x8179, 0x8086, 0x27b8, 0x1043, 0x8179, "^P5LD2$", NULL, NULL, P3, "ASUS", "P5LD2", 0, NT, intel_ich_gpio16_raise}, + {0x8086, 0x27da, 0x1043, 0x8179, 0x8086, 0x27b8, 0x1043, 0x8179, "^P5LD2-VM$", NULL, NULL, P3, "ASUS", "P5LD2-VM", 0, NT, intel_ich_gpio16_raise}, ++ {0x8086, 0x27b0, 0x1043, 0x8179, 0x8086, 0x2770, 0x1043, 0x817a, "^P5LD2-VM DH$", NULL, NULL, P3, "ASUS", "P5LD2-VM DH", 0, OK, intel_ich_gpio16_raise}, + {0x10DE, 0x0030, 0x1043, 0x818a, 0x8086, 0x100E, 0x1043, 0x80EE, NULL, NULL, NULL, P3, "ASUS", "P5ND2-SLI Deluxe", 0, OK, nvidia_mcp_gpio10_raise}, + {0x10DE, 0x0260, 0x1043, 0x81BC, 0x10DE, 0x026C, 0x1043, 0x829E, "^P5N-D$", NULL, NULL, P3, "ASUS", "P5N-D", 0, OK, it8718f_gpio63_raise}, + {0x10DE, 0x0260, 0x1043, 0x81BC, 0x10DE, 0x026C, 0x1043, 0x8249, "^P5N-E SLI$",NULL, NULL, P3, "ASUS", "P5N-E SLI", 0, NT, it8718f_gpio63_raise}, + {0x8086, 0x24dd, 0x1043, 0x80a6, 0x8086, 0x2570, 0x1043, 0x8157, NULL, NULL, NULL, P3, "ASUS", "P5PE-VM", 0, OK, intel_ich_gpio21_raise}, + {0x8086, 0x2443, 0x1043, 0x8027, 0x8086, 0x1130, 0x1043, 0x8027, "^CUSL2-C", NULL, NULL, P3, "ASUS", "CUSL2-C", 0, OK, intel_ich_gpio21_raise}, + {0x8086, 0x2443, 0x1043, 0x8027, 0x8086, 0x1130, 0x1043, 0x8027, "^TUSL2-C", NULL, NULL, P3, "ASUS", "TUSL2-C", 0, NT, intel_ich_gpio21_raise}, ++ {0x1106, 0x3059, 0x1106, 0x4161, 0x1106, 0x3065, 0x1106, 0x0102, NULL, NULL, NULL, P3, "Bcom/Clientron", "WinNET P680", 0, OK, w836xx_memw_enable_2e}, + {0x1106, 0x3177, 0x1106, 0x3177, 0x1106, 0x3116, 0x1106, 0x3116, "^KM266-8235$", "biostar", "m7viq", P3, "Biostar", "M7VIQ", 0, NT, w83697xx_memw_enable_2e}, + {0x10b7, 0x9055, 0x1028, 0x0082, 0x8086, 0x7190, 0, 0, NULL, NULL, NULL, P3, "Dell", "OptiPlex GX1", 0, OK, intel_piix4_gpo30_lower}, + {0x8086, 0x3590, 0x1028, 0x016c, 0x1000, 0x0030, 0x1028, 0x016c, NULL, NULL, NULL, P3, "Dell", "PowerEdge 1850", 0, OK, intel_ich_gpio23_raise}, +@@ -2452,6 +2458,12 @@ const struct board_match board_matches[] = { + {0x1106, 0x0259, 0x1106, 0xAA07, 0x1106, 0x3227, 0x1106, 0xAA07, NULL, NULL, NULL, P3, "VIA", "EPIA EK", 0, NT, via_vt823x_gpio9_raise}, + {0x1106, 0x3177, 0x1106, 0xAA01, 0x1106, 0x3123, 0x1106, 0xAA01, NULL, NULL, NULL, P3, "VIA", "EPIA M/MII/...", 0, OK, via_vt823x_gpio15_raise}, + {0x1106, 0x0259, 0x1106, 0x3227, 0x1106, 0x3065, 0x1106, 0x3149, NULL, NULL, NULL, P3, "VIA", "EPIA-N/NL", 0, OK, via_vt823x_gpio9_raise}, ++#ifdef DELL_AVOTON_SUPPORT ++ {0x8086, 0x1f38, 0x8086, 0x7270, 0, 0, 0, 0, NULL, NULL, NULL, P2, "DELL", "AVOTON", 0, OK, p2_not_a_laptop}, ++#endif ++#if DELL_DENVERTON_SUPPORT == 1 ++ {0x8086, 0x19dc, 0x8086, 0x7270, 0, 0, 0, 0, NULL, NULL, NULL, P2, "DELL", "DENVERTON", 0, OK, p2_not_a_laptop}, ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + #endif + { 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, P3, NULL, NULL, 0, NT, NULL}, /* end marker */ + }; +@@ -2559,6 +2571,7 @@ const static struct board_match *board_match_pci_ids(enum board_match_phase phas + } + } + ++#if defined(__i386__) || defined(__x86_64__) + if (board->dmi_pattern) { + if (!has_dmi_support) { + msg_pwarn("Warning: Can't autodetect %s %s, DMI info unavailable.\n", +@@ -2571,7 +2584,7 @@ const static struct board_match *board_match_pci_ids(enum board_match_phase phas + continue; + } + } +- ++#endif // defined(__i386__) || defined(__x86_64__) + return board; + } + +diff --git a/buspirate_spi.c b/buspirate_spi.c +index 9d229f4..f0e84bc 100644 +--- a/buspirate_spi.c ++++ b/buspirate_spi.c +@@ -250,6 +250,7 @@ int buspirate_spi_init(void) + if (!bp_commbuf) { + bp_commbufsize = 0; + msg_perr("Out of memory!\n"); ++ free(dev); + return ERROR_OOM; + } + bp_commbufsize = DEFAULT_BUFSIZE; +@@ -263,8 +264,12 @@ int buspirate_spi_init(void) + return ret; + } + +- if (register_shutdown(buspirate_spi_shutdown, NULL)) ++ if (register_shutdown(buspirate_spi_shutdown, NULL) != 0) { ++ bp_commbufsize = 0; ++ free(bp_commbuf); ++ bp_commbuf = NULL; + return 1; ++ } + + /* This is the brute force version, but it should work. + * It is likely to fail if a previous flashrom run was aborted during a write with the new SPI commands +diff --git a/cbtable.c b/cbtable.c +index e262a84..c100bbb 100644 +--- a/cbtable.c ++++ b/cbtable.c +@@ -261,7 +261,7 @@ int cb_parse_table(const char **vendor, const char **model) + #else + start = 0x0; + #endif +- table_area = physmap_try_ro("low megabyte", start, BYTES_TO_MAP - start); ++ table_area = physmap_ro_unaligned("low megabyte", start, BYTES_TO_MAP - start); + if (ERROR_PTR == table_area) { + msg_perr("Failed getting access to coreboot low tables.\n"); + return -1; +@@ -276,8 +276,9 @@ int cb_parse_table(const char **vendor, const char **model) + if (forward->tag == LB_TAG_FORWARD) { + start = forward->forward; + start &= ~(getpagesize() - 1); +- physunmap(table_area, BYTES_TO_MAP); +- table_area = physmap_try_ro("high tables", start, BYTES_TO_MAP); ++ physunmap_unaligned(table_area, BYTES_TO_MAP); ++ // FIXME: table_area is never unmapped below, nor is it unmapped above in the no-forward case ++ table_area = physmap_ro_unaligned("high tables", start, BYTES_TO_MAP); + if (ERROR_PTR == table_area) { + msg_perr("Failed getting access to coreboot high tables.\n"); + return -1; +diff --git a/chipdrivers.h b/chipdrivers.h +index 091d14c..851e90a 100644 +--- a/chipdrivers.h ++++ b/chipdrivers.h +@@ -64,6 +64,7 @@ int spi_write_chunked(struct flashctx *flash, uint8_t *buf, unsigned int start, + /* spi25_statusreg.c */ + uint8_t spi_read_status_register(struct flashctx *flash); + int spi_write_status_register(struct flashctx *flash, int status); ++void spi_prettyprint_status_register_bit(uint8_t status, int bit); + int spi_prettyprint_status_register_plain(struct flashctx *flash); + int spi_prettyprint_status_register_default_welwip(struct flashctx *flash); + int spi_prettyprint_status_register_default_bp1(struct flashctx *flash); +@@ -109,6 +110,19 @@ int read_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsign + int write_opaque(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); + int erase_opaque(struct flashctx *flash, unsigned int blockaddr, unsigned int blocklen); + ++/* at45db.c */ ++int probe_spi_at45db(struct flashctx *flash); ++int spi_prettyprint_status_register_at45db(struct flashctx *flash); ++int spi_disable_blockprotect_at45db(struct flashctx *flash); ++int spi_read_at45db(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); ++int spi_read_at45db_e8(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); ++int spi_write_at45db(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); ++int spi_erase_at45db_page(struct flashctx *flash, unsigned int addr, unsigned int blocklen); ++int spi_erase_at45db_block(struct flashctx *flash, unsigned int addr, unsigned int blocklen); ++int spi_erase_at45db_sector(struct flashctx *flash, unsigned int addr, unsigned int blocklen); ++int spi_erase_at45db_chip(struct flashctx *flash, unsigned int addr, unsigned int blocklen); ++int spi_erase_at45cs_sector(struct flashctx *flash, unsigned int addr, unsigned int blocklen); ++ + /* 82802ab.c */ + uint8_t wait_82802ab(struct flashctx *flash); + int probe_82802ab(struct flashctx *flash); +@@ -179,9 +193,10 @@ int printlock_at49f(struct flashctx *flash); + /* w29ee011.c */ + int probe_w29ee011(struct flashctx *flash); + +-/* stm50flw0x0x.c */ +-int erase_sector_stm50flw0x0x(struct flashctx *flash, unsigned int block, unsigned int blocksize); +-int unlock_stm50flw0x0x(struct flashctx *flash); ++/* stm50.c */ ++int erase_sector_stm50(struct flashctx *flash, unsigned int block, unsigned int blocksize); ++int unlock_stm50_uniform(struct flashctx *flash); ++int unlock_stm50_nonuniform(struct flashctx *flash); + + /* en29lv640b.c */ + int probe_en29lv640b(struct flashctx *flash); +diff --git a/chipset_enable.c b/chipset_enable.c +index a2df263..8a8ab66 100644 +--- a/chipset_enable.c ++++ b/chipset_enable.c +@@ -41,6 +41,17 @@ + + #if defined(__i386__) || defined(__x86_64__) + ++#if DELL_AVOTON_SUPPORT == 1 ++uint8_t is_avoton = 0; ++#endif /* DELL_AVOTON_SUPPORT == 1 */ ++ ++#if DELL_DENVERTON_SUPPORT == 1 ++uint8_t is_dnv = 0; ++uint32_t dnv_bios_region_start = 0x00; ++uint32_t dnv_bios_region_size = 0x00; ++uint32_t dnv_bios_region_limit = 0x00; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + static int enable_flash_ali_m1533(struct pci_dev *dev, const char *name) + { + uint8_t tmp; +@@ -260,20 +271,44 @@ static int enable_flash_piix4(struct pci_dev *dev, const char *name) + return 0; + } + +-/* +- * See ie. page 375 of "Intel I/O Controller Hub 7 (ICH7) Family Datasheet" +- * http://download.intel.com/design/chipsets/datashts/30701303.pdf +- */ +-static int enable_flash_ich(struct pci_dev *dev, const char *name, uint8_t bios_cntl) ++/* Note: the ICH0-ICH5 BIOS_CNTL register is actually 16 bit wide, in Poulsbo, Tunnel Creek and other Atom ++ * chipsets/SoCs it is even 32b, but just treating it as 8 bit wide seems to work fine in practice. */ ++static int enable_flash_ich_bios_cntl(struct pci_dev *dev, enum ich_chipset ich_generation, uint8_t bios_cntl) + { + uint8_t old, new, wanted; + +- /* +- * Note: the ICH0-ICH5 BIOS_CNTL register is actually 16 bit wide, in Tunnel Creek it is even 32b, but +- * just treating it as 8 bit wide seems to work fine in practice. +- */ +- wanted = old = pci_read_byte(dev, bios_cntl); ++ switch (ich_generation) { ++ case CHIPSET_ICH_UNKNOWN: ++ return ERROR_FATAL; ++ /* Non-SPI-capable */ ++ case CHIPSET_ICH: ++ case CHIPSET_ICH2345: ++ break; ++ /* Atom chipsets are special: The second byte of BIOS_CNTL (D9h) contains a prefetch bit similar to what ++ * other SPI-capable chipsets have at DCh. ++ * The Tunnel Creek datasheet contains a lot of details about the SPI controller, among other things it ++ * mentions that the prefetching and caching does only happen for direct memory reads. ++ * Therefore - at least for Tunnel Creek - it should not matter to flashrom because we use the ++ * programmed access only and not memory mapping. */ ++ case CHIPSET_TUNNEL_CREEK: ++ case CHIPSET_POULSBO: ++ case CHIPSET_CENTERTON: ++ old = pci_read_byte(dev, bios_cntl + 1); ++ msg_pdbg("BIOS Prefetch Enable: %sabled, ", (old & 1) ? "en" : "dis"); ++ break; ++ case CHIPSET_ICH7: ++ default: /* Future version might behave the same */ ++ old = (pci_read_byte(dev, bios_cntl) >> 2) & 0x3; ++ msg_pdbg("SPI Read Configuration: "); ++ if (old == 3) ++ msg_pdbg("invalid prefetching/caching settings, "); ++ else ++ msg_pdbg("prefetching %sabled, caching %sabled, ", ++ (old & 0x2) ? "en" : "dis", ++ (old & 0x1) ? "dis" : "en"); ++ } + ++ wanted = old = pci_read_byte(dev, bios_cntl); + /* + * Quote from the 6 Series datasheet (Document Number: 324645-004): + * "Bit 5: SMM BIOS Write Protect Disable (SMM_BWP) +@@ -283,11 +318,23 @@ static int enable_flash_ich(struct pci_dev *dev, const char *name, uint8_t bios_ + * + * Try to unset it in any case. + * It won't hurt and makes sense in some cases according to Stefan Reinauer. ++ * ++ * At least in Centerton aforementioned bit is located at bit 7. It is unspecified in all other Atom ++ * and Desktop chipsets before Ibex Peak/5 Series, but we reset bit 5 anyway. + */ +- wanted &= ~(1 << 5); ++ int smm_bwp_bit; ++ if (ich_generation == CHIPSET_CENTERTON) ++ smm_bwp_bit = 7; ++ else ++ smm_bwp_bit = 5; ++ wanted &= ~(1 << smm_bwp_bit); + +- /* Set BIOS Write Enable */ +- wanted |= (1 << 0); ++ /* Tunnel Creek has a cache disable at bit 2 of the lowest BIOS_CNTL byte. */ ++ if (ich_generation == CHIPSET_TUNNEL_CREEK) ++ wanted |= (1 << 2); ++ ++ wanted |= (1 << 0); /* Set BIOS Write Enable */ ++ wanted &= ~(1 << 1); /* Disable lock (futile) */ + + /* Only write the register if it's necessary */ + if (wanted != old) { +@@ -299,64 +346,79 @@ static int enable_flash_ich(struct pci_dev *dev, const char *name, uint8_t bios_ + msg_pdbg("\nBIOS_CNTL = 0x%02x: ", new); + msg_pdbg("BIOS Lock Enable: %sabled, ", (new & (1 << 1)) ? "en" : "dis"); + msg_pdbg("BIOS Write Enable: %sabled\n", (new & (1 << 0)) ? "en" : "dis"); +- if (new & (1 << 5)) ++ if (new & (1 << smm_bwp_bit)) + msg_pwarn("Warning: BIOS region SMM protection is enabled!\n"); + +- + if (new != wanted) +- msg_pwarn("Warning: Setting Bios Control at 0x%x from 0x%02x to 0x%02x on %s failed.\n" +- "New value is 0x%02x.\n", bios_cntl, old, wanted, name, new); ++ msg_pwarn("Warning: Setting Bios Control at 0x%x from 0x%02x to 0x%02x failed.\n" ++ "New value is 0x%02x.\n", bios_cntl, old, wanted, new); + +- /* Return an error if we could not set the write enable */ ++ /* Return an error if we could not set the write enable only. */ + if (!(new & (1 << 0))) + return -1; + + return 0; + } + +-static int enable_flash_ich_4e(struct pci_dev *dev, const char *name) ++static int enable_flash_ich_fwh_decode(struct pci_dev *dev, enum ich_chipset ich_generation) + { +- /* +- * Note: ICH5 has registers similar to FWH_SEL1, FWH_SEL2 and +- * FWH_DEC_EN1, but they are called FB_SEL1, FB_SEL2, FB_DEC_EN1 and +- * FB_DEC_EN2. +- */ +- internal_buses_supported = BUS_FWH; +- return enable_flash_ich(dev, name, 0x4e); +-} +- +-static int enable_flash_ich_dc(struct pci_dev *dev, const char *name) +-{ +- uint32_t fwh_conf; +- int i, tmp; +- char *idsel = NULL; +- int max_decode_fwh_idsel = 0, max_decode_fwh_decode = 0; +- int contiguous = 1; ++ uint8_t fwh_sel1 = 0, fwh_sel2 = 0, fwh_dec_en_lo = 0, fwh_dec_en_hi = 0; /* silence compilers */ ++ bool implemented = 0; ++ switch (ich_generation) { ++ case CHIPSET_ICH: ++ /* FIXME: Unlike later chipsets, ICH and ICH-0 do only support mapping of the top-most 4MB ++ * and therefore do only feature FWH_DEC_EN (E3h, different default too) and FWH_SEL (E8h). */ ++ break; ++ case CHIPSET_ICH2345: ++ fwh_sel1 = 0xe8; ++ fwh_sel2 = 0xee; ++ fwh_dec_en_lo = 0xf0; ++ fwh_dec_en_hi = 0xe3; ++ implemented = 1; ++ break; ++ case CHIPSET_POULSBO: ++ case CHIPSET_TUNNEL_CREEK: ++ /* FIXME: Similar to ICH and ICH-0, Tunnel Creek and Poulsbo do only feature one register each, ++ * FWH_DEC_EN (D7h) and FWH_SEL (D0h). */ ++ break; ++ case CHIPSET_CENTERTON: ++ /* FIXME: Similar to above FWH_DEC_EN (D4h) and FWH_SEL (D0h). */ ++ break; ++ case CHIPSET_ICH6: ++ case CHIPSET_ICH7: ++ default: /* Future version might behave the same */ ++ fwh_sel1 = 0xd0; ++ fwh_sel2 = 0xd4; ++ fwh_dec_en_lo = 0xd8; ++ fwh_dec_en_hi = 0xd9; ++ implemented = 1; ++ break; ++ } + +- idsel = extract_programmer_param("fwh_idsel"); ++ char *idsel = extract_programmer_param("fwh_idsel"); + if (idsel && strlen(idsel)) { +- uint64_t fwh_idsel_old, fwh_idsel; ++ if (!implemented) { ++ msg_perr("Error: fwh_idsel= specified, but (yet) unsupported on this chipset.\n"); ++ goto idsel_garbage_out; ++ } + errno = 0; + /* Base 16, nothing else makes sense. */ +- fwh_idsel = (uint64_t)strtoull(idsel, NULL, 16); ++ uint64_t fwh_idsel = (uint64_t)strtoull(idsel, NULL, 16); + if (errno) { +- msg_perr("Error: fwh_idsel= specified, but value could " +- "not be converted.\n"); ++ msg_perr("Error: fwh_idsel= specified, but value could not be converted.\n"); + goto idsel_garbage_out; + } + if (fwh_idsel & 0xffff000000000000ULL) { +- msg_perr("Error: fwh_idsel= specified, but value had " +- "unused bits set.\n"); ++ msg_perr("Error: fwh_idsel= specified, but value had unused bits set.\n"); + goto idsel_garbage_out; + } +- fwh_idsel_old = pci_read_long(dev, 0xd0); ++ uint64_t fwh_idsel_old = pci_read_long(dev, fwh_sel1); + fwh_idsel_old <<= 16; +- fwh_idsel_old |= pci_read_word(dev, 0xd4); +- msg_pdbg("\nSetting IDSEL from 0x%012" PRIx64 " to " +- "0x%012" PRIx64 " for top 16 MB.", fwh_idsel_old, +- fwh_idsel); +- rpci_write_long(dev, 0xd0, (fwh_idsel >> 16) & 0xffffffff); +- rpci_write_word(dev, 0xd4, fwh_idsel & 0xffff); ++ fwh_idsel_old |= pci_read_word(dev, fwh_sel2); ++ msg_pdbg("\nSetting IDSEL from 0x%012" PRIx64 " to 0x%012" PRIx64 " for top 16 MB.", ++ fwh_idsel_old, fwh_idsel); ++ rpci_write_long(dev, fwh_sel1, (fwh_idsel >> 16) & 0xffffffff); ++ rpci_write_word(dev, fwh_sel2, fwh_idsel & 0xffff); + /* FIXME: Decode settings are not changed. */ + } else if (idsel) { + msg_perr("Error: fwh_idsel= specified, but no value given.\n"); +@@ -366,15 +428,23 @@ idsel_garbage_out: + } + free(idsel); + ++ if (!implemented) { ++ msg_pdbg2("FWH IDSEL handling is not implemented on this chipset."); ++ return 0; ++ } ++ + /* Ignore all legacy ranges below 1 MB. + * We currently only support flashing the chip which responds to + * IDSEL=0. To support IDSEL!=0, flashbase and decode size calculations + * have to be adjusted. + */ ++ int max_decode_fwh_idsel = 0, max_decode_fwh_decode = 0; ++ bool contiguous = 1; ++ uint32_t fwh_conf = pci_read_long(dev, fwh_sel1); ++ int i; + /* FWH_SEL1 */ +- fwh_conf = pci_read_long(dev, 0xd0); + for (i = 7; i >= 0; i--) { +- tmp = (fwh_conf >> (i * 4)) & 0xf; ++ int tmp = (fwh_conf >> (i * 4)) & 0xf; + msg_pdbg("\n0x%08x/0x%08x FWH IDSEL: 0x%x", + (0x1ff8 + i) * 0x80000, + (0x1ff0 + i) * 0x80000, +@@ -386,9 +456,9 @@ idsel_garbage_out: + } + } + /* FWH_SEL2 */ +- fwh_conf = pci_read_word(dev, 0xd4); ++ fwh_conf = pci_read_word(dev, fwh_sel2); + for (i = 3; i >= 0; i--) { +- tmp = (fwh_conf >> (i * 4)) & 0xf; ++ int tmp = (fwh_conf >> (i * 4)) & 0xf; + msg_pdbg("\n0x%08x/0x%08x FWH IDSEL: 0x%x", + (0xff4 + i) * 0x100000, + (0xff0 + i) * 0x100000, +@@ -401,9 +471,11 @@ idsel_garbage_out: + } + contiguous = 1; + /* FWH_DEC_EN1 */ +- fwh_conf = pci_read_word(dev, 0xd8); ++ fwh_conf = pci_read_byte(dev, fwh_dec_en_hi); ++ fwh_conf <<= 8; ++ fwh_conf |= pci_read_byte(dev, fwh_dec_en_lo); + for (i = 7; i >= 0; i--) { +- tmp = (fwh_conf >> (i + 0x8)) & 0x1; ++ int tmp = (fwh_conf >> (i + 0x8)) & 0x1; + msg_pdbg("\n0x%08x/0x%08x FWH decode %sabled", + (0x1ff8 + i) * 0x80000, + (0x1ff0 + i) * 0x80000, +@@ -415,7 +487,7 @@ idsel_garbage_out: + } + } + for (i = 3; i >= 0; i--) { +- tmp = (fwh_conf >> i) & 0x1; ++ int tmp = (fwh_conf >> i) & 0x1; + msg_pdbg("\n0x%08x/0x%08x FWH decode %sabled", + (0xff4 + i) * 0x100000, + (0xff0 + i) * 0x100000, +@@ -429,99 +501,66 @@ idsel_garbage_out: + max_rom_decode.fwh = min(max_decode_fwh_idsel, max_decode_fwh_decode); + msg_pdbg("\nMaximum FWH chip size: 0x%x bytes", max_rom_decode.fwh); + +- /* If we're called by enable_flash_ich_dc_spi, it will override +- * internal_buses_supported anyway. +- */ +- internal_buses_supported = BUS_FWH; +- return enable_flash_ich(dev, name, 0xdc); ++ return 0; + } + +-static int enable_flash_poulsbo(struct pci_dev *dev, const char *name) ++static int enable_flash_ich_fwh(struct pci_dev *dev, enum ich_chipset ich_generation, uint8_t bios_cntl) + { +- uint16_t old, new; + int err; + +- if ((err = enable_flash_ich(dev, name, 0xd8)) != 0) ++ /* Configure FWH IDSEL decoder maps. */ ++ if ((err = enable_flash_ich_fwh_decode(dev, ich_generation)) != 0) + return err; + +- old = pci_read_byte(dev, 0xd9); +- msg_pdbg("BIOS Prefetch Enable: %sabled, ", +- (old & 1) ? "en" : "dis"); +- new = old & ~1; +- +- if (new != old) +- rpci_write_byte(dev, 0xd9, new); +- + internal_buses_supported = BUS_FWH; +- return 0; ++ return enable_flash_ich_bios_cntl(dev, ich_generation, bios_cntl); + } + +-static int enable_flash_tunnelcreek(struct pci_dev *dev, const char *name) ++static int enable_flash_ich0(struct pci_dev *dev, const char *name) + { +- uint16_t old, new; +- uint32_t tmp, bnt; +- void *rcrb; +- int ret; +- +- /* Enable Flash Writes */ +- ret = enable_flash_ich(dev, name, 0xd8); +- if (ret == ERROR_FATAL) +- return ret; +- +- /* Make sure BIOS prefetch mechanism is disabled */ +- old = pci_read_byte(dev, 0xd9); +- msg_pdbg("BIOS Prefetch Enable: %sabled, ", (old & 1) ? "en" : "dis"); +- new = old & ~1; +- if (new != old) +- rpci_write_byte(dev, 0xd9, new); +- +- /* Get physical address of Root Complex Register Block */ +- tmp = pci_read_long(dev, 0xf0) & 0xffffc000; +- msg_pdbg("\nRoot Complex Register Block address = 0x%x\n", tmp); +- +- /* Map RCBA to virtual memory */ +- rcrb = physmap("ICH RCRB", tmp, 0x4000); +- +- /* Test Boot BIOS Strap Status */ +- bnt = mmio_readl(rcrb + 0x3410); +- if (bnt & 0x02) { +- /* If strapped to LPC, no SPI initialization is required */ +- internal_buses_supported = BUS_FWH; +- return 0; +- } ++ return enable_flash_ich_fwh(dev, CHIPSET_ICH, 0x4e); ++} + +- /* This adds BUS_SPI */ +- if (ich_init_spi(dev, tmp, rcrb, 7) != 0) { +- if (!ret) +- ret = ERROR_NONFATAL; +- } ++static int enable_flash_ich2345(struct pci_dev *dev, const char *name) ++{ ++ return enable_flash_ich_fwh(dev, CHIPSET_ICH2345, 0x4e); ++} + +- return ret; ++static int enable_flash_ich6(struct pci_dev *dev, const char *name) ++{ ++ return enable_flash_ich_fwh(dev, CHIPSET_ICH6, 0xdc); + } + +-static int enable_flash_ich_dc_spi(struct pci_dev *dev, const char *name, +- enum ich_chipset ich_generation) ++static int enable_flash_poulsbo(struct pci_dev *dev, const char *name) + { +- int ret, ret_spi; +- uint8_t bbs, buc; +- uint32_t tmp, gcs; +- void *rcrb; +- const char *const *straps_names; ++ return enable_flash_ich_fwh(dev, CHIPSET_POULSBO, 0xd8); ++} + ++static int enable_flash_ich_spi(struct pci_dev *dev, enum ich_chipset ich_generation, uint8_t bios_cntl) ++{ + static const char *const straps_names_EP80579[] = { "SPI", "reserved", "reserved", "LPC" }; + static const char *const straps_names_ich7_nm10[] = { "reserved", "SPI", "PCI", "LPC" }; ++ static const char *const straps_names_tunnel_creek[] = { "SPI", "LPC" }; + static const char *const straps_names_ich8910[] = { "SPI", "SPI", "PCI", "LPC" }; + static const char *const straps_names_pch567[] = { "LPC", "reserved", "PCI", "SPI" }; + static const char *const straps_names_pch8[] = { "LPC", "reserved", "reserved", "SPI" }; +- static const char *const straps_names_pch8_lp[] = { "SPI", "LPC", "unknown", "unknown" }; ++ static const char *const straps_names_pch8_lp[] = { "SPI", "LPC" }; + static const char *const straps_names_unknown[] = { "unknown", "unknown", "unknown", "unknown" }; ++#ifdef DELL_AVOTON_SUPPORT ++ static const char *const straps_names_avoton[] = { "LPC", "reserved", "reserved", "SPI" }; ++ uint32_t tmp; ++ int ret_fwh = 0; ++ uint32_t new, old; ++ void *spibar; ++#endif + ++ const char *const *straps_names; + switch (ich_generation) { + case CHIPSET_ICH7: + /* EP80579 may need further changes, but this is the least + * intrusive way to get correct BOOT Strap printing without + * changing the rest of its code path). */ +- if (strcmp(name, "EP80579") == 0) ++ if (dev->device_id == 0x5031) + straps_names = straps_names_EP80579; + else + straps_names = straps_names_ich7_nm10; +@@ -531,6 +570,9 @@ static int enable_flash_ich_dc_spi(struct pci_dev *dev, const char *name, + case CHIPSET_ICH10: + straps_names = straps_names_ich8910; + break; ++ case CHIPSET_TUNNEL_CREEK: ++ straps_names = straps_names_tunnel_creek; ++ break; + case CHIPSET_5_SERIES_IBEX_PEAK: + case CHIPSET_6_SERIES_COUGAR_POINT: + case CHIPSET_7_SERIES_PANTHER_POINT: +@@ -543,33 +585,41 @@ static int enable_flash_ich_dc_spi(struct pci_dev *dev, const char *name, + straps_names = straps_names_pch8_lp; + break; + case CHIPSET_8_SERIES_WELLSBURG: // FIXME: check datasheet ++ case CHIPSET_CENTERTON: // FIXME: Datasheet does not mention GCS at all + straps_names = straps_names_unknown; + break; ++#ifdef DELL_AVOTON_SUPPORT ++ case CHIPSET_AVOTON: ++ straps_names = straps_names_avoton; ++ break; ++#endif + default: +- msg_gerr("%s: unknown ICH generation. Please report!\n", +- __func__); ++ msg_gerr("%s: unknown ICH generation. Please report!\n", __func__); + straps_names = straps_names_unknown; + break; + } + +- /* Enable Flash Writes */ +- ret = enable_flash_ich_dc(dev, name); +- if (ret == ERROR_FATAL) +- return ret; +- + /* Get physical address of Root Complex Register Block */ +- tmp = pci_read_long(dev, 0xf0) & 0xffffc000; +- msg_pdbg("Root Complex Register Block address = 0x%x\n", tmp); ++ uint32_t rcra = pci_read_long(dev, 0xf0) & 0xffffc000; ++ msg_pdbg("Root Complex Register Block address = 0x%x\n", rcra); + + /* Map RCBA to virtual memory */ +- rcrb = physmap("ICH RCRB", tmp, 0x4000); ++ void *rcrb = rphysmap("ICH RCRB", rcra, 0x4000); ++ if (rcrb == ERROR_PTR) ++ return ERROR_FATAL; + +- gcs = mmio_readl(rcrb + 0x3410); ++#ifdef DELL_AVOTON_SUPPORT ++ if (ich_generation != CHIPSET_AVOTON) { ++#endif ++ uint32_t gcs = mmio_readl(rcrb + 0x3410); + msg_pdbg("GCS = 0x%x: ", gcs); +- msg_pdbg("BIOS Interface Lock-Down: %sabled, ", +- (gcs & 0x1) ? "en" : "dis"); ++ msg_pdbg("BIOS Interface Lock-Down: %sabled, ", (gcs & 0x1) ? "en" : "dis"); + ++ uint8_t bbs; + switch (ich_generation) { ++ case CHIPSET_TUNNEL_CREEK: ++ bbs = (gcs >> 1) & 0x1; ++ break; + case CHIPSET_8_SERIES_LYNX_POINT_LP: + case CHIPSET_8_SERIES_WELLSBURG: // FIXME: check datasheet + /* Lynx Point LP uses a single bit for GCS */ +@@ -582,91 +632,187 @@ static int enable_flash_ich_dc_spi(struct pci_dev *dev, const char *name, + } + msg_pdbg("Boot BIOS Straps: 0x%x (%s)\n", bbs, straps_names[bbs]); + +- buc = mmio_readb(rcrb + 0x3414); +- msg_pdbg("Top Swap : %s\n", +- (buc & 1) ? "enabled (A16 inverted)" : "not enabled"); ++ if (ich_generation != CHIPSET_TUNNEL_CREEK && ich_generation != CHIPSET_CENTERTON) { ++ uint8_t buc = mmio_readb(rcrb + 0x3414); ++ msg_pdbg("Top Swap : %s\n", (buc & 1) ? "enabled (A16(+) inverted)" : "not enabled"); ++ } + +- /* It seems the ICH7 does not support SPI and LPC chips at the same +- * time. At least not with our current code. So we prevent searching +- * on ICH7 when the southbridge is strapped to LPC +- */ +- internal_buses_supported = BUS_FWH; +- if (ich_generation == CHIPSET_ICH7) { +- if (bbs == 0x03) { +- /* If strapped to LPC, no further SPI initialization is +- * required. */ +- return ret; +- } else { +- /* Disable LPC/FWH if strapped to PCI or SPI */ +- internal_buses_supported = BUS_NONE; +- } ++ /* Handle FWH-related parameters and initialization */ ++#ifdef DELL_AVOTON_SUPPORT ++ ret_fwh = enable_flash_ich_fwh(dev, ich_generation, bios_cntl); ++#else ++ int ret_fwh = enable_flash_ich_fwh(dev, ich_generation, bios_cntl); ++#endif ++ if (ret_fwh == ERROR_FATAL) ++ return ret_fwh; ++ ++ /* SPIBAR is at RCRB+0x3020 for ICH[78], Tunnel Creek and Centerton, and RCRB+0x3800 for ICH9. */ ++ uint16_t spibar_offset; ++ switch (ich_generation) { ++ case CHIPSET_ICH_UNKNOWN: ++ return ERROR_FATAL; ++ case CHIPSET_ICH7: ++ case CHIPSET_ICH8: ++ case CHIPSET_TUNNEL_CREEK: ++ case CHIPSET_CENTERTON: ++ spibar_offset = 0x3020; ++ break; ++ case CHIPSET_ICH9: ++ default: /* Future version might behave the same */ ++ spibar_offset = 0x3800; ++ break; + } ++ msg_pdbg("SPIBAR = 0x%0*" PRIxPTR " + 0x%04x\n", PRIxPTR_WIDTH, (uintptr_t)rcrb, spibar_offset); ++#ifndef DELL_AVOTON_SUPPORT ++ void *spibar = rcrb + spibar_offset; ++#else ++ spibar = rcrb + spibar_offset; ++ } else { ++ tmp = pci_read_long(dev, 0x54) & 0xFFFFFE00; ++ spibar = rphysmap("ICH SPIBAR", tmp, 0x4000); ++ msg_pdbg("SPIBAR = 0x%x\n", tmp); ++ ++ /* BIOS Control Register */ ++ tmp = mmio_readl(spibar + bios_cntl); ++ msg_pdbg("0xFC: 0x%08x (BIOS_CONTROL_REGISTER_BIOS : BCR)\n", tmp); ++ msg_pdbg("BIOS Write Protect Disable : %sabled, \n", ++ (tmp & (1 << 0)) ? "en" : "dis"); ++ msg_pdbg("\nBIOS Lock Enable: %sabled, \n", ++ (tmp & (1 << 1)) ? "en" : "dis"); ++ if (tmp != 1) { ++ mmio_writel(0x1, (spibar + bios_cntl)); ++ } ++ tmp = mmio_readl(spibar + bios_cntl); ++ msg_pdbg("0xFC: 0x%08x (BIOS_CONTROL_REGISTER_BIOS : BCR)\n", tmp); ++ msg_pdbg("BIOS Write Protect Disable : %sabled, \n", ++ (tmp & (1 << 0)) ? "en" : "dis"); ++ if (tmp != 1) { ++ msg_perr("Reboot and change BIOS-> IntelRCSetup -> Relax Security Config -> Disabled to Enabled\n"); ++ return ERROR_FATAL; /* Signal error */ ++ } ++ old = mmio_readb(spibar + 0xFC); ++ msg_pdbg("SPI Read Configuration: \n"); ++ new = (old >> 2) & 0x3; ++ switch (new) { ++ case 0: ++ case 1: ++ case 2: ++ msg_pdbg("prefetching %sabled, caching %sabled, \n", ++ (new & 0x2) ? "en" : "dis", ++ (new & 0x1) ? "dis" : "en"); ++ break; ++ default: ++ msg_pdbg("invalid prefetching/caching settings, \n"); ++ break; ++ } ++ } ++#endif ++ + + /* This adds BUS_SPI */ +- ret_spi = ich_init_spi(dev, tmp, rcrb, ich_generation); ++ int ret_spi = ich_init_spi(dev, spibar, ich_generation); + if (ret_spi == ERROR_FATAL) + return ret_spi; + +- if (ret || ret_spi) +- ret = ERROR_NONFATAL; ++ if (ret_fwh || ret_spi) ++ return ERROR_NONFATAL; + +- return ret; ++ return 0; ++} ++ ++static int enable_flash_tunnelcreek(struct pci_dev *dev, const char *name) ++{ ++ return enable_flash_ich_spi(dev, CHIPSET_TUNNEL_CREEK, 0xd8); ++} ++ ++static int enable_flash_s12x0(struct pci_dev *dev, const char *name) ++{ ++ return enable_flash_ich_spi(dev, CHIPSET_CENTERTON, 0xd8); + } + + static int enable_flash_ich7(struct pci_dev *dev, const char *name) + { +- return enable_flash_ich_dc_spi(dev, name, CHIPSET_ICH7); ++ return enable_flash_ich_spi(dev, CHIPSET_ICH7, 0xdc); + } + + static int enable_flash_ich8(struct pci_dev *dev, const char *name) + { +- return enable_flash_ich_dc_spi(dev, name, CHIPSET_ICH8); ++ return enable_flash_ich_spi(dev, CHIPSET_ICH8, 0xdc); + } + + static int enable_flash_ich9(struct pci_dev *dev, const char *name) + { +- return enable_flash_ich_dc_spi(dev, name, CHIPSET_ICH9); ++ return enable_flash_ich_spi(dev, CHIPSET_ICH9, 0xdc); + } + + static int enable_flash_ich10(struct pci_dev *dev, const char *name) + { +- return enable_flash_ich_dc_spi(dev, name, CHIPSET_ICH10); ++ return enable_flash_ich_spi(dev, CHIPSET_ICH10, 0xdc); + } + ++#ifdef DELL_AVOTON_SUPPORT ++static int enable_flash_c2000(struct pci_dev *dev, const char *name) ++{ ++ is_avoton = 1; ++ return enable_flash_ich_spi(dev, CHIPSET_AVOTON, 0xfc); ++} ++#endif ++ ++#if DELL_DENVERTON_SUPPORT == 1 ++static int enable_flash_denverton(struct pci_dev *dev, const char *name) ++{ ++ void *spibar; ++ int32_t ret_spi; ++ uint32_t sbase; ++ enum ich_chipset ich_generation = CHIPSET_DENVERTON; ++ ++ is_dnv = 1; ++ internal_buses_supported = BUS_FWH; ++ ++ /* GET physical address of SPI Base Address and map it */ ++ sbase = pci_read_long(dev, 0x10) & 0xfffffe00; ++ msg_pdbg("SPI_BASE_ADDRESS = 0x%x\n", sbase); ++ spibar = rphysmap("DENVERTON SBASE", sbase, 512); ++ enable_flash_ich_bios_cntl(dev, ich_generation, 0xdc); ++ ret_spi = ich_init_spi(dev, spibar, ich_generation); ++ return ret_spi; ++} ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + /* Ibex Peak aka. 5 series & 3400 series */ + static int enable_flash_pch5(struct pci_dev *dev, const char *name) + { +- return enable_flash_ich_dc_spi(dev, name, CHIPSET_5_SERIES_IBEX_PEAK); ++ return enable_flash_ich_spi(dev, CHIPSET_5_SERIES_IBEX_PEAK, 0xdc); + } + + /* Cougar Point aka. 6 series & c200 series */ + static int enable_flash_pch6(struct pci_dev *dev, const char *name) + { +- return enable_flash_ich_dc_spi(dev, name, CHIPSET_6_SERIES_COUGAR_POINT); ++ return enable_flash_ich_spi(dev, CHIPSET_6_SERIES_COUGAR_POINT, 0xdc); + } + + /* Panther Point aka. 7 series */ + static int enable_flash_pch7(struct pci_dev *dev, const char *name) + { +- return enable_flash_ich_dc_spi(dev, name, CHIPSET_7_SERIES_PANTHER_POINT); ++ return enable_flash_ich_spi(dev, CHIPSET_7_SERIES_PANTHER_POINT, 0xdc); + } + + /* Lynx Point aka. 8 series */ + static int enable_flash_pch8(struct pci_dev *dev, const char *name) + { +- return enable_flash_ich_dc_spi(dev, name, CHIPSET_8_SERIES_LYNX_POINT); ++ return enable_flash_ich_spi(dev, CHIPSET_8_SERIES_LYNX_POINT, 0xdc); + } + +-/* Lynx Point aka. 8 series low-power */ ++/* Lynx Point LP aka. 8 series low-power */ + static int enable_flash_pch8_lp(struct pci_dev *dev, const char *name) + { +- return enable_flash_ich_dc_spi(dev, name, CHIPSET_8_SERIES_LYNX_POINT_LP); ++ return enable_flash_ich_spi(dev, CHIPSET_8_SERIES_LYNX_POINT_LP, 0xdc); + } + + /* Wellsburg (for Haswell-EP Xeons) */ + static int enable_flash_pch8_wb(struct pci_dev *dev, const char *name) + { +- return enable_flash_ich_dc_spi(dev, name, CHIPSET_8_SERIES_WELLSBURG); ++ return enable_flash_ich_spi(dev, CHIPSET_8_SERIES_WELLSBURG, 0xdc); + } + + static int via_no_byte_merge(struct pci_dev *dev, const char *name) +@@ -737,10 +883,8 @@ static int enable_flash_vt_vx(struct pci_dev *dev, const char *name) + case 0x8410: /* VX900 */ + mmio_base = pci_read_long(dev, 0xbc) << 8; + mmio_base_physmapped = physmap("VIA VX MMIO register", mmio_base, SPI_CNTL_LEN); +- if (mmio_base_physmapped == ERROR_PTR) { +- physunmap(mmio_base_physmapped, SPI_CNTL_LEN); ++ if (mmio_base_physmapped == ERROR_PTR) + return ERROR_FATAL; +- } + + /* Offset 0 - Bit 0 holds SPI Bus0 Enable Bit. */ + spi_cntl = mmio_readl(mmio_base_physmapped) + 0x00; +@@ -882,22 +1026,29 @@ static int enable_flash_sc1100(struct pci_dev *dev, const char *name) + return 0; + } + +-/* Works for AMD-8111, VIA VT82C586A/B, VIA VT82C686A/B. */ +-static int enable_flash_amd8111(struct pci_dev *dev, const char *name) ++/* Works for AMD-768, AMD-8111, VIA VT82C586A/B, VIA VT82C596, VIA VT82C686A/B. ++ * ++ * ROM decode control register matrix ++ * AMD-768 AMD-8111 VT82C586A/B VT82C596 VT82C686A/B ++ * 7 FFC0_0000h–FFFF_FFFFh <- FFFE0000h-FFFEFFFFh <- <- ++ * 6 FFB0_0000h–FFBF_FFFFh <- FFF80000h-FFFDFFFFh <- <- ++ * 5 00E8... <- <- FFF00000h-FFF7FFFFh <- ++ */ ++static int enable_flash_amd_via(struct pci_dev *dev, const char *name, uint8_t decode_val) + { + #define AMD_MAPREG 0x43 + #define AMD_ENREG 0x40 + uint8_t old, new; + +- /* Enable decoding at 0xffb00000 to 0xffffffff. */ + old = pci_read_byte(dev, AMD_MAPREG); +- new = old | 0xC0; ++ new = old | decode_val; + if (new != old) { + rpci_write_byte(dev, AMD_MAPREG, new); + if (pci_read_byte(dev, AMD_MAPREG) != new) { +- msg_pinfo("Setting register 0x%x to 0x%02x on %s failed (WARNING ONLY).\n", ++ msg_pwarn("Setting register 0x%x to 0x%02x on %s failed (WARNING ONLY).\n", + AMD_MAPREG, new, name); +- } ++ } else ++ msg_pdbg("Changed ROM decode range to 0x%02x successfully.\n", new); + } + + /* Enable 'ROM write' bit. */ +@@ -908,14 +1059,37 @@ static int enable_flash_amd8111(struct pci_dev *dev, const char *name) + rpci_write_byte(dev, AMD_ENREG, new); + + if (pci_read_byte(dev, AMD_ENREG) != new) { +- msg_pinfo("Setting register 0x%x to 0x%02x on %s failed (WARNING ONLY).\n", ++ msg_pwarn("Setting register 0x%x to 0x%02x on %s failed (WARNING ONLY).\n", + AMD_ENREG, new, name); +- return -1; ++ return ERROR_NONFATAL; + } ++ msg_pdbg2("Set ROM enable bit successfully.\n"); + + return 0; + } + ++static int enable_flash_amd_768_8111(struct pci_dev *dev, const char *name) ++{ ++ /* Enable decoding of 0xFFB00000 to 0xFFFFFFFF (5 MB). */ ++ max_rom_decode.lpc = 5 * 1024 * 1024; ++ return enable_flash_amd_via(dev, name, 0xC0); ++} ++ ++static int enable_flash_vt82c586(struct pci_dev *dev, const char *name) ++{ ++ /* Enable decoding of 0xFFF80000 to 0xFFFFFFFF. (512 kB) */ ++ max_rom_decode.parallel = 512 * 1024; ++ return enable_flash_amd_via(dev, name, 0xC0); ++} ++ ++/* Works for VT82C686A/B too. */ ++static int enable_flash_vt82c596(struct pci_dev *dev, const char *name) ++{ ++ /* Enable decoding of 0xFFF80000 to 0xFFFFFFFF. (1 MB) */ ++ max_rom_decode.parallel = 1024 * 1024; ++ return enable_flash_amd_via(dev, name, 0xE0); ++} ++ + static int enable_flash_sb600(struct pci_dev *dev, const char *name) + { + uint32_t prot; +@@ -1257,6 +1431,8 @@ static int get_flashbase_sc520(struct pci_dev *dev, const char *name) + + /* 1. Map MMCR */ + mmcr = physmap("Elan SC520 MMCR", 0xfffef000, getpagesize()); ++ if (mmcr == ERROR_PTR) ++ return ERROR_FATAL; + + /* 2. Scan PAR0 (0x88) - PAR15 (0xc4) for + * BOOTCS region (PARx[31:29] = 100b)e +@@ -1302,8 +1478,8 @@ const struct penable chipset_enables[] = { + {0x1022, 0x2080, OK, "AMD", "CS5536", enable_flash_cs5536}, + {0x1022, 0x2090, OK, "AMD", "CS5536", enable_flash_cs5536}, + {0x1022, 0x3000, OK, "AMD", "Elan SC520", get_flashbase_sc520}, +- {0x1022, 0x7440, OK, "AMD", "AMD-768", enable_flash_amd8111}, +- {0x1022, 0x7468, OK, "AMD", "AMD8111", enable_flash_amd8111}, ++ {0x1022, 0x7440, OK, "AMD", "AMD-768", enable_flash_amd_768_8111}, ++ {0x1022, 0x7468, OK, "AMD", "AMD-8111", enable_flash_amd_768_8111}, + {0x1022, 0x780e, OK, "AMD", "FCH", enable_flash_sb600}, + {0x1039, 0x0406, NT, "SiS", "501/5101/5501", enable_flash_sis501}, + {0x1039, 0x0496, NT, "SiS", "85C496+497", enable_flash_sis85c496}, +@@ -1388,9 +1564,9 @@ const struct penable chipset_enables[] = { + {0x1106, 0x0691, OK, "VIA", "VT82C69x", via_no_byte_merge}, + {0x1106, 0x8601, NT, "VIA", "VT8601T", via_no_byte_merge}, + /* VIA southbridges */ +- {0x1106, 0x0586, OK, "VIA", "VT82C586A/B", enable_flash_amd8111}, +- {0x1106, 0x0596, OK, "VIA", "VT82C596", enable_flash_amd8111}, +- {0x1106, 0x0686, OK, "VIA", "VT82C686A/B", enable_flash_amd8111}, ++ {0x1106, 0x0586, OK, "VIA", "VT82C586A/B", enable_flash_vt82c586}, ++ {0x1106, 0x0596, OK, "VIA", "VT82C596", enable_flash_vt82c596}, ++ {0x1106, 0x0686, OK, "VIA", "VT82C686A/B", enable_flash_vt82c596}, + {0x1106, 0x3074, OK, "VIA", "VT8233", enable_flash_vt823x}, + {0x1106, 0x3147, OK, "VIA", "VT8233A", enable_flash_vt823x}, + {0x1106, 0x3177, OK, "VIA", "VT8235", enable_flash_vt823x}, +@@ -1405,6 +1581,7 @@ const struct penable chipset_enables[] = { + {0x1166, 0x0200, OK, "Broadcom", "OSB4", enable_flash_osb4}, + {0x1166, 0x0205, OK, "Broadcom", "HT-1000", enable_flash_ht1000}, + {0x17f3, 0x6030, OK, "RDC", "R8610/R3210", enable_flash_rdc_r8610}, ++ {0x8086, 0x0c60, NT, "Intel", "S12x0", enable_flash_s12x0}, + {0x8086, 0x122e, OK, "Intel", "PIIX", enable_flash_piix4}, + {0x8086, 0x1234, NT, "Intel", "MPIIX", enable_flash_piix4}, + {0x8086, 0x1c44, OK, "Intel", "Z68", enable_flash_pch6}, +@@ -1441,21 +1618,21 @@ const struct penable chipset_enables[] = { + {0x8086, 0x1e5f, NT, "Intel", "NM70", enable_flash_pch7}, + {0x8086, 0x2310, NT, "Intel", "DH89xxCC", enable_flash_pch7}, + {0x8086, 0x2390, NT, "Intel", "Coleto Creek", enable_flash_pch7}, +- {0x8086, 0x2410, OK, "Intel", "ICH", enable_flash_ich_4e}, +- {0x8086, 0x2420, OK, "Intel", "ICH0", enable_flash_ich_4e}, +- {0x8086, 0x2440, OK, "Intel", "ICH2", enable_flash_ich_4e}, +- {0x8086, 0x244c, OK, "Intel", "ICH2-M", enable_flash_ich_4e}, +- {0x8086, 0x2450, NT, "Intel", "C-ICH", enable_flash_ich_4e}, +- {0x8086, 0x2480, OK, "Intel", "ICH3-S", enable_flash_ich_4e}, +- {0x8086, 0x248c, OK, "Intel", "ICH3-M", enable_flash_ich_4e}, +- {0x8086, 0x24c0, OK, "Intel", "ICH4/ICH4-L", enable_flash_ich_4e}, +- {0x8086, 0x24cc, OK, "Intel", "ICH4-M", enable_flash_ich_4e}, +- {0x8086, 0x24d0, OK, "Intel", "ICH5/ICH5R", enable_flash_ich_4e}, +- {0x8086, 0x25a1, OK, "Intel", "6300ESB", enable_flash_ich_4e}, +- {0x8086, 0x2640, OK, "Intel", "ICH6/ICH6R", enable_flash_ich_dc}, +- {0x8086, 0x2641, OK, "Intel", "ICH6-M", enable_flash_ich_dc}, +- {0x8086, 0x2642, NT, "Intel", "ICH6W/ICH6RW", enable_flash_ich_dc}, +- {0x8086, 0x2670, OK, "Intel", "631xESB/632xESB/3100", enable_flash_ich_dc}, ++ {0x8086, 0x2410, OK, "Intel", "ICH", enable_flash_ich0}, ++ {0x8086, 0x2420, OK, "Intel", "ICH0", enable_flash_ich0}, ++ {0x8086, 0x2440, OK, "Intel", "ICH2", enable_flash_ich2345}, ++ {0x8086, 0x244c, OK, "Intel", "ICH2-M", enable_flash_ich2345}, ++ {0x8086, 0x2450, NT, "Intel", "C-ICH", enable_flash_ich2345}, ++ {0x8086, 0x2480, OK, "Intel", "ICH3-S", enable_flash_ich2345}, ++ {0x8086, 0x248c, OK, "Intel", "ICH3-M", enable_flash_ich2345}, ++ {0x8086, 0x24c0, OK, "Intel", "ICH4/ICH4-L", enable_flash_ich2345}, ++ {0x8086, 0x24cc, OK, "Intel", "ICH4-M", enable_flash_ich2345}, ++ {0x8086, 0x24d0, OK, "Intel", "ICH5/ICH5R", enable_flash_ich2345}, ++ {0x8086, 0x25a1, OK, "Intel", "6300ESB", enable_flash_ich2345}, ++ {0x8086, 0x2640, OK, "Intel", "ICH6/ICH6R", enable_flash_ich6}, ++ {0x8086, 0x2641, OK, "Intel", "ICH6-M", enable_flash_ich6}, ++ {0x8086, 0x2642, NT, "Intel", "ICH6W/ICH6RW", enable_flash_ich6}, ++ {0x8086, 0x2670, OK, "Intel", "631xESB/632xESB/3100", enable_flash_ich6}, + {0x8086, 0x27b0, OK, "Intel", "ICH7DH", enable_flash_ich7}, + {0x8086, 0x27b8, OK, "Intel", "ICH7/ICH7R", enable_flash_ich7}, + {0x8086, 0x27b9, OK, "Intel", "ICH7M", enable_flash_ich7}, +@@ -1570,6 +1747,12 @@ const struct penable chipset_enables[] = { + {0x8086, 0x8d5d, NT, "Intel", "Wellsburg", enable_flash_pch8_wb}, + {0x8086, 0x8d5e, NT, "Intel", "Wellsburg", enable_flash_pch8_wb}, + {0x8086, 0x8d5f, NT, "Intel", "Wellsburg", enable_flash_pch8_wb}, ++#ifdef DELL_AVOTON_SUPPORT ++ {0x8086, 0x1f38, OK, "Intel", "C2000", enable_flash_c2000}, ++#endif ++#if DELL_DENVERTON_SUPPORT == 1 ++ {0x8086, 0x19e0, OK, "Intel", "Denverton", enable_flash_denverton}, ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + #endif + {0}, + }; +@@ -1597,14 +1780,23 @@ int chipset_flash_enable(void) + chipset_enables[i].device_name); + continue; + } ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg("Found chipset \"%s %s\"", ++ chipset_enables[i].vendor_name, ++ chipset_enables[i].device_name); ++#else + msg_pinfo("Found chipset \"%s %s\"", + chipset_enables[i].vendor_name, + chipset_enables[i].device_name); ++#endif + msg_pdbg(" with PCI ID %04x:%04x", + chipset_enables[i].vendor_id, + chipset_enables[i].device_id); ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg(". "); ++#else + msg_pinfo(". "); +- ++#endif + if (chipset_enables[i].status == NT) { + msg_pinfo("\nThis chipset is marked as untested. If " + "you are using an up-to-date version\nof " +@@ -1614,20 +1806,44 @@ int chipset_flash_enable(void) + "flashrom@flashrom.org including a verbose " + "(-V) log.\nThank you!\n"); + } ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg("Enabling flash write... "); ++#else + msg_pinfo("Enabling flash write... "); ++#endif + ret = chipset_enables[i].doit(dev, + chipset_enables[i].device_name); + if (ret == NOT_DONE_YET) { + ret = -2; ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg("OK - searching further chips.\n"); ++#else + msg_pinfo("OK - searching further chips.\n"); ++#endif + } else if (ret < 0) ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg("FAILED!\n"); ++#else + msg_pinfo("FAILED!\n"); ++#endif + else if (ret == 0) ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg("OK.\n"); ++#else + msg_pinfo("OK.\n"); ++#endif + else if (ret == ERROR_NONFATAL) ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg("PROBLEMS, continuing anyway\n"); ++#else + msg_pinfo("PROBLEMS, continuing anyway\n"); ++#endif + if (ret == ERROR_FATAL) { ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg("FATAL ERROR!\n"); ++#else + msg_perr("FATAL ERROR!\n"); ++#endif + return ret; + } + } +diff --git a/cli_classic.c b/cli_classic.c +index 4c71d07..09565f4 100644 +--- a/cli_classic.c ++++ b/cli_classic.c +@@ -31,6 +31,10 @@ + #include "flashchips.h" + #include "programmer.h" + ++#if DELL_DENVERTON_SUPPORT == 1 ++extern int8_t is_dnv; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + static void cli_classic_usage(const char *name) + { + printf("Please note that the command line interface for flashrom has changed between\n" +@@ -136,9 +140,10 @@ int main(int argc, char *argv[]) + char *tempstr = NULL; + char *pparam = NULL; + ++#ifndef FORCE10_SPI_CHANGE + print_version(); + print_banner(); +- ++#endif + if (selfcheck()) + exit(1); + +@@ -221,8 +226,6 @@ int main(int argc, char *argv[]) + free(tempstr); + cli_classic_abort_usage(); + } +- /* FIXME: A pointer to the image name is saved in a static array (of size MAX_ROMLAYOUT) +- * by register_include_arg() and needs to be freed after processing them. */ + break; + case 'L': + if (++operation_specified > 1) { +@@ -295,6 +298,9 @@ int main(int argc, char *argv[]) + "specified. Aborting.\n"); + cli_classic_abort_usage(); + } ++#ifdef FORCE10_SPI_CHANGE ++ print_version(); ++#endif + exit(0); + break; + case 'h': +@@ -372,6 +378,12 @@ int main(int argc, char *argv[]) + ret = 1; + goto out; + } ++ if (layoutfile != NULL && !write_it) { ++ msg_gerr("Layout files are currently supported for write operations only.\n"); ++ ret = 1; ++ goto out; ++ } ++ + if (process_include_args()) { + ret = 1; + goto out; +@@ -393,8 +405,13 @@ int main(int argc, char *argv[]) + if (prog == PROGRAMMER_INVALID) { + if (CONFIG_DEFAULT_PROGRAMMER != PROGRAMMER_INVALID) { + prog = CONFIG_DEFAULT_PROGRAMMER; ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg("Using default programmer \"%s\".\n", ++ programmer_table[CONFIG_DEFAULT_PROGRAMMER].name); ++#else + msg_pinfo("Using default programmer \"%s\".\n", + programmer_table[CONFIG_DEFAULT_PROGRAMMER].name); ++#endif + } else { + msg_perr("Please select a programmer with the --programmer parameter.\n" + "Previously this was not necessary because there was a default set.\n" +@@ -489,6 +506,10 @@ int main(int argc, char *argv[]) + tempstr = flashbuses_to_text(flashes[0].chip->bustype); + msg_gdbg("Found %s flash chip \"%s\" (%d kB, %s).\n", + flashes[0].chip->vendor, flashes[0].chip->name, flashes[0].chip->total_size, tempstr); ++ if ((flashes[0].chip->total_size > flashes[0].bios_size) && (flashes[0].bios_size != 0)) { ++ msg_gdbg("BIOS Size in flash chip: %d kB\n", flashes[0].bios_size); ++ flashes[0].chip->total_size = flashes[0].bios_size; ++ } + free(tempstr); + } + +@@ -517,7 +538,19 @@ int main(int argc, char *argv[]) + * Give the chip time to settle. + */ + programmer_delay(100000); ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (is_dnv) { ++ dnv_smi_open_res(); ++ dnv_smi_doit(0, NULL, SMI_ENABLE_SPI); ++ } ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + ret |= doit(fill_flash, force, filename, read_it, write_it, erase_it, verify_it); ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (is_dnv) { ++ dnv_smi_doit(0, NULL, SMI_DISABLE_SPI); ++ dnv_smi_release_res(); ++ } ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + /* Note: doit() already calls programmer_shutdown(). */ + goto out; + +@@ -527,6 +560,7 @@ out: + for (i = 0; i < chipcount; i++) + free(flashes[i].chip); + ++ layout_cleanup(); + free(filename); + free(layoutfile); + free(pparam); +diff --git a/dmi.c b/dmi.c +index 242889f..25ddd93 100644 +--- a/dmi.c ++++ b/dmi.c +@@ -1,7 +1,10 @@ + /* + * This file is part of the flashrom project. + * ++ * Copyright (C) 2000-2002 Alan Cox ++ * Copyright (C) 2002-2010 Jean Delvare + * Copyright (C) 2009,2010 Michael Karcher ++ * Copyright (C) 2011-2013 Stefan Tauner + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -26,33 +29,28 @@ + #include "flash.h" + #include "programmer.h" + +-int has_dmi_support = 0; +- +-#if STANDALONE ++#if defined(__i386__) || defined(__x86_64__) + +-/* Stub to indicate missing DMI functionality. +- * has_dmi_support is 0 by default, so nothing to do here. +- * Because dmidecode is not available on all systems, the goal is to implement +- * the DMI subset we need directly in this file. +- */ +-void dmi_init(void) +-{ +-} ++/* Enable SMBIOS decoding. Currently legacy DMI decoding is enough. */ ++#define SM_SUPPORT 0 + +-int dmi_match(const char *pattern) +-{ +- return 0; +-} ++/* Strings longer than 4096 in DMI are just insane. */ ++#define DMI_MAX_ANSWER_LEN 4096 + +-#else /* STANDALONE */ ++int has_dmi_support = 0; + +-static const char *dmidecode_names[] = { +- "system-manufacturer", +- "system-product-name", +- "system-version", +- "baseboard-manufacturer", +- "baseboard-product-name", +- "baseboard-version", ++static struct { ++ const char *const keyword; ++ const uint8_t type; ++ const uint8_t offset; ++ char *value; ++} dmi_strings[] = { ++ { "system-manufacturer", 1, 0x04, NULL }, ++ { "system-product-name", 1, 0x05, NULL }, ++ { "system-version", 1, 0x06, NULL }, ++ { "baseboard-manufacturer", 2, 0x04, NULL }, ++ { "baseboard-product-name", 2, 0x05, NULL }, ++ { "baseboard-version", 2, 0x06, NULL }, + }; + + /* This list is used to identify supposed laptops. The is_laptop field has the +@@ -66,9 +64,9 @@ static const char *dmidecode_names[] = { + * The types below are the most common ones. + */ + static const struct { +- unsigned char type; +- unsigned char is_laptop; +- const char *name; ++ uint8_t type; ++ uint8_t is_laptop; ++ char *name; + } dmi_chassis_types[] = { + {0x01, 2, "Other"}, + {0x02, 2, "Unknown"}, +@@ -86,20 +84,206 @@ static const struct { + {0x18, 0, "Sealed-case PC"}, /* used by Supermicro (X8SIE) */ + }; + +-#define DMI_COMMAND_LEN_MAX 260 +-static const char *dmidecode_command = "dmidecode"; ++#if CONFIG_INTERNAL_DMI == 1 ++#if defined(__DJGPP__) || defined(FORCE10_SPI_CHANGE) /* There is no strnlen in DJGPP. FIXME: Move this to a common utility file. */ ++size_t strnlen(const char *str, size_t n) ++{ ++ size_t i; ++ for (i = 0; i < n && str[i] != '\0'; i++) ++ ; ++ return i; ++} ++#endif + +-static char *dmistrings[ARRAY_SIZE(dmidecode_names)]; ++static bool dmi_checksum(const uint8_t * const buf, size_t len) ++{ ++ uint8_t sum = 0; ++ size_t a; + +-/* Strings longer than 4096 in DMI are just insane. */ +-#define DMI_MAX_ANSWER_LEN 4096 ++ for (a = 0; a < len; a++) ++ sum += buf[a]; ++ return (sum == 0); ++} ++ ++static char *dmi_string(uint8_t *buf, uint8_t string_id, uint8_t *limit) ++{ ++ size_t i, len; ++ ++ if (string_id == 0) ++ return "Not Specified"; ++ ++ while (string_id > 1 && string_id--) { ++ if (buf > limit) { ++ msg_perr("DMI table is broken (string portion out of bounds)!\n"); ++ return ""; ++ } ++ buf += strnlen((char *)buf, limit - buf) + 1; ++ } ++ ++ if (!*buf) /* as long as the current byte we're on isn't null */ ++ return ""; ++ ++ len = strnlen((char *)buf, limit - buf); ++ if (len > DMI_MAX_ANSWER_LEN) ++ len = DMI_MAX_ANSWER_LEN; ++ ++ /* fix junk bytes in the string */ ++ for (i = 0; i < len && buf[i] != '\0'; i++) ++ if (buf[i] < 32 || buf[i] >= 127) ++ buf[i] = ' '; ++ ++ return (char *)buf; ++} ++ ++static void dmi_chassis_type(uint8_t code) ++{ ++ int i; ++ code &= 0x7f; /* bits 6:0 are chassis type, 7th bit is the lock bit */ ++ is_laptop = 2; ++ for (i = 0; i < ARRAY_SIZE(dmi_chassis_types); i++) { ++ if (code == dmi_chassis_types[i].type) { ++ msg_pdbg("DMI string chassis-type: \"%s\"\n", dmi_chassis_types[i].name); ++ is_laptop = dmi_chassis_types[i].is_laptop; ++ break; ++ } ++ } ++} ++ ++static void dmi_table(uint32_t base, uint16_t len, uint16_t num) ++{ ++ int i = 0, j = 0; ++ ++ uint8_t *dmi_table_mem = physmap_ro("DMI Table", base, len); ++ if (dmi_table_mem == NULL) { ++ msg_perr("Unable to access DMI Table\n"); ++ return; ++ } ++ ++ uint8_t *data = dmi_table_mem; ++ uint8_t *limit = dmi_table_mem + len; ++ ++ /* SMBIOS structure header is always 4 B long and contains: ++ * - uint8_t type; // see dmi_chassis_types's type ++ * - uint8_t length; // data section w/ header w/o strings ++ * - uint16_t handle; ++ */ ++ while (i < num && data + 4 <= limit) { ++ /* - If a short entry is found (less than 4 bytes), not only it ++ * is invalid, but we cannot reliably locate the next entry. ++ * - If the length value indicates that this structure spreads ++ * accross the table border, something is fishy too. ++ * Better stop at this point, and let the user know his/her ++ * table is broken. ++ */ ++ if (data[1] < 4 || data + data[1] > limit) { ++ msg_perr("DMI table is broken (bogus header)!\n"); ++ break; ++ } ++ ++ if(data[0] == 3) { ++ if (data + 5 <= limit) ++ dmi_chassis_type(data[5]); ++ /* else the table is broken, but laptop detection is optional, hence continue. */ ++ } else ++ for (j = 0; j < ARRAY_SIZE(dmi_strings); j++) { ++ uint8_t offset = dmi_strings[j].offset; ++ uint8_t type = dmi_strings[j].type; ++ ++ if (data[0] != type) ++ continue; ++ ++ if (data[1] <= offset || data+offset > limit) { ++ msg_perr("DMI table is broken (offset out of bounds)!\n"); ++ goto out; ++ } ++ ++ /* Table will be unmapped, hence fill the struct with duplicated strings. */ ++ dmi_strings[j].value = strdup(dmi_string(data + data[1], data[offset], limit)); ++ } ++ /* Find next structure by skipping data and string sections */ ++ data += data[1]; ++ while (data + 1 <= limit) { ++ if (data[0] == 0 && data[1] == 0) ++ break; ++ data++; ++ } ++ data += 2; ++ i++; ++ } ++out: ++ physunmap(dmi_table_mem, len); ++} ++ ++#if SM_SUPPORT ++static int smbios_decode(uint8_t *buf) ++{ ++ /* TODO: other checks mentioned in the conformance guidelines? */ ++ if (!dmi_checksum(buf, buf[0x05]) || ++ (memcmp(buf + 0x10, "_DMI_", 5) != 0) || ++ !dmi_checksum(buf + 0x10, 0x0F)) ++ return 0; ++ ++ dmi_table(mmio_readl(buf + 0x18), mmio_readw(buf + 0x16), mmio_readw(buf + 0x1C)); ++ ++ return 1; ++} ++#endif ++ ++static int legacy_decode(uint8_t *buf) ++{ ++ if (!dmi_checksum(buf, 0x0F)) ++ return 1; ++ ++ dmi_table(mmio_readl(buf + 0x08), mmio_readw(buf + 0x06), mmio_readw(buf + 0x0C)); ++ ++ return 0; ++} ++ ++int dmi_fill(void) ++{ ++ size_t fp; ++ uint8_t *dmi_mem; ++ int ret = 1; ++ ++ msg_pdbg("Using Internal DMI decoder.\n"); ++ /* There are two ways specified to gain access to the SMBIOS table: ++ * - EFI's configuration table contains a pointer to the SMBIOS table. On linux it can be obtained from ++ * sysfs. EFI's SMBIOS GUID is: {0xeb9d2d31,0x2d88,0x11d3,0x9a,0x16,0x0,0x90,0x27,0x3f,0xc1,0x4d} ++ * - Scanning physical memory address range 0x000F0000h to 0x000FFFFF for the anchor-string(s). */ ++ dmi_mem = physmap_ro("DMI", 0xF0000, 0x10000); ++ if (dmi_mem == ERROR_PTR) ++ return ret; ++ ++ for (fp = 0; fp <= 0xFFF0; fp += 16) { ++#if SM_SUPPORT ++ if (memcmp(dmi_mem + fp, "_SM_", 4) == 0 && fp <= 0xFFE0) { ++ if (smbios_decode(dmi_mem + fp)) // FIXME: length check ++ goto out; ++ } else ++#endif ++ if (memcmp(dmi_mem + fp, "_DMI_", 5) == 0) ++ if (legacy_decode(dmi_mem + fp) == 0) { ++ ret = 0; ++ goto out; ++ } ++ } ++ msg_pinfo("No DMI table found.\n"); ++out: ++ physunmap(dmi_mem, 0x10000); ++ return ret; ++} ++ ++#else /* CONFIG_INTERNAL_DMI */ ++ ++#define DMI_COMMAND_LEN_MAX 300 ++static const char *dmidecode_command = "dmidecode"; + + static char *get_dmi_string(const char *string_name) + { + FILE *dmidecode_pipe; + char *result; +- char answerbuf[DMI_MAX_ANSWER_LEN]; +- char commandline[DMI_COMMAND_LEN_MAX + 40]; ++ char answerbuf[DMI_MAX_ANSWER_LEN + 1] = {'\0'}; ++ char commandline[DMI_COMMAND_LEN_MAX + 1] = {'\0'}; + + snprintf(commandline, sizeof(commandline), + "%s -s %s", dmidecode_command, string_name); +@@ -138,46 +322,31 @@ static char *get_dmi_string(const char *string_name) + /* Chomp trailing newline. */ + if (answerbuf[0] != 0 && answerbuf[strlen(answerbuf) - 1] == '\n') + answerbuf[strlen(answerbuf) - 1] = 0; +- msg_pdbg("DMI string %s: \"%s\"\n", string_name, answerbuf); + + result = strdup(answerbuf); +- if (!result) ++ if (result == NULL) + msg_pwarn("Warning: Out of memory - DMI support fails"); + + return result; + } + +-static int dmi_shutdown(void *data) +-{ +- int i; +- for (i = 0; i < ARRAY_SIZE(dmistrings); i++) { +- free(dmistrings[i]); +- dmistrings[i] = NULL; +- } +- return 0; +-} +- +-void dmi_init(void) ++int dmi_fill(void) + { + int i; + char *chassis_type; + +- if (register_shutdown(dmi_shutdown, NULL)) +- return; +- +- has_dmi_support = 1; +- for (i = 0; i < ARRAY_SIZE(dmidecode_names); i++) { +- dmistrings[i] = get_dmi_string(dmidecode_names[i]); +- if (!dmistrings[i]) { +- has_dmi_support = 0; +- return; +- } ++ msg_pdbg("Using External DMI decoder.\n"); ++ for (i = 0; i < ARRAY_SIZE(dmi_strings); i++) { ++ dmi_strings[i].value = get_dmi_string(dmi_strings[i].keyword); ++ if (dmi_strings[i].value == NULL) ++ return 1; + } + + chassis_type = get_dmi_string("chassis-type"); + if (chassis_type == NULL) +- return; ++ return 0; /* chassis-type handling is optional anyway */ + ++ msg_pdbg("DMI string chassis-type: \"%s\"\n", chassis_type); + is_laptop = 2; + for (i = 0; i < ARRAY_SIZE(dmi_chassis_types); i++) { + if (strcasecmp(chassis_type, dmi_chassis_types[i].name) == 0) { +@@ -185,6 +354,33 @@ void dmi_init(void) + break; + } + } ++ free(chassis_type); ++ return 0; ++} ++ ++#endif /* CONFIG_INTERNAL_DMI */ ++ ++static int dmi_shutdown(void *data) ++{ ++ int i; ++ for (i = 0; i < ARRAY_SIZE(dmi_strings); i++) { ++ free(dmi_strings[i].value); ++ dmi_strings[i].value = NULL; ++ } ++ return 0; ++} ++ ++void dmi_init(void) ++{ ++ /* Register shutdown function before we allocate anything. */ ++ if (register_shutdown(dmi_shutdown, NULL)) { ++ msg_pwarn("Warning: Could not register DMI shutdown function - continuing without DMI info.\n"); ++ return; ++ } ++ ++ /* dmi_fill fills the dmi_strings array, and if possible sets the global is_laptop variable. */ ++ if (dmi_fill() != 0) ++ return; + + switch (is_laptop) { + case 1: +@@ -194,7 +390,13 @@ void dmi_init(void) + msg_pdbg("DMI chassis-type is not specific enough.\n"); + break; + } +- free(chassis_type); ++ ++ has_dmi_support = 1; ++ int i; ++ for (i = 0; i < ARRAY_SIZE(dmi_strings); i++) { ++ msg_pdbg("DMI string %s: \"%s\"\n", dmi_strings[i].keyword, ++ (dmi_strings[i].value == NULL) ? "" : dmi_strings[i].value); ++ } + } + + /** +@@ -204,8 +406,8 @@ void dmi_init(void) + * at the beginning and '$' at the end. So you can look for "^prefix", + * "suffix$", "substring" or "^complete string$". + * +- * @param value The string to check. +- * @param pattern The pattern. ++ * @param value The non-NULL string to check. ++ * @param pattern The non-NULL pattern. + * @return Nonzero if pattern matches. + */ + static int dmi_compare(const char *value, const char *pattern) +@@ -252,11 +454,15 @@ int dmi_match(const char *pattern) + if (!has_dmi_support) + return 0; + +- for (i = 0; i < ARRAY_SIZE(dmidecode_names); i++) +- if (dmi_compare(dmistrings[i], pattern)) ++ for (i = 0; i < ARRAY_SIZE(dmi_strings); i++) { ++ if (dmi_strings[i].value == NULL) ++ continue; ++ ++ if (dmi_compare(dmi_strings[i].value, pattern)) + return 1; ++ } + + return 0; + } + +-#endif /* STANDALONE */ ++#endif // defined(__i386__) || defined(__x86_64__) +diff --git a/dnv_smi_spi.c b/dnv_smi_spi.c +new file mode 100644 +index 0000000..0317cc7 +--- /dev/null ++++ b/dnv_smi_spi.c +@@ -0,0 +1,185 @@ ++ ++/************************************************************************ ++* LEGALESE: "Copyright (c) 2018, Dell Inc. All rights reserved." ++* ++* This source code is confidential, proprietary, and contains trade ++* secrets that are the sole property of Dell Inc. ++* Copy and/or distribution of this source code or disassembly or reverse ++* engineering of the resultant object code are strictly forbidden without ++* the written consent of Dell Inc. ++* ++************************************************************************/ ++#if DELL_DENVERTON_SUPPORT == 1 ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "flash.h" ++ ++#define MEM_MODULE "/dev/mem" ++ ++DELL_SPI_MAILBOX *mailbox; ++uint64_t phy_addr; ++ ++/** ++* @brief unmap a pagesize of physical memory into virtual memory. ++* @param[in] addr - virtual memory address that is unmaped. ++*/ ++static void free_virt_mapping(void *addr) ++{ ++ munmap(addr, getpagesize()); ++} ++ ++/** ++* @brief map a pagesize of physical memory into virtual memory. ++* @param[in] addr - physical memory address. ++* @param[out] buf - pointer to buffer which storages data. ++* @return = 0 for success, otherwise for error. ++*/ ++static uint32_t getData_phy_to_virt(uint32_t addr, void** buf) ++{ ++ uint8_t *tmp; ++ uint32_t pagesize, offset, index, fd; ++ ++ pagesize = getpagesize(); ++ if ( (fd = open(MEM_MODULE, O_RDWR)) < 0 ) { ++ printf("open() %s error\n", MEM_MODULE); ++ return 1; ++ } ++ ++ offset = addr & ~(pagesize - 1); ++ index = addr & (pagesize - 1); ++ if ( (tmp = mmap(0, pagesize*2, PROT_READ|PROT_WRITE, MAP_SHARED, fd, offset)) == MAP_FAILED ) { ++ printf("mmap() error\n"); ++ close(fd); ++ return 1; ++ } ++ *buf = tmp + index; ++ close(fd); ++ return 0; ++} ++ ++/** ++* @brief send "get communication buffer" requirement to SMM ++*/ ++uint32_t dnv_smi_open_res() ++{ ++ uint32_t mailboxAddress; ++ ++ ioperm(0xB2, 3, 1); ++ __asm__ __volatile__ ("push %%rcx" : :); ++ outb(0x27, 0xB2); ++ __asm__ __volatile__ ("movl %%ecx, %0" : "=r" (mailboxAddress)); ++ __asm__ __volatile__ ("pop %%rcx" : :); ++ ioperm(0xB2, 3, 0); ++ ++ getData_phy_to_virt(mailboxAddress, (void **)&mailbox); ++ phy_addr = mailboxAddress; ++ return 0; ++} ++ ++/** ++* @brief send "release communication buffer" requirement to SMM ++*/ ++void dnv_smi_release_res() ++{ ++ free_virt_mapping((void *)mailbox); ++} ++ ++/** ++* @brief disable SPI write protection. ++*/ ++static void dnv_trigger_smi_spi_unlock() ++{ ++ ioperm(0xB2, 3, 1); ++ __asm__ __volatile__ ("push %%rcx" : :); ++ __asm__ __volatile__ ("push %%rbx" : :); ++ __asm__ __volatile__ ("movl %0, %%ecx" : : "a" ((uint32_t)0)); ++ __asm__ __volatile__ ("movl %0, %%ebx" : : "a" ((uint32_t)phy_addr)); ++ outb(0x20, 0xB2); ++ __asm__ __volatile__ ("pop %%rbx" : :); ++ __asm__ __volatile__ ("pop %%rcx" : :); ++ ioperm(0xB2, 3, 0); ++} ++ ++/** ++* @brief enable SPI write protection. ++*/ ++static void dnv_trigger_smi_spi_lock() ++{ ++ ioperm(0xB2, 3, 1); ++ __asm__ __volatile__ ("push %%rcx" : :); ++ __asm__ __volatile__ ("push %%rbx" : :); ++ __asm__ __volatile__ ("movl %0, %%ecx" : : "a" ((uint32_t)0)); ++ __asm__ __volatile__ ("movl %0, %%ebx" : : "a" ((uint32_t)phy_addr)); ++ outb(0x24, 0xB2); ++ __asm__ __volatile__ ("pop %%rbx" : :); ++ __asm__ __volatile__ ("pop %%rcx" : :); ++ ioperm(0xB2, 3, 0); ++} ++ ++/** ++* @brief trigger smi ++*/ ++void run() ++{ ++ ioperm(0xB2, 3, 1); ++ outb(0x28, 0xB2); ++ ioperm(0xB2, 3, 0); ++} ++ ++/** ++* @brief This function is used to read/write and erase BIOS. ++* trigger SMI and send information to SMM(like requirement, address,and data) ++* @param[in] bios_offset - offset of bios region [0~size of bios region] ++* @param[in] buf - pointer to write data if cmd is "SMI_READ_SPI" ++* @param[in] cmd - enum SPI_SMI_CMD ++* @param[out] buf - pointer to read data if cmd is "SMI_WRITE_SPI" ++* @returns ret. This ret is returned from SMM. ++*/ ++int32_t dnv_smi_doit(uint32_t bios_offset, uint8_t *buf, SPI_SMI_CMD cmd) ++{ ++ ++ if (cmd == SMI_READ_SPI) { ++ mailbox->cmd = 0x1; ++ mailbox->offset = bios_offset; ++ mailbox->dlen = DELL_DENVERTON_BLOCK_SIZE; ++ run(); ++ memcpy (buf, mailbox->data, DELL_DENVERTON_BLOCK_SIZE); ++ return mailbox->ret; ++ } else if (cmd == SMI_ERASE_SPI) { ++ mailbox->cmd = 0x2; ++ mailbox->offset = bios_offset; ++ mailbox->dlen = DELL_DENVERTON_BLOCK_SIZE; ++ run(); ++ return mailbox->ret; ++ } else if (cmd == SMI_WRITE_SPI) { ++ memcpy (mailbox->data, buf, DELL_DENVERTON_BLOCK_SIZE); ++ mailbox->cmd = 0x3; ++ mailbox->offset = bios_offset; ++ mailbox->dlen = DELL_DENVERTON_BLOCK_SIZE; ++ run(); ++ return mailbox->ret; ++ } ++ ++ switch (cmd) ++ { ++ case SMI_ENABLE_SPI: ++ dnv_trigger_smi_spi_unlock(); ++ break; ++ case SMI_DISABLE_SPI: ++ dnv_trigger_smi_spi_lock(); ++ break; ++ default: ++ return -1; ++ } ++ ++ return 0; ++} ++ ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ +diff --git a/drkaiser.c b/drkaiser.c +index b94d6dd..0cf1fdb 100644 +--- a/drkaiser.c ++++ b/drkaiser.c +@@ -56,12 +56,6 @@ static const struct par_programmer par_programmer_drkaiser = { + .chip_writen = fallback_chip_writen, + }; + +-static int drkaiser_shutdown(void *data) +-{ +- physunmap(drkaiser_bar, DRKAISER_MEMMAP_SIZE); +- return 0; +-} +- + int drkaiser_init(void) + { + struct pci_dev *dev = NULL; +@@ -75,15 +69,15 @@ int drkaiser_init(void) + return 1; + + addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_2); ++ if (!addr) ++ return 1; + + /* Write magic register to enable flash write. */ + rpci_write_word(dev, PCI_MAGIC_DRKAISER_ADDR, PCI_MAGIC_DRKAISER_VALUE); + + /* Map 128kB flash memory window. */ +- drkaiser_bar = physmap("Dr. Kaiser PC-Waechter flash memory", +- addr, DRKAISER_MEMMAP_SIZE); +- +- if (register_shutdown(drkaiser_shutdown, NULL)) ++ drkaiser_bar = rphysmap("Dr. Kaiser PC-Waechter flash memory", addr, DRKAISER_MEMMAP_SIZE); ++ if (drkaiser_bar == ERROR_PTR) + return 1; + + max_rom_decode.parallel = 128 * 1024; +diff --git a/flash.h b/flash.h +index 63701ed..79fe8f4 100644 +--- a/flash.h ++++ b/flash.h +@@ -45,6 +45,14 @@ + typedef uintptr_t chipaddr; + #define PRIxPTR_WIDTH ((int)(sizeof(uintptr_t)*2)) + ++/* Types and macros regarding the maximum flash space size supported by generic code. */ ++typedef uint32_t chipoff_t; /* Able to store any addressable offset within a supported flash memory. */ ++typedef uint32_t chipsize_t; /* Able to store the number of bytes of any supported flash memory. */ ++#define FL_MAX_CHIPADDR_BITS (24) ++#define FL_MAX_CHIPADDR ((chipoff_t)(1ULL< 0) ++ programmer_table[programmer].delay(usecs); + } + + void map_flash_registers(struct flashctx *flash) +@@ -619,12 +629,29 @@ static unsigned int count_usable_erasers(const struct flashctx *flash) + return usable_erasefunctions; + } + ++#if DELL_DENVERTON_SUPPORT == 1 ++int8_t is_erase = 0; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + int compare_range(uint8_t *wantbuf, uint8_t *havebuf, unsigned int start, unsigned int len) + { + int ret = 0, failcount = 0; + unsigned int i; + for (i = 0; i < len; i++) { + if (wantbuf[i] != havebuf[i]) { ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (is_dnv && is_erase) { ++ // _FVH ++ // At offset 0x28~0x2b of NVRAM, Main Bios and Boot Bios ++ // We can't read correct data after "erasing". ++ // But, We verified bios through SF100. The erase feature is work. ++ if (i == _FVH_OFFSET && ++ memcmp(&havebuf[i], _FVH_SIGNATURE, sizeof(_FVH_SIGNATURE) - 1) == 0) { ++ i += sizeof(_FVH_SIGNATURE) - 1; ++ continue; ++ } ++ } ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + /* Only print the first failure. */ + if (!failcount++) + msg_cerr("FAILED at 0x%08x! Expected=0x%02x, Found=0x%02x,", +@@ -651,7 +678,15 @@ int check_erased_range(struct flashctx *flash, unsigned int start, + exit(1); + } + memset(cmpbuf, 0xff, len); ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (is_dnv) ++ is_erase = 1; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + ret = verify_range(flash, cmpbuf, start, len); ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (is_dnv) ++ is_erase = 0; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + free(cmpbuf); + return ret; + } +@@ -695,6 +730,22 @@ int verify_range(struct flashctx *flash, uint8_t *cmpbuf, unsigned int start, un + return ret; + } + ++#if DELL_DENVERTON_SUPPORT == 1 ++ // NVRAM will be recovery even if use afulnx. ++ // skip NVRAM region. ++ if (is_dnv) { ++ // Do not hard-code the NVRAM region start address. It is located at different addresses for 16MB and 32MB BIOS image. ++ // For Denverton platform, NVRAM region start address is always located at dnv_bios_region_start. ++ // NVRAM backup region is located at (dnv_bios_region_start + DELL_DENVERTON_MAIN_NVRAM_LENGTH). ++ if ((start >= dnv_bios_region_start && ++ start < (dnv_bios_region_start + DELL_DENVERTON_MAIN_NVRAM_LENGTH)) || ++ (start >= (dnv_bios_region_start + DELL_DENVERTON_MAIN_NVRAM_LENGTH) && ++ start < ((dnv_bios_region_start + DELL_DENVERTON_MAIN_NVRAM_LENGTH) + DELL_DENVERTON_BACKUP_NVRAM_LENGTH))) { ++ return ret; ++ } ++ } ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + ret = compare_range(cmpbuf, readbuf, start, len); + out_free: + free(readbuf); +@@ -770,6 +821,11 @@ int need_erase(uint8_t *have, uint8_t *want, unsigned int len, enum write_granul + case write_gran_1056bytes: + result = need_erase_gran_bytes(have, want, len, 1056); + break; ++#if DELL_DENVERTON_SUPPORT == 1 ++ case write_gran_4096bytes: ++ result = need_erase_gran_bytes(have, want, len, 4096); ++ break; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + default: + msg_cerr("%s: Unsupported granularity! Please report a bug at " + "flashrom@flashrom.org\n", __func__); +@@ -831,6 +887,11 @@ static unsigned int get_next_write(uint8_t *have, uint8_t *want, unsigned int le + case write_gran_1056bytes: + stride = 1056; + break; ++#if DELL_DENVERTON_SUPPORT == 1 ++ case write_gran_4096bytes: ++ stride = 4096; ++ break; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + default: + msg_cerr("%s: Unsupported granularity! Please report a bug at " + "flashrom@flashrom.org\n", __func__); +@@ -1140,6 +1201,12 @@ notfound: + if (!flash->chip) + return -1; + ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (is_dnv) { ++ flash->chip->gran = write_gran_4096bytes; ++ } ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + #if CONFIG_INTERNAL == 1 + if (programmer_table[programmer].map_flash_region == physmap) + snprintf(location, sizeof(location), "at physical address 0x%lx", base); +@@ -1148,8 +1215,13 @@ notfound: + snprintf(location, sizeof(location), "on %s", programmer_table[programmer].name); + + tmp = flashbuses_to_text(flash->chip->bustype); ++#ifdef FORCE10_SPI_CHANGE ++ msg_cdbg("%s %s flash chip \"%s\" (%d kB, %s) %s.\n", force ? "Assuming" : "Found", ++ flash->chip->vendor, flash->chip->name, flash->chip->total_size, tmp, location); ++#else + msg_cinfo("%s %s flash chip \"%s\" (%d kB, %s) %s.\n", force ? "Assuming" : "Found", + flash->chip->vendor, flash->chip->name, flash->chip->total_size, tmp, location); ++#endif + free(tmp); + + /* Flash registers will not be mapped if the chip was forced. Lock info +@@ -1166,6 +1238,10 @@ notfound: + int read_buf_from_file(unsigned char *buf, unsigned long size, + const char *filename) + { ++#ifdef __LIBPAYLOAD__ ++ msg_gerr("Error: No file I/O support in libpayload\n"); ++ return 1; ++#else + unsigned long numbytes; + FILE *image; + struct stat image_stat; +@@ -1196,11 +1272,16 @@ int read_buf_from_file(unsigned char *buf, unsigned long size, + return 1; + } + return 0; ++#endif + } + + int write_buf_to_file(unsigned char *buf, unsigned long size, + const char *filename) + { ++#ifdef __LIBPAYLOAD__ ++ msg_gerr("Error: No file I/O support in libpayload\n"); ++ return 1; ++#else + unsigned long numbytes; + FILE *image; + +@@ -1221,6 +1302,7 @@ int write_buf_to_file(unsigned char *buf, unsigned long size, + return 1; + } + return 0; ++#endif + } + + int read_flash_to_file(struct flashctx *flash, const char *filename) +@@ -1229,6 +1311,16 @@ int read_flash_to_file(struct flashctx *flash, const char *filename) + unsigned char *buf = calloc(size, sizeof(char)); + int ret = 0; + ++#if DELL_DENVERTON_SUPPORT == 1 ++ uint64_t bios_start = 0; ++ uint64_t bios_size = size; ++ ++ if (is_dnv) { ++ bios_size = dnv_bios_region_size; ++ bios_start = dnv_bios_region_start; ++ } ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + msg_cinfo("Reading flash... "); + if (!buf) { + msg_gerr("Memory allocation failed!\n"); +@@ -1240,7 +1332,11 @@ int read_flash_to_file(struct flashctx *flash, const char *filename) + ret = 1; + goto out_free; + } ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (flash->chip->read(flash, (buf + bios_start), bios_start, bios_size)) { ++#else + if (flash->chip->read(flash, buf, 0, size)) { ++#endif /* #if DELL_DENVERTON__SUPPORT == 1 */ + msg_cerr("Read operation failed!\n"); + ret = 1; + goto out_free; +@@ -1388,6 +1484,11 @@ static int walk_eraseregions(struct flashctx *flash, int erasefunction, + { + int i, j; + unsigned int start = 0; ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (is_dnv) { ++ start = dnv_bios_region_start; ++ } ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + unsigned int len; + struct block_eraser eraser = flash->chip->block_erasers[erasefunction]; + +@@ -1897,6 +1998,10 @@ int doit(struct flashctx *flash, int force, const char *filename, int read_it, + uint8_t *newcontents; + int ret = 0; + unsigned long size = flash->chip->total_size * 1024; ++#if DELL_DENVERTON_SUPPORT == 1 ++ uint32_t bios_size = size; ++ uint32_t bios_start = 0; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + + if (chip_safety_check(flash, force, read_it, write_it, erase_it, verify_it)) { + msg_cerr("Aborting.\n"); +@@ -1904,6 +2009,12 @@ int doit(struct flashctx *flash, int force, const char *filename, int read_it, + goto out_nofree; + } + ++ if (normalize_romentries(flash)) { ++ msg_cerr("Requested regions can not be handled. Aborting.\n"); ++ ret = 1; ++ goto out_nofree; ++ } ++ + /* Given the existence of read locks, we want to unlock for read, + * erase and write. + */ +@@ -1936,6 +2047,13 @@ int doit(struct flashctx *flash, int force, const char *filename, int read_it, + */ + + if (erase_it) { ++ ++#if 0 // Since we dont have a layout, why set newcontents to 0?? ++#ifdef FORCE10_SPI_CHANGE ++ /* Build a new image taking the given layout into account. */ ++ build_new_image(flash, oldcontents, newcontents); ++#endif ++#endif + /* FIXME: Do we really want the scary warning if erase failed? + * After all, after erase the chip is either blank or partially + * blank or it has the old contents. A blank chip won't boot, +@@ -1975,25 +2093,47 @@ int doit(struct flashctx *flash, int force, const char *filename, int read_it, + * preserved, but in that case we might perform unneeded erase which + * takes time as well. + */ ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (is_dnv) { ++ bios_size = dnv_bios_region_size; ++ bios_start = dnv_bios_region_start; ++ } ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++#ifdef FORCE10_SPI_CHANGE ++ msg_cdbg("Reading old flash chip contents... "); ++#else + msg_cinfo("Reading old flash chip contents... "); ++#endif ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (flash->chip->read(flash, oldcontents + bios_start, bios_start, bios_size)) { ++#else + if (flash->chip->read(flash, oldcontents, 0, size)) { ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + ret = 1; + msg_cinfo("FAILED.\n"); + goto out; + } ++#ifdef FORCE10_SPI_CHANGE ++ msg_cdbg("done.\n"); ++#else + msg_cinfo("done.\n"); ++#endif + +- // This should be moved into each flash part's code to do it +- // cleanly. This does the job. +- handle_romentries(flash, oldcontents, newcontents); +- ++#if 0 ++ /* Build a new image taking the given layout into account. */ ++ build_new_image(flash, oldcontents, newcontents); ++#endif + // //////////////////////////////////////////////////////////// + + if (write_it) { + if (erase_and_write_flash(flash, oldcontents, newcontents)) { + msg_cerr("Uh oh. Erase/write failed. Checking if " + "anything changed.\n"); ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (!flash->chip->read(flash, newcontents, bios_start, bios_size)) { ++#else + if (!flash->chip->read(flash, newcontents, 0, size)) { ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + if (!memcmp(oldcontents, newcontents, size)) { + msg_cinfo("Good. It seems nothing was changed.\n"); + nonfatal_help_message(); +@@ -2014,14 +2154,22 @@ int doit(struct flashctx *flash, int force, const char *filename, int read_it, + if (write_it) { + /* Work around chips which need some time to calm down. */ + programmer_delay(1000*1000); ++#if DELL_DENVERTON_SUPPORT == 1 ++ ret = verify_range(flash, newcontents + bios_start, bios_start, bios_size); ++#else + ret = verify_range(flash, newcontents, 0, size); ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + /* If we tried to write, and verification now fails, we + * might have an emergency situation. + */ + if (ret) + emergency_help_message(); + } else { ++#if DELL_DENVERTON_SUPPORT == 1 ++ ret = compare_range(newcontents + bios_start, oldcontents + bios_start, bios_start, bios_size); ++#else + ret = compare_range(newcontents, oldcontents, 0, size); ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + } + if (!ret) + msg_cinfo("VERIFIED.\n"); +diff --git a/ft2232_spi.c b/ft2232_spi.c +index 81be051..44354fd 100644 +--- a/ft2232_spi.c ++++ b/ft2232_spi.c +@@ -43,6 +43,7 @@ + #define FTDI_FT4232H_PID 0x6011 + #define FTDI_FT232H_PID 0x6014 + #define TIAO_TUMPA_PID 0x8a98 ++#define TIAO_TUMPA_LITE_PID 0x8a99 + #define AMONTEC_JTAGKEY_PID 0xCFF8 + + #define GOEPEL_VID 0x096C +@@ -62,6 +63,7 @@ const struct dev_entry devs_ft2232spi[] = { + {FTDI_VID, FTDI_FT4232H_PID, OK, "FTDI", "FT4232H"}, + {FTDI_VID, FTDI_FT232H_PID, OK, "FTDI", "FT232H"}, + {FTDI_VID, TIAO_TUMPA_PID, OK, "TIAO", "USB Multi-Protocol Adapter"}, ++ {FTDI_VID, TIAO_TUMPA_LITE_PID, OK, "TIAO", "USB Multi-Protocol Adapter Lite"}, + {FTDI_VID, AMONTEC_JTAGKEY_PID, OK, "Amontec", "JTAGkey"}, + {GOEPEL_VID, GOEPEL_PICOTAP_PID, OK, "GOEPEL", "PicoTAP"}, + {FIC_VID, OPENMOKO_DBGBOARD_PID, OK, "FIC", "OpenMoko Neo1973 Debug board (V2+)"}, +@@ -208,6 +210,10 @@ int ft2232_spi_init(void) + /* Interface A is SPI1, B is SPI2. */ + ft2232_type = TIAO_TUMPA_PID; + channel_count = 2; ++ } else if (!strcasecmp(arg, "tumpalite")) { ++ /* Only one channel is used on lite edition */ ++ ft2232_type = TIAO_TUMPA_LITE_PID; ++ channel_count = 1; + } else if (!strcasecmp(arg, "busblaster")) { + /* In its default configuration it is a jtagkey clone */ + ft2232_type = FTDI_FT2232H_PID; +diff --git a/gfxnvidia.c b/gfxnvidia.c +index d0a9feb..d3ee14e 100644 +--- a/gfxnvidia.c ++++ b/gfxnvidia.c +@@ -77,12 +77,6 @@ static const struct par_programmer par_programmer_gfxnvidia = { + .chip_writen = fallback_chip_writen, + }; + +-static int gfxnvidia_shutdown(void *data) +-{ +- physunmap(nvidia_bar, GFXNVIDIA_MEMMAP_SIZE); +- return 0; +-} +- + int gfxnvidia_init(void) + { + struct pci_dev *dev = NULL; +@@ -96,12 +90,14 @@ int gfxnvidia_init(void) + return 1; + + io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0); ++ if (!io_base_addr) ++ return 1; ++ + io_base_addr += 0x300000; + msg_pinfo("Detected NVIDIA I/O base address: 0x%x.\n", io_base_addr); + +- nvidia_bar = physmap("NVIDIA", io_base_addr, GFXNVIDIA_MEMMAP_SIZE); +- +- if (register_shutdown(gfxnvidia_shutdown, NULL)) ++ nvidia_bar = rphysmap("NVIDIA", io_base_addr, GFXNVIDIA_MEMMAP_SIZE); ++ if (nvidia_bar == ERROR_PTR) + return 1; + + /* Allow access to flash interface (will disable screen). */ +diff --git a/hwaccess.h b/hwaccess.h +index fd6eb12..83f349e 100644 +--- a/hwaccess.h ++++ b/hwaccess.h +@@ -37,7 +37,13 @@ + * or as builtin. + */ + #define index shadow_workaround_index ++ ++#if !defined (__NetBSD__) && !defined (__DragonFly__) + #include ++#else ++#include ++#endif ++ + #undef index + #endif + +diff --git a/ich_descriptors.c b/ich_descriptors.c +index 528717b..c007867 100644 +--- a/ich_descriptors.c ++++ b/ich_descriptors.c +@@ -45,6 +45,11 @@ + #define min(a, b) (a < b) ? a : b + #endif + ++#if DELL_DENVERTON_SUPPORT == 1 ++#define DELL_DENVERTON_MAX_DENSITY 7 ++extern int8_t is_dnv; // if 1 chipset is denverton serial, 0 otherwise ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + void prettyprint_ich_reg_vscc(uint32_t reg_val, int verbosity) + { + print(verbosity, "BES=0x%x, ", (reg_val & VSCC_BES) >> VSCC_BES_OFF); +@@ -100,6 +105,36 @@ void prettyprint_ich_descriptor_content(const struct ich_desc_content *cont) + + void prettyprint_ich_descriptor_component(const struct ich_descriptors *desc) + { ++#if DELL_DENVERTON_SUPPORT == 1 ++ static const char * const dnv_freq_str[8] = { ++ "reserved", /* 000 */ ++ "reserved", /* 001 */ ++ "48 MHz", /* 010 */ ++ "reserved", /* 011 */ ++ "30MHz", /* 100 */ ++ "reserved", /* 101 */ ++ "17 MHz", /* 110 */ ++ "reserved", /* 111 */ ++ }; ++ static const char * const dnv_size_str[16] = { ++ "512 kB", /* 0000 */ ++ " 1 MB", /* 0001 */ ++ " 2 MB", /* 0010 */ ++ " 4 MB", /* 0011 */ ++ " 8 MB", /* 0100 */ ++ " 16 MB", /* 0101 */ ++ " 32 MB", /* 0110 */ ++ " 64 MB", /* 0111 */ ++ "reserved", /* 1000 */ ++ "reserved", /* 1001 */ ++ "reserved", /* 1010 */ ++ "reserved", /* 1011 */ ++ "reserved", /* 1100 */ ++ "reserved", /* 1101 */ ++ "reserved", /* 1110 */ ++ "reserved", /* 1111 */ ++ }; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + static const char * const freq_str[8] = { + "20 MHz", /* 000 */ + "33 MHz", /* 001 */ +@@ -121,6 +156,47 @@ void prettyprint_ich_descriptor_component(const struct ich_descriptors *desc) + "reserved", /* 111 */ + }; + ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (is_dnv) { ++ msg_pdbg2("=== Component Section ===\n"); ++ msg_pdbg2("FLCOMP 0x%08x\n", desc->component.FLCOMP); ++ msg_pdbg2("FLILL 0x%08x\n", desc->component.FLILL ); ++ msg_pdbg2("\n"); ++ ++ msg_pdbg2("--- Details ---\n"); ++ msg_pdbg2("Component 1 density: %s\n", ++ dnv_size_str[desc->component.dnv_comp1_density]); ++ if (desc->content.NC) ++ msg_pdbg2("Component 2 density: %s\n", ++ dnv_size_str[desc->component.dnv_comp2_density]); ++ else ++ msg_pdbg2("Component 2 is not used.\n"); ++ msg_pdbg2("Read Clock Frequency: %s\n", ++ dnv_freq_str[desc->component.dnv_freq_read]); ++ msg_pdbg2("Read ID and Status Clock Freq.: %s\n", ++ dnv_freq_str[desc->component.dnv_freq_read_id]); ++ msg_pdbg2("Write and Erase Clock Freq.: %s\n", ++ dnv_freq_str[desc->component.dnv_freq_write]); ++ msg_pdbg2("Fast Read is %ssupported.\n", ++ desc->component.dnv_fastread ? "" : "not "); ++ if (desc->component.dnv_fastread) ++ msg_pdbg2("Fast Read Clock Frequency: %s\n", ++ dnv_freq_str[desc->component.dnv_freq_fastread]); ++ if (desc->component.FLILL == 0) ++ msg_pdbg2("No forbidden opcodes.\n"); ++ else { ++ msg_pdbg2("Invalid instruction 0: 0x%02x\n", ++ desc->component.invalid_instr0); ++ msg_pdbg2("Invalid instruction 1: 0x%02x\n", ++ desc->component.invalid_instr1); ++ msg_pdbg2("Invalid instruction 2: 0x%02x\n", ++ desc->component.invalid_instr2); ++ msg_pdbg2("Invalid instruction 3: 0x%02x\n", ++ desc->component.invalid_instr3); ++ } ++ } else { ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + msg_pdbg2("=== Component Section ===\n"); + msg_pdbg2("FLCOMP 0x%08x\n", desc->component.FLCOMP); + msg_pdbg2("FLILL 0x%08x\n", desc->component.FLILL ); +@@ -157,6 +233,9 @@ void prettyprint_ich_descriptor_component(const struct ich_descriptors *desc) + msg_pdbg2("Invalid instruction 3: 0x%02x\n", + desc->component.invalid_instr3); + } ++#if DELL_DENVERTON_SUPPORT == 1 ++ } ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + msg_pdbg2("\n"); + } + +@@ -171,6 +250,12 @@ static void pprint_freg(const struct ich_desc_region *reg, uint32_t i) + } + uint32_t base = ICH_FREG_BASE(reg->FLREGs[i]); + uint32_t limit = ICH_FREG_LIMIT(reg->FLREGs[i]); ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (is_dnv) { ++ base = DELL_DENVERTON_FREG_BASE(reg->FLREGs[i]); ++ limit = DELL_DENVERTON_FREG_LIMIT(reg->FLREGs[i]); ++ } ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + msg_pdbg2("Region %d (%-6s) ", i, region_names[i]); + if (base > limit) + msg_pdbg2("is unused.\n"); +@@ -741,17 +826,36 @@ int getFCBA_component_density(const struct ich_descriptors *desc, uint8_t idx) + msg_perr("Only ICH SPI component index 0 or 1 are supported yet.\n"); + return 0; + } ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (is_dnv) { ++ if (size_enc > DELL_DENVERTON_MAX_DENSITY) { ++ msg_perr("Density of ICH SPI component with index %d is invalid. Encoded density is 0x%x.\n", idx, size_enc); ++ return 0; ++ } ++ } else { ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + if (size_enc > 5) { + msg_perr("Density of ICH SPI component with index %d is invalid. Encoded density is 0x%x.\n", + idx, size_enc); + return 0; + } ++#if DELL_DENVERTON_SUPPORT == 1 ++ } ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + return (1 << (19 + size_enc)); + } + + static uint32_t read_descriptor_reg(uint8_t section, uint16_t offset, void *spibar) + { + uint32_t control = 0; ++#if DELL_DENVERTON_SUPPORT == 1 ++ if (is_dnv) { ++ control |= (section << DENVERTON_FDOC_FDSS_OFF) & DENVERTON_FDOC_FDSS; ++ control |= (offset << DENVERTON_FDOC_FDSI_OFF) & DENVERTON_FDOC_FDSI; ++ mmio_le_writel(control, spibar + DENVERTON_REG_FDOC); ++ return mmio_le_readl(spibar + DENVERTON_REG_FDOD); ++ } ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + control |= (section << FDOC_FDSS_OFF) & FDOC_FDSS; + control |= (offset << FDOC_FDSI_OFF) & FDOC_FDSI; + mmio_le_writel(control, spibar + ICH9_REG_FDOC); +diff --git a/ich_descriptors.h b/ich_descriptors.h +index 3a44740..914a3cd 100644 +--- a/ich_descriptors.h ++++ b/ich_descriptors.h +@@ -64,6 +64,19 @@ + #define ICH_FREG_BASE(flreg) (((flreg) << 12) & 0x01fff000) + #define ICH_FREG_LIMIT(flreg) (((flreg) >> 4) & 0x01fff000) + ++#if DELL_DENVERTON_SUPPORT == 1 ++#define DENVERTON_REG_FDOC 0xB4 ++#define DENVERTON_FDOC_FDSI_OFF 2 ++#define DENVERTON_FDOC_FDSI (0x3ff << DENVERTON_FDOC_FDSI_OFF) ++#define DENVERTON_FDOC_FDSS_OFF 12 ++#define DENVERTON_FDOC_FDSS (0x3 << DENVERTON_FDOC_FDSS_OFF) ++ ++#define DENVERTON_REG_FDOD 0xB8 ++ ++#define DELL_DENVERTON_FREG_BASE(flreg) (((flreg) << 12) & 0x03fff000) ++#define DELL_DENVERTON_FREG_LIMIT(flreg) (((flreg) >> 4) & 0x03fff000) ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + void prettyprint_ich_reg_vscc(uint32_t reg_val, int verbosity); + + struct ich_desc_content { +@@ -78,6 +91,15 @@ struct ich_desc_content { + NR :3, /* Number Of Regions */ + :5; + }; ++#if DELL_DENVERTON_SUPPORT == 1 ++ struct { ++ int32_t dnv_FCBA :8, /* Flash Component Base Address */ ++ dnv_NC :2, /* Number Of Components */ ++ :6, ++ dnv_FRBA :8, /* Flash Region Base Address */ ++ :8; ++ }; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + }; + union { /* 0x08 */ + uint32_t FLMAP1; +@@ -113,6 +135,20 @@ struct ich_desc_component { + freq_read_id :3, + :2; + }; ++#if DELL_DENVERTON_SUPPORT == 1 ++ struct { ++ uint32_t dnv_comp1_density :4, ++ dnv_comp2_density :4, ++ :9, ++ dnv_freq_read :3, ++ dnv_fastread :1, ++ dnv_freq_fastread :3, ++ dnv_freq_write :3, ++ dnv_freq_read_id :3, ++ dnv_dualfastread :1, ++ :1; ++ }; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + }; + union { /* 0x04 */ + uint32_t FLILL; /* Flash Invalid Instructions Register */ +@@ -129,6 +165,15 @@ struct ich_desc_component { + uint32_t FPBA :13, /* Flash Partition Boundary Addr */ + :19; + }; ++#if DELL_DENVERTON_SUPPORT == 1 ++ uint32_t FLILL1; /* Flash Partition Boundary Register for dnv */ ++ struct { ++ uint32_t invalid_instr4 :8, ++ invalid_instr5 :8, ++ invalid_instr6 :8, ++ invalid_instr7 :8; ++ }; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + }; + }; + +@@ -167,6 +212,65 @@ struct ich_desc_region { + :3; + }; + }; ++#if DELL_DENVERTON_SUPPORT == 1 ++ struct { /* FLREG0 Flash Descriptor */ ++ uint32_t dnv_reg0_base :15, ++ :1, ++ dnv_reg0_limit :15, ++ :1; ++ }; ++ struct { /* FLREG1 BIOS */ ++ uint32_t dnv_reg1_base :15, ++ :1, ++ dnv_reg1_limit :15, ++ :1; ++ }; ++ struct { /* FLREG2 ME */ ++ uint32_t dnv_reg2_base :15, ++ :1, ++ dnv_reg2_limit :15, ++ :1; ++ }; ++ ++ /* FLREG3 - Reserved */ ++ ++ struct { /* FLREG4 Platform */ ++ uint32_t dnv_reg4_base :15, ++ :1, ++ dnv_reg4_limit :15, ++ :1; ++ }; ++ ++ /* FLREG5 - Reserved */ ++ /* FLREG6 - Reserved */ ++ /* FLREG7 - Reserved */ ++ /* FLREG8 - Reserved */ ++ /* FLREG9 - Reserved */ ++ ++ struct { /* FLREG10 IE */ ++ uint32_t dnv_reg10_base :15, ++ :1, ++ dnv_reg10_limit :15, ++ :1; ++ }; ++ struct { /* FLREG11 LAN CTRL0 */ ++ uint32_t dnv_reg11_base :15, ++ :1, ++ dnv_reg11_limit :15, ++ :1; ++ }; ++ struct { /* FLREG12 LAN CTRL1 */ ++ uint32_t dnv_reg12_base :15, ++ :1, ++ dnv_reg12_limit :15, ++ :1; ++ }; ++ ++ /* FLREG13 - Reserved */ ++ /* FLREG14 - Reserved */ ++ /* FLREG15 - Reserved */ ++ ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + }; + }; + +diff --git a/ichspi.c b/ichspi.c +index 6d1bd1a..742d424 100644 +--- a/ichspi.c ++++ b/ichspi.c +@@ -170,6 +170,52 @@ + #define ICH7_REG_OPTYPE 0x56 /* 16 Bits */ + #define ICH7_REG_OPMENU 0x58 /* 64 Bits */ + ++/* denverton controller register definition */ ++#if DELL_DENVERTON_SUPPORT == 1 ++#define DENVERTON_REG_BFPREG 0x00 /* 32 Bits SPI BIOS MMIO PRI */ ++#define DENVERTON_BFPREG_PRB_OFF 0 /* 0-14: BIOS Flash Promary Region Base */ ++#define DENVERTON_BFPREG_PRB (0x7FFF << DENVERTON_BFPREG_PRB_OFF) ++#define DENVERTON_BFPREG_PRL_OFF 16 /* 16-30: BIOS Flash Primary Region Limit */ ++#define DENVERTON_BFPREG_PRL (0xFFFF << DENVERTON_BFPREG_PRL_OFF) ++#define DENVERTON_REG_HSFS 0x04 /* 16 Bits Hardware Sequencing Flash Status */ ++#define DENVERTON_HSFS_FDONE_OFF 0 /* 0: Flash Cycle Done */ ++#define DENVERTON_HSFS_FDONE (0x1 << DENVERTON_HSFS_FDONE_OFF) ++#define DENVERTON_HSFS_FCERR_OFF 1 /* 1: Flash Cycle Error */ ++#define DENVERTON_HSFS_FCERR (0x1 << DENVERTON_HSFS_FCERR_OFF) ++#define DENVERTON_HSFS_FDOPSS_OFF 13 /* 13: Flash Descriptor Override Pin-Strap Status */ ++#define DENVERTON_HSFS_FDOPSS (0x1 << DENVERTON_HSFS_FDOPSS_OFF) ++#define DENVERTON_HSFS_FDV_OFF 14 /* 14: Flash Descriptor Valid */ ++#define DENVERTON_HSFS_FDV (0x1 << DENVERTON_HSFS_FDV_OFF) ++#define DENVERTON_HSFS_FLOCKDN_OFF 15 /* 15: Flash Configuration Lock-Down */ ++#define DENVERTON_HSFS_FLOCKDN (0x1 << DENVERTON_HSFS_FLOCKDN_OFF) ++#define DENVERTON_REG_HSFC 0x06 /* 16 Bits Hardware Sequencing Flash Control */ ++#define DENVERTON_HSFC_FGO_OFF 0 /* 0: Flash Cycle Go */ ++#define DENVERTON_HSFC_FGO (0x1 << DENVERTON_HSFC_FGO_OFF) ++#define DENVERTON_HSFC_FCYCLE_OFF 1 /* 1- 4: FLASH Cycle */ ++#define DENVERTON_HSFC_FCYCLE (0xF << DENVERTON_HSFC_FCYCLE_OFF) ++#define DENVERTON_HSFC_FDBC_OFF 8 /* 8-13: Flash Data Byte Count */ ++#define DENVERTON_HSFC_FDBC (0x3F << DENVERTON_HSFC_FDBC_OFF) ++#define DENVERTON_REG_FADDR 0x08 /* 32 Bits */ ++#define DENVERTON_REG_FDATA0 0x10 /* 32 Bits */ ++#define DENVERTON_REG_FRAP 0x50 /* 32 Bytes Flash Region Access Permissions */ ++#define DENVERTON_REG_FREG0 0x54 /* 32 Bytes Flash Region 0 */ ++#define DENVERTON_REG_PR0 0x84 /* 32 Bytes Protected Range 0 */ ++#define DENVERTON_PR_WP_OFF 31 /* 31: write protection enable */ ++#define DENVERTON_PR_RP_OFF 15 /* 15: read protection enable */ ++#define DENVERTON_REG_VSCC0 0xC4 /* 32 Bits Host Vendor Specific Component Capabilities for Component 0 */ ++#define DENVERTON_REG_VSCC1 0xC8 /* 32 Bits Host Vendor Specific Component Capabilities for Component 1 */ ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ ++#ifdef DELL_AVOTON_SUPPORT ++extern int8_t is_avoton; ++#endif /* DELL_AVOTON_SUPPORT */ ++ ++#if DELL_DENVERTON_SUPPORT == 1 ++extern uint32_t dnv_bios_region_start; ++extern uint32_t dnv_bios_region_size; ++extern uint32_t dnv_bios_region_limit; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + /* ICH SPI configuration lock-down. May be set during chipset enabling. */ + static int ichspi_lock = 0; + +@@ -466,6 +512,8 @@ static int generate_opcodes(OPCODES * op) + + switch (ich_generation) { + case CHIPSET_ICH7: ++ case CHIPSET_TUNNEL_CREEK: ++ case CHIPSET_CENTERTON: + preop = REGREAD16(ICH7_REG_PREOP); + optype = REGREAD16(ICH7_REG_OPTYPE); + opmenu[0] = REGREAD32(ICH7_REG_OPMENU); +@@ -529,7 +577,7 @@ static int program_opcodes(OPCODES *op, int enable_undo) + opmenu[0] |= ((uint32_t) op->opcode[a].opcode) << (a * 8); + } + +- /*Program Allowable Opcodes 4 - 7 */ ++ /* Program Allowable Opcodes 4 - 7 */ + opmenu[1] = 0; + for (a = 4; a < 8; a++) { + opmenu[1] |= ((uint32_t) op->opcode[a].opcode) << ((a - 4) * 8); +@@ -538,6 +586,8 @@ static int program_opcodes(OPCODES *op, int enable_undo) + msg_pdbg2("\n%s: preop=%04x optype=%04x opmenu=%08x%08x\n", __func__, preop, optype, opmenu[0], opmenu[1]); + switch (ich_generation) { + case CHIPSET_ICH7: ++ case CHIPSET_TUNNEL_CREEK: ++ case CHIPSET_CENTERTON: + /* Register undo only for enable_undo=1, i.e. first call. */ + if (enable_undo) { + rmmio_valw(ich_spibar + ICH7_REG_PREOP); +@@ -603,10 +653,19 @@ static void ich_set_bbar(uint32_t min_addr) + int bbar_off; + switch (ich_generation) { + case CHIPSET_ICH7: ++ case CHIPSET_TUNNEL_CREEK: ++ case CHIPSET_CENTERTON: + bbar_off = 0x50; + break; + case CHIPSET_ICH8: ++#ifdef DELL_AVOTON_SUPPORT ++ case CHIPSET_AVOTON: ++#endif ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg("BBAR offset is unknown on ICH8!\n"); ++#else + msg_perr("BBAR offset is unknown on ICH8!\n"); ++#endif + return; + case CHIPSET_ICH9: + default: /* Future version might behave the same */ +@@ -817,11 +876,17 @@ static int ich7_run_opcode(OPCODE op, uint32_t offset, + /* FIXME: make sure we do not needlessly cause transaction errors. */ + temp16 = REGREAD16(ICH7_REG_SPIS); + if (temp16 & SPIS_FCERR) { ++#ifndef FORCE10_SPI_CHANGE + msg_perr("Transaction error!\n"); ++#endif + /* keep reserved bits */ + temp16 &= SPIS_RESERVED_MASK; + REGWRITE16(ICH7_REG_SPIS, temp16 | SPIS_FCERR); ++#ifndef FORCE10_SPI_CHANGE + return 1; ++#else ++ return 0; ++#endif + } + + if ((!write_cmd) && (datalength != 0)) +@@ -838,6 +903,22 @@ static int ich9_run_opcode(OPCODE op, uint32_t offset, + uint32_t temp32; + uint64_t opmenu; + int opcode_index; ++/* skip unused region for Rangeley */ ++ if (offset >= 0x10000 && offset <= 0x9fffff) { ++ uint32_t i = 0; ++ for (i = 0; i < datalength; i++) ++ *(data + i) = 0xff; ++ return 0; ++ } ++#ifdef DELL_AVOTON_SUPPORT ++ /* skip unused region for Rangeley */ ++ if (is_avoton && offset >= 0x10000 && offset <= 0x9fffff) { ++ uint32_t i = 0; ++ for (i = 0; i < datalength; i++) ++ *(data + i) = 0xff; ++ return 0; ++ } ++#endif /* AVOTON */ + + /* Is it a write command? */ + if ((op.spi_type == SPI_OPCODE_TYPE_WRITE_NO_ADDRESS) +@@ -939,14 +1020,20 @@ static int ich9_run_opcode(OPCODE op, uint32_t offset, + /* FIXME make sure we do not needlessly cause transaction errors. */ + temp32 = REGREAD32(ICH9_REG_SSFS); + if (temp32 & SSFS_FCERR) { ++#ifndef FORCE10_SPI_CHANGE + msg_perr("Transaction error!\n"); ++#endif + prettyprint_ich9_reg_ssfs(temp32); + prettyprint_ich9_reg_ssfc(temp32); + /* keep reserved bits */ + temp32 &= SSFS_RESERVED_MASK | SSFC_RESERVED_MASK; + /* Clear the transaction error. */ + REGWRITE32(ICH9_REG_SSFS, temp32 | SSFS_FCERR); ++#ifndef FORCE10_SPI_CHANGE + return 1; ++#else ++ return 0; ++#endif + } + + if ((!write_cmd) && (datalength != 0)) +@@ -975,6 +1062,8 @@ static int run_opcode(const struct flashctx *flash, OPCODE op, uint32_t offset, + + switch (ich_generation) { + case CHIPSET_ICH7: ++ case CHIPSET_TUNNEL_CREEK: ++ case CHIPSET_CENTERTON: + return ich7_run_opcode(op, offset, datalength, data, maxlength); + case CHIPSET_ICH8: + default: /* Future version might behave the same */ +@@ -1418,6 +1507,191 @@ static int ich_spi_send_multicommand(struct flashctx *flash, + return ret; + } + ++#if DELL_DENVERTON_SUPPORT == 1 ++/* Sets FLA in FADDR to (addr & 0x01FFFFFF) without touching other bits. */ ++static void dnv_hwseq_set_addr(uint32_t addr) ++{ ++ uint32_t addr_old = REGREAD32(DENVERTON_REG_FADDR) & ~0x01FFFFFF; ++ REGWRITE32(DENVERTON_REG_FADDR, (addr & 0x01FFFFFF) | addr_old); ++} ++ ++/* Polls for Cycle Done Status, Flash Cycle Error or timeout in 8 us intervals. ++ Resets all error flags in HSFS. ++ Returns 0 if the cycle completes successfully without errors within ++ timeout us, 1 on errors. */ ++static int dnv_hwseq_wait_for_cycle_complete(uint32_t timeout, ++ uint32_t len) ++{ ++ uint16_t hsfs; ++ uint32_t addr; ++ ++ timeout /= 8; /* scale timeout duration to counter */ ++ while ((((hsfs = REGREAD16(DENVERTON_REG_HSFS)) & ++ (DENVERTON_HSFS_FDONE | DENVERTON_HSFS_FCERR)) == 0) && ++ --timeout) { ++ programmer_delay(8); ++ } ++ REGWRITE16(DENVERTON_REG_HSFS, REGREAD16(DENVERTON_REG_HSFS)); ++ if (!timeout) { ++ addr = REGREAD32(DENVERTON_REG_FADDR) & 0x01FFFFFF; ++ msg_perr("Timeout error between offset 0x%08x and " ++ "0x%08x (= 0x%08x + %d)!\n", ++ addr, addr + len - 1, addr, len - 1); ++ return 1; ++ } ++ ++ if (hsfs & DENVERTON_HSFS_FCERR) { ++ addr = REGREAD32(DENVERTON_REG_FADDR) & 0x01FFFFFF; ++ msg_perr("Transaction error between offset 0x%08x and " ++ "0x%08x (= 0x%08x + %d)!\n", ++ addr, addr + len - 1, addr, len - 1); ++ return 1; ++ } ++ return 0; ++} ++ ++int dnv_read_JEDEC_ID(uint8_t *buf) ++{ ++ uint16_t hsfc; ++ uint16_t timeout = 100 * 60; ++ uint8_t len = 3; ++ ++ /* clear FDONE, FCERR, AEL by writing 1 to them (if they are set) */ ++ REGWRITE16(DENVERTON_REG_HSFS, REGREAD16(DENVERTON_REG_HSFS)); ++ ++ dnv_hwseq_set_addr(0); ++ hsfc = REGREAD16(DENVERTON_REG_HSFC); ++ hsfc &= ~DENVERTON_HSFC_FCYCLE; /* clear operation */ ++ hsfc |= (0x6 << DENVERTON_HSFC_FCYCLE_OFF); /* set read JEDEC ID operation */ ++ hsfc &= ~DENVERTON_HSFC_FDBC; /* clear byte count */ ++ /* set byte count */ ++ hsfc |= (((len - 1) << DENVERTON_HSFC_FDBC_OFF) & DENVERTON_HSFC_FDBC); ++ hsfc |= DENVERTON_HSFC_FGO; /* start */ ++ REGWRITE16(DENVERTON_REG_HSFC, hsfc); ++ ++ if (dnv_hwseq_wait_for_cycle_complete(timeout, len)) ++ return 1; ++ ich_read_data(buf, len, DENVERTON_REG_FDATA0); ++ return 0; ++} ++ ++static int dnv_hwseq_probe(struct flashctx *flash) ++{ ++ uint8_t jedec_id[3]; ++ uint32_t tmp, manufacture_id, model_id; ++ struct block_eraser *eraser; ++ const struct flashchip *chip; ++ ++ msg_gdbg("Using HW Sequency to read JEDEC ID and find SPI flash.\n"); ++ if (dnv_read_JEDEC_ID(jedec_id)) { ++ msg_cerr("Can't get JEDEC ID through HW Sequency\n"); ++ return -1; ++ } ++ ++ manufacture_id = (uint32_t)jedec_id[0]; ++ model_id = (uint32_t)(jedec_id[1] << 8 | jedec_id[2]); ++ ++ for (chip = flashchips; chip && chip->name; chip++) { ++ if (chip->manufacture_id == manufacture_id && chip->model_id == model_id) { ++ break; ++ } ++ } ++ ++ flash->bios_size = (hwseq_data.size_comp0 + hwseq_data.size_comp1) / 1024; ++ ++ /* We only replace base information. The functions still use hw sequency, like read and write */ ++ flash->chip->vendor = chip->vendor; ++ flash->chip->name = chip->name; ++ flash->chip->manufacture_id = chip->manufacture_id; ++ flash->chip->model_id = chip->model_id; ++ flash->chip->total_size = chip->total_size; ++ flash->chip->page_size = chip->page_size; ++ ++ msg_cdbg("Hardware sequencing reports %d attached SPI flash chip", ++ (hwseq_data.size_comp1 != 0) ? 2 : 1); ++ if (hwseq_data.size_comp1 != 0) ++ msg_cdbg("s with a combined"); ++ else ++ msg_cdbg(" with a"); ++ msg_cdbg(" density of %d kB.\n", flash->chip->total_size); ++ ++ eraser = &(flash->chip->block_erasers[0]); ++ tmp = mmio_readl(ich_spibar + DENVERTON_REG_BFPREG); ++ dnv_bios_region_start = ((tmp & DENVERTON_BFPREG_PRB) >> DENVERTON_BFPREG_PRB_OFF) << 12; ++ dnv_bios_region_limit = ((tmp & DENVERTON_BFPREG_PRL) >> ++ DENVERTON_BFPREG_PRL_OFF) << 12 | ((1 << 12) -1); ++ dnv_bios_region_size = dnv_bios_region_limit - dnv_bios_region_start + 1; ++ eraser->eraseblocks[0].size = 4 * 1024; // 4K ++ eraser->eraseblocks[0].count = dnv_bios_region_size / ++ eraser->eraseblocks[0].size; ++ ++ flash->chip->tested = TEST_OK_PREW; ++ return 1; ++} ++ ++static int dnv_block_check(struct flashctx *flash, uint32_t addr, uint32_t len, SPI_SMI_CMD cmd) ++{ ++ char msg[3][4][32] = { ++ {"Read", "read", "", "Reading"}, ++ {"Erase", "erase", "Not erasing anthing.", "Erasing"}, ++ {"Write", "write", "", "Writing"}}; ++ ++ /* Although the hardware supports this (it would erase the whole block ++ * containing the address) we play safe here. */ ++ if (addr % DELL_DENVERTON_BLOCK_SIZE != 0) { ++ msg_cerr("%s address 0x%06x is not aligned to the %s " ++ "block boundary (any multiple of %d). %s\n", ++ msg[cmd][0], addr, msg[cmd][1], DELL_DENVERTON_BLOCK_SIZE, msg[cmd][2]); ++ return -1; ++ } ++ ++ if (addr + len > flash->chip->total_size * 1024) { ++ msg_perr("Request to %s some inaccessible memory address(es)" ++ " (addr=0x%x, len=%d). %s\n", msg[cmd][1], ++ addr, len, msg[cmd][2]); ++ return -1; ++ } ++ ++ msg_pdbg("%s %d bytes starting at 0x%06x.\n", msg[cmd][3], len, addr); ++ return 0; ++} ++ ++static int dnv_smi_spi(struct flashctx *flash, uint8_t *buf, uint32_t addr, ++ uint32_t len, SPI_SMI_CMD cmd) ++{ ++ int32_t ret = 0; ++ uint32_t block_index = 0; ++ ++ ret = dnv_block_check(flash, addr, len, cmd); ++ if (ret == 0) { ++ for (block_index = 0; block_index * DELL_DENVERTON_BLOCK_SIZE < len; block_index++ ) { ++ if ((ret = dnv_smi_doit(addr - dnv_bios_region_start, buf, cmd)) != 0) { ++ break; ++ } ++ buf += DELL_DENVERTON_BLOCK_SIZE; ++ addr += DELL_DENVERTON_BLOCK_SIZE; ++ } ++ } ++ return ret; ++} ++ ++static int dnv_smi_erase_spi(struct flashctx *flash, uint32_t addr, uint32_t len) ++{ ++ return dnv_smi_spi(flash, NULL, addr, len, SMI_ERASE_SPI); ++} ++ ++static int dnv_smi_read_spi(struct flashctx *flash, uint8_t *buf, uint32_t addr, uint32_t len) ++{ ++ return dnv_smi_spi(flash, buf, addr, len, SMI_READ_SPI); ++} ++ ++static int dnv_smi_write_spi(struct flashctx *flash, uint8_t *buf, uint32_t addr, uint32_t len) ++{ ++ return dnv_smi_spi(flash, buf, addr, len, SMI_WRITE_SPI); ++} ++ ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + #define ICH_BMWAG(x) ((x >> 24) & 0xff) + #define ICH_BMRAG(x) ((x >> 16) & 0xff) + #define ICH_BRWA(x) ((x >> 8) & 0xff) +@@ -1452,6 +1726,9 @@ static int ich9_handle_frap(uint32_t frap, int i) + msg_pdbg("FREG%i: %s region (0x%08x-0x%08x) is %s.\n", i, + region_names[i], base, (limit | 0x0fff), + access_names[rwperms]); ++#ifdef FORCE10_SPI_CHANGE ++ add_romentry(base, (limit | 0x0fff), region_names[i]); ++#endif + return 0; + } + +@@ -1514,6 +1791,90 @@ static void ich9_set_pr(int i, int read_prot, int write_prot) + msg_gspew("resulted in 0x%08x.\n", mmio_readl(addr)); + } + ++#if DELL_DENVERTON_SUPPORT == 1 ++/* returns 0 if region is unused or r/w */ ++static int dnv_handle_frap(uint32_t frap, int32_t i) ++{ ++ static const char *const access_names[4] = { ++ "locked", "read-only", "write-only", "read-write" ++ }; ++ static const char *const region_names[5] = { ++ "Flash Descriptor", "BIOS", "Management Engine", ++ "Gigabit Ethernet", "Platform Data" ++ }; ++ uint32_t base, limit; ++ int32_t rwperms = (((ICH_BRWA(frap) >> i) & 1) << 1) | ++ (((ICH_BRRA(frap) >> i) & 1) << 0); ++ int32_t offset = DENVERTON_REG_FREG0 + i * 4; ++ uint32_t freg = mmio_readl(ich_spibar + offset); ++ ++ base = ICH_FREG_BASE(freg); ++ limit = ICH_FREG_LIMIT(freg); ++ if (base > limit || (freg == 0 && i > 0)) { ++ /* this FREG is disabled */ ++ msg_pdbg2("0x%02X: 0x%08x FREG%i: %s region is unused.\n", ++ offset, freg, i, region_names[i]); ++ return 0; ++ } ++ msg_pdbg("0x%02X: 0x%08x ", offset, freg); ++ if (rwperms == 0x3) { ++ msg_pdbg("FREG%i: %s region (0x%08x-0x%08x) is %s.\n", i, ++ region_names[i], base, (limit | 0x0fff), ++ access_names[rwperms]); ++ return 0; ++ } ++ ++ msg_pwarn("FREG%i: Warning: %s region (0x%08x-0x%08x) is %s.\n", i, ++ region_names[i], base, (limit | 0x0fff), ++ access_names[rwperms]); ++ return 1; ++} ++ ++/* returns 0 if range is unused (i.e. r/w) */ ++static int dnv_handle_pr(int32_t i) ++{ ++ static const char *const access_names[3] = { ++ "locked", "read-only", "write-only" ++ }; ++ uint8_t off = DENVERTON_REG_PR0 + (i * 4); ++ uint32_t pr = mmio_readl(ich_spibar + off); ++ uint32_t rwperms = ICH_PR_PERMS(pr); ++ ++ if (rwperms == 0x3) { ++ msg_pdbg2("0x%02X: 0x%08x (PR%u is unused)\n", off, pr, i); ++ return 0; ++ } ++ ++ msg_pdbg("0x%02X: 0x%08x ", off, pr); ++ msg_pwarn("PR%u: Warning: 0x%08x-0x%08x is %s.\n", i, ICH_FREG_BASE(pr), ++ ICH_FREG_LIMIT(pr) | 0x0fff, access_names[rwperms]); ++ return 1; ++} ++ ++/* Set/Clear the read and write protection enable bits of PR register @i ++ * according to @read_prot and @write_prot. */ ++static void dnv_set_pr(int32_t i, int32_t read_prot, int32_t write_prot) ++{ ++ void *addr = ich_spibar + DENVERTON_REG_PR0 + (i * 4); ++ uint32_t old = mmio_readl(addr); ++ uint32_t new; ++ ++ msg_gspew("PR%u is 0x%08x", i, old); ++ new = old & ~((1 << DENVERTON_PR_RP_OFF) | (1 << DENVERTON_PR_WP_OFF)); ++ if (read_prot) ++ new |= (1 << DENVERTON_PR_RP_OFF); ++ if (write_prot) ++ new |= (1 << DENVERTON_PR_WP_OFF); ++ if (old == new) { ++ msg_gspew(" already.\n"); ++ return; ++ } ++ msg_gspew(", trying to set it to 0x%08x ", new); ++ rmmio_writel(new, addr); ++ msg_gspew("resulted in 0x%08x.\n", mmio_readl(addr)); ++} ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ + static const struct spi_programmer spi_programmer_ich7 = { + .type = SPI_CONTROLLER_ICH7, + .max_data_read = 64, +@@ -1545,12 +1906,21 @@ static const struct opaque_programmer opaque_programmer_ich_hwseq = { + .erase = ich_hwseq_block_erase, + }; + +-int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb, +- enum ich_chipset ich_gen) ++#if DELL_DENVERTON_SUPPORT == 1 ++static const struct opaque_programmer opaque_master_dnv_hwseq = { ++ .max_data_read = 64, ++ .max_data_write = 64, ++ .probe = dnv_hwseq_probe, ++ .read = dnv_smi_read_spi, ++ .write = dnv_smi_write_spi, ++ .erase = dnv_smi_erase_spi, ++}; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ ++ ++int ich_init_spi(struct pci_dev *dev, void *spibar, enum ich_chipset ich_gen) + { + int i; +- uint8_t old, new; +- uint16_t spibar_offset, tmp2; ++ uint16_t tmp2; + uint32_t tmp; + char *arg; + int ich_spi_force = 0; +@@ -1564,42 +1934,18 @@ int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb, + } ich_spi_mode = ich_auto; + + ich_generation = ich_gen; +- +- switch (ich_generation) { +- case CHIPSET_ICH_UNKNOWN: +- return ERROR_FATAL; +- case CHIPSET_ICH7: +- case CHIPSET_ICH8: +- spibar_offset = 0x3020; +- break; +- case CHIPSET_ICH9: +- default: /* Future version might behave the same */ +- spibar_offset = 0x3800; +- break; +- } +- +- /* SPIBAR is at RCRB+0x3020 for ICH[78] and RCRB+0x3800 for ICH9. */ +- msg_pdbg("SPIBAR = 0x%x + 0x%04x\n", base, spibar_offset); +- +- /* Assign Virtual Address */ +- ich_spibar = rcrb + spibar_offset; ++ ich_spibar = spibar; + + switch (ich_generation) { + case CHIPSET_ICH7: ++ case CHIPSET_TUNNEL_CREEK: ++ case CHIPSET_CENTERTON: + msg_pdbg("0x00: 0x%04x (SPIS)\n", + mmio_readw(ich_spibar + 0)); + msg_pdbg("0x02: 0x%04x (SPIC)\n", + mmio_readw(ich_spibar + 2)); + msg_pdbg("0x04: 0x%08x (SPIA)\n", + mmio_readl(ich_spibar + 4)); +- for (i = 0; i < 8; i++) { +- int offs; +- offs = 8 + (i * 8); +- msg_pdbg("0x%02x: 0x%08x (SPID%d)\n", offs, +- mmio_readl(ich_spibar + offs), i); +- msg_pdbg("0x%02x: 0x%08x (SPID%d+4)\n", offs + 4, +- mmio_readl(ich_spibar + offs + 4), i); +- } + ichspi_bbar = mmio_readl(ich_spibar + 0x50); + msg_pdbg("0x50: 0x%08x (BBAR)\n", + ichspi_bbar); +@@ -1625,7 +1971,123 @@ int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb, + ich_set_bbar(0); + register_spi_programmer(&spi_programmer_ich7); + break; ++#if DELL_DENVERTON_SUPPORT == 1 ++ case CHIPSET_DENVERTON: ++ ++ tmp2 = mmio_readw(ich_spibar + DENVERTON_REG_HSFS); ++ msg_pdbg("0x04: 0x%04x (HSFS)\n", tmp2); ++ if (tmp2 & DENVERTON_HSFS_FLOCKDN) { ++ msg_pwarn("Warning: SPI Configuration Lockdown activated.\n"); ++ ichspi_lock = 1; ++ } ++ if (tmp2 & DENVERTON_HSFS_FDV) ++ desc_valid = 1; ++ if (!(tmp2 & DENVERTON_HSFS_FDOPSS) && desc_valid) ++ msg_pinfo("The Flash Descriptor Override Strap-Pin is set. " ++ "Restrictions implied by\n" ++ "the Master Section of the flash descriptor are " ++ "NOT in effect. Please note\n" ++ "that Protected Range (PR) restrictions still apply.\n"); ++ if (desc_valid) { ++ tmp2 = mmio_readw(ich_spibar + DENVERTON_REG_HSFC); ++ msg_pdbg("0x06: 0x%04x (HSFC)\n", tmp2); ++ } ++ ++ tmp = mmio_readl(ich_spibar + DENVERTON_REG_FADDR); ++ msg_pdbg2("0x08: 0x%08x (FADDR)\n", tmp); ++ ++ if (desc_valid) { ++ tmp = mmio_readl(ich_spibar + DENVERTON_REG_FRAP); ++ msg_pdbg("0x50: 0x%08x (FRAP)", tmp); ++ ++ /* Handle FREGx and FRAP registers */ ++ for (i=0; i < 5; i++) ++ ich_spi_rw_restricted |= dnv_handle_frap(tmp, i); ++ if (ich_spi_rw_restricted) ++ msg_pwarn("Not all flash regions are freely accessible " ++ "by flashrom. This is most likely\n" ++ "due to an active ME. " ++ "Please see http://flashrom.org/ME for details.\n"); ++ } ++ ++ /* Handle PR registers */ ++ for (i = 0; i < 5; i++) { ++ if (!ichspi_lock) ++ dnv_set_pr(i, 0, 0); ++ ich_spi_rw_restricted |= dnv_handle_pr(i); ++ } ++ ++ if (ich_spi_force) ++ msg_pinfo("Continuing with write support because " ++ "the user forced us to!\n"); ++ ++ if (desc_valid) { ++ tmp = mmio_readl(ich_spibar + DENVERTON_REG_VSCC0); ++ msg_pdbg("0xC4: 0x%08x (VSCC0)\n", tmp); ++ ++ tmp = mmio_readl(ich_spibar + DENVERTON_REG_VSCC1); ++ msg_pdbg("0xC8: 0x%08x (VSCC1)\n", tmp); ++ ++ if (read_ich_descriptors_via_fdo(ich_spibar, &desc) == ICH_RET_OK) ++ prettyprint_ich_descriptors(ich_gen, &desc); ++ ++ /* If the descriptor is valid and indicates multiple ++ * flash devices we need to use hwseq to be able to ++ * access the second flash device. ++ */ ++ if (ich_spi_mode == ich_auto && desc.content.NC != 0) { ++ msg_pinfo("Enabling hardware sequencing due to " ++ "multiple flash chips detected.\n"); ++ ich_spi_mode = ich_hwseq; ++ } ++ } ++ ++ if (ich_spi_mode == ich_auto && ichspi_lock) { ++ msg_pinfo("Enabling hardware sequencing because " ++ "some important opcode is locked.\n"); ++ ich_spi_mode = ich_hwseq; ++ } ++ ++ if (ich_spi_mode == ich_auto && ichspi_lock) { ++ msg_pinfo("Enabling hardware sequencing because " ++ "some important opcode is locked.\n"); ++ ich_spi_mode = ich_hwseq; ++ } ++ ++ if (ich_spi_mode == ich_hwseq) { ++ if (!desc_valid) { ++ msg_perr("Hardware sequencing was requested " ++ "but the flash descriptor is not valid. Aborting.\n"); ++ return ERROR_FATAL; ++ } ++ ++ uint32_t tmpi = getFCBA_component_density(&desc, 0); ++ if (tmpi < 0) { ++ msg_perr("Could not determine density of " ++ "flash component %d.\n", 0); ++ return ERROR_FATAL; ++ } ++ hwseq_data.size_comp0 = tmpi; ++ ++ tmpi = getFCBA_component_density(&desc, 1); ++ if (tmpi < 0) { ++ msg_perr("Could not determine density of flash component %d.\n", 1); ++ return ERROR_FATAL; ++ } ++ hwseq_data.size_comp1 = tmpi; ++ ++ register_opaque_programmer(&opaque_master_dnv_hwseq); ++ } else { ++ msg_perr("[%s:%d] Error!!!\n", __func__, __LINE__); ++ return -1; ++ } ++ ++ break; ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + case CHIPSET_ICH8: ++#ifdef DELL_AVOTON_SUPPORT ++ case CHIPSET_AVOTON: ++#endif + default: /* Future version might behave the same */ + arg = extract_programmer_param("ich_spi_mode"); + if (arg && !strcmp(arg, "hwseq")) { +@@ -1669,7 +2131,11 @@ int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb, + msg_pdbg("0x04: 0x%04x (HSFS)\n", tmp2); + prettyprint_ich9_reg_hsfs(tmp2); + if (tmp2 & HSFS_FLOCKDN) { ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg("Warning: SPI Configuration Lockdown activated.\n"); ++#else + msg_pwarn("Warning: SPI Configuration Lockdown activated.\n"); ++#endif + ichspi_lock = 1; + } + if (tmp2 & HSFS_FDV) +@@ -1690,6 +2156,7 @@ int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb, + msg_pdbg2("0x08: 0x%08x (FADDR)\n", tmp); + + if (desc_valid) { ++ + tmp = mmio_readl(ich_spibar + ICH9_REG_FRAP); + msg_pdbg("0x50: 0x%08x (FRAP)\n", tmp); + msg_pdbg("BMWAG 0x%02x, ", ICH_BMWAG(tmp)); +@@ -1750,10 +2217,15 @@ int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb, + msg_pdbg("VSCC: "); + prettyprint_ich_reg_vscc(tmp, MSG_DEBUG); + } else { ++#ifdef DELL_AVOTON_SUPPORT ++ if (ich_generation != CHIPSET_AVOTON) { ++#endif + ichspi_bbar = mmio_readl(ich_spibar + ICH9_REG_BBAR); + msg_pdbg("0xA0: 0x%08x (BBAR)\n", + ichspi_bbar); +- ++#ifdef DELL_AVOTON_SUPPORT ++ } ++#endif + if (desc_valid) { + tmp = mmio_readl(ich_spibar + ICH9_REG_LVSCC); + msg_pdbg("0xC4: 0x%08x (LVSCC)\n", tmp); +@@ -1811,21 +2283,6 @@ int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb, + break; + } + +- old = pci_read_byte(dev, 0xdc); +- msg_pdbg("SPI Read Configuration: "); +- new = (old >> 2) & 0x3; +- switch (new) { +- case 0: +- case 1: +- case 2: +- msg_pdbg("prefetching %sabled, caching %sabled, ", +- (new & 0x2) ? "en" : "dis", +- (new & 0x1) ? "dis" : "en"); +- break; +- default: +- msg_pdbg("invalid prefetching/caching settings, "); +- break; +- } + return 0; + } + +@@ -1844,7 +2301,9 @@ int via_init_spi(struct pci_dev *dev, uint32_t mmio_base) + { + int i; + +- ich_spibar = physmap("VIA SPI MMIO registers", mmio_base, 0x70); ++ ich_spibar = rphysmap("VIA SPI MMIO registers", mmio_base, 0x70); ++ if (ich_spibar == ERROR_PTR) ++ return ERROR_FATAL; + /* Do we really need no write enable? Like the LPC one at D17F0 0x40 */ + + /* Not sure if it speaks all these bus protocols. */ +diff --git a/internal.c b/internal.c +index ab3c81f..30b184f 100644 +--- a/internal.c ++++ b/internal.c +@@ -331,9 +331,8 @@ int internal_init(void) + return ret; + + #if defined(__i386__) || defined(__x86_64__) +- /* Probe unconditionally for IT87* LPC->SPI translation and for +- * IT87* Parallel write enable. +- */ ++ /* Probe unconditionally for ITE Super I/O chips. This enables LPC->SPI translation on IT87* and ++ * parallel writes on IT8705F. Also, this handles the manual chip select for Gigabyte's DualBIOS. */ + init_superio_ite(); + #endif + +diff --git a/it85spi.c b/it85spi.c +index 0b074eb..7efc680 100644 +--- a/it85spi.c ++++ b/it85spi.c +@@ -262,6 +262,9 @@ static int it85xx_spi_common_init(struct superio s) + * Major TODO here, and it will be a lot of work. + */ + base = (chipaddr)physmap("it85 communication", 0xFFFFF000, 0x1000); ++ if (base == (chipaddr)ERROR_PTR) ++ return 1; ++ + msg_pdbg("%s():%d base=0x%08x\n", __func__, __LINE__, + (unsigned int)base); + ce_high = (unsigned char *)(base + 0xE00); /* 0xFFFFFE00 */ +diff --git a/it87spi.c b/it87spi.c +index 8e4e0ad..be7f234 100644 +--- a/it87spi.c ++++ b/it87spi.c +@@ -27,6 +27,7 @@ + + #include + #include ++#include + #include "flash.h" + #include "chipdrivers.h" + #include "programmer.h" +@@ -36,7 +37,7 @@ + #define ITE_SUPERIO_PORT1 0x2e + #define ITE_SUPERIO_PORT2 0x4e + +-uint16_t it8716f_flashport = 0; ++static uint16_t it8716f_flashport = 0; + /* use fast 33MHz SPI (<>0) or slow 16MHz (0) */ + static int fast_spi = 1; + +@@ -124,10 +125,40 @@ static const struct spi_programmer spi_programmer_it87xx = { + static uint16_t it87spi_probe(uint16_t port) + { + uint8_t tmp = 0; +- char *portpos = NULL; + uint16_t flashport = 0; + + enter_conf_mode_ite(port); ++ ++ char *param = extract_programmer_param("dualbiosindex"); ++ if (param != NULL) { ++ sio_write(port, 0x07, 0x07); /* Select GPIO LDN */ ++ tmp = sio_read(port, 0xEF); ++ if (*param == '\0') { /* Print current setting only. */ ++ free(param); ++ } else { ++ char *dualbiosindex_suffix; ++ errno = 0; ++ long chip_index = strtol(param, &dualbiosindex_suffix, 0); ++ free(param); ++ if (errno != 0 || *dualbiosindex_suffix != '\0' || chip_index < 0 || chip_index > 1) { ++ msg_perr("DualBIOS: Invalid chip index requested - choose 0 or 1.\n"); ++ exit_conf_mode_ite(port); ++ return 1; ++ } ++ if (chip_index != (tmp & 1)) { ++ msg_pdbg("DualBIOS: Previous chip index: %d\n", tmp & 1); ++ sio_write(port, 0xEF, (tmp & 0xFE) | chip_index); ++ tmp = sio_read(port, 0xEF); ++ if ((tmp & 1) != chip_index) { ++ msg_perr("DualBIOS: Chip selection failed.\n"); ++ exit_conf_mode_ite(port); ++ return 1; ++ } ++ } ++ } ++ msg_pinfo("DualBIOS: Selected chip: %d\n", tmp & 1); ++ } ++ + /* NOLDN, reg 0x24, mask out lowest bit (suspend) */ + tmp = sio_read(port, 0x24) & 0xFE; + /* Check if LPC->SPI translation is active. */ +@@ -163,11 +194,11 @@ static uint16_t it87spi_probe(uint16_t port) + flashport |= sio_read(port, 0x65); + msg_pdbg("Serial flash port 0x%04x\n", flashport); + /* Non-default port requested? */ +- portpos = extract_programmer_param("it87spiport"); +- if (portpos) { ++ param = extract_programmer_param("it87spiport"); ++ if (param) { + char *endptr = NULL; + unsigned long forced_flashport; +- forced_flashport = strtoul(portpos, &endptr, 0); ++ forced_flashport = strtoul(param, &endptr, 0); + /* Port 0, port >0x1000, unaligned ports and garbage strings + * are rejected. + */ +@@ -180,7 +211,8 @@ static uint16_t it87spi_probe(uint16_t port) + msg_perr("Error: it87spiport specified, but no valid " + "port specified.\nPort must be a multiple of " + "0x8 and lie between 0x100 and 0xff8.\n"); +- free(portpos); ++ exit_conf_mode_ite(port); ++ free(param); + return 1; + } else { + flashport = (uint16_t)forced_flashport; +@@ -190,7 +222,7 @@ static uint16_t it87spi_probe(uint16_t port) + sio_write(port, 0x65, (flashport & 0xff)); + } + } +- free(portpos); ++ free(param); + exit_conf_mode_ite(port); + it8716f_flashport = flashport; + if (internal_buses_supported & BUS_SPI) +@@ -228,6 +260,7 @@ int init_superio_ite(void) + case 0x8716: + case 0x8718: + case 0x8720: ++ case 0x8728: + ret |= it87spi_probe(superios[i].port); + break; + default: +diff --git a/layout.c b/layout.c +index 1bd3152..d00c16c 100644 +--- a/layout.c ++++ b/layout.c +@@ -3,6 +3,7 @@ + * + * Copyright (C) 2005-2008 coresystems GmbH + * (Written by Stefan Reinauer for coresystems GmbH) ++ * Copyright (C) 2011-2013 Stefan Tauner + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -25,24 +26,23 @@ + #include "flash.h" + #include "programmer.h" + +-static int romimages = 0; +- + #define MAX_ROMLAYOUT 32 + + typedef struct { +- unsigned int start; +- unsigned int end; ++ chipoff_t start; ++ chipoff_t end; + unsigned int included; + char name[256]; +-} romlayout_t; ++} romentry_t; + +-/* include_args lists arguments specified at the command line with -i. They +- * must be processed at some point so that desired regions are marked as +- * "included" in the rom_entries list. +- */ ++/* rom_entries store the entries specified in a layout file and associated run-time data */ ++static romentry_t rom_entries[MAX_ROMLAYOUT]; ++static int num_rom_entries = 0; /* the number of successfully parsed rom_entries */ ++ ++/* include_args holds the arguments specified at the command line with -i. They must be processed at some point ++ * so that desired regions are marked as "included" in the rom_entries list. */ + static char *include_args[MAX_ROMLAYOUT]; +-static int num_include_args = 0; /* the number of valid entries. */ +-static romlayout_t rom_entries[MAX_ROMLAYOUT]; ++static int num_include_args = 0; /* the number of valid include_args. */ + + #ifndef __LIBPAYLOAD__ + int read_romlayout(char *name) +@@ -62,12 +62,13 @@ int read_romlayout(char *name) + while (!feof(romlayout)) { + char *tstr1, *tstr2; + +- if (romimages >= MAX_ROMLAYOUT) { ++ if (num_rom_entries >= MAX_ROMLAYOUT) { + msg_gerr("Maximum number of ROM images (%i) in layout " + "file reached.\n", MAX_ROMLAYOUT); ++ fclose(romlayout); + return 1; + } +- if (2 != fscanf(romlayout, "%s %s\n", tempstr, rom_entries[romimages].name)) ++ if (2 != fscanf(romlayout, "%s %s\n", tempstr, rom_entries[num_rom_entries].name)) + continue; + #if 0 + // fscanf does not like arbitrary comments like that :( later +@@ -82,13 +83,13 @@ int read_romlayout(char *name) + fclose(romlayout); + return 1; + } +- rom_entries[romimages].start = strtol(tstr1, (char **)NULL, 16); +- rom_entries[romimages].end = strtol(tstr2, (char **)NULL, 16); +- rom_entries[romimages].included = 0; +- romimages++; ++ rom_entries[num_rom_entries].start = strtol(tstr1, (char **)NULL, 16); ++ rom_entries[num_rom_entries].end = strtol(tstr2, (char **)NULL, 16); ++ rom_entries[num_rom_entries].included = 0; ++ num_rom_entries++; + } + +- for (i = 0; i < romimages; i++) { ++ for (i = 0; i < num_rom_entries; i++) { + msg_gdbg("romlayout %08x - %08x named %s\n", + rom_entries[i].start, + rom_entries[i].end, rom_entries[i].name); +@@ -100,6 +101,33 @@ int read_romlayout(char *name) + } + #endif + ++ ++#ifdef FORCE10_SPI_CHANGE ++int add_romentry(chipoff_t start, chipoff_t end, const char *name) ++{ ++ int len = 0; ++ ++ if (num_rom_entries >= MAX_ROMLAYOUT) { ++ msg_gerr("Maximum number of ROM images (%i) in layout " ++ "file reached.\n", MAX_ROMLAYOUT); ++ return 1; ++ } ++ rom_entries[num_rom_entries].start = start; ++ rom_entries[num_rom_entries].end = end; ++ rom_entries[num_rom_entries].included = 1; ++ len = strlen(name); ++ if (len > 256) { ++ msg_gdbg("terminating rom entry name to 256 as it exceeds max length\n"); ++ len = 255; ++ } ++ strncpy(rom_entries[num_rom_entries].name, name, len); ++ msg_gdbg("Adding rom entry: %08x - %08x named %s\n", rom_entries[num_rom_entries].start, ++ rom_entries[num_rom_entries].end, rom_entries[num_rom_entries].name); ++ num_rom_entries++; ++ return 0; ++} ++#endif ++ + /* returns the index of the entry (or a negative value if it is not found) */ + int find_include_arg(const char *const name) + { +@@ -139,11 +167,11 @@ static int find_romentry(char *name) + { + int i; + +- if (!romimages) ++ if (num_rom_entries == 0) + return -1; + + msg_gspew("Looking for region \"%s\"... ", name); +- for (i = 0; i < romimages; i++) { ++ for (i = 0; i < num_rom_entries; i++) { + if (!strcmp(rom_entries[i].name, name)) { + rom_entries[i].included = 1; + msg_gspew("found.\n"); +@@ -166,7 +194,7 @@ int process_include_args(void) + return 0; + + /* User has specified an area, but no layout file is loaded. */ +- if (!romimages) { ++ if (num_rom_entries == 0) { + msg_gerr("Region requested (with -i \"%s\"), " + "but no layout data is available.\n", + include_args[0]); +@@ -190,15 +218,30 @@ int process_include_args(void) + return 0; + } + +-romlayout_t *get_next_included_romentry(unsigned int start) ++void layout_cleanup(void) ++{ ++ int i; ++ for (i = 0; i < num_include_args; i++) { ++ free(include_args[i]); ++ include_args[i] = NULL; ++ } ++ num_include_args = 0; ++ ++ for (i = 0; i < num_rom_entries; i++) { ++ rom_entries[i].included = 0; ++ } ++ num_rom_entries = 0; ++} ++ ++romentry_t *get_next_included_romentry(unsigned int start) + { + int i; + unsigned int best_start = UINT_MAX; +- romlayout_t *best_entry = NULL; +- romlayout_t *cur; ++ romentry_t *best_entry = NULL; ++ romentry_t *cur; + + /* First come, first serve for overlapping regions. */ +- for (i = 0; i < romimages; i++) { ++ for (i = 0; i < num_rom_entries; i++) { + cur = &rom_entries[i]; + if (!cur->included) + continue; +@@ -217,18 +260,43 @@ romlayout_t *get_next_included_romentry(unsigned int start) + return best_entry; + } + +-int handle_romentries(const struct flashctx *flash, uint8_t *oldcontents, uint8_t *newcontents) ++/* Validate and - if needed - normalize layout entries. */ ++int normalize_romentries(const struct flashctx *flash) ++{ ++ chipsize_t total_size = flash->chip->total_size * 1024; ++ int ret = 0; ++ ++ int i; ++ for (i = 0; i < num_rom_entries; i++) { ++ if (rom_entries[i].start >= total_size || rom_entries[i].end >= total_size) { ++ msg_gwarn("Warning: Address range of region \"%s\" exceeds the current chip's " ++ "address space.\n", rom_entries[i].name); ++ if (rom_entries[i].included) ++ ret = 1; ++ } ++ if (rom_entries[i].start > rom_entries[i].end) { ++ msg_gerr("Error: Size of the address range of region \"%s\" is not positive.\n", ++ rom_entries[i].name); ++ ret = 1; ++ } ++ } ++ ++ return ret; ++} ++ ++int build_new_image(const struct flashctx *flash, uint8_t *oldcontents, uint8_t *newcontents) + { + unsigned int start = 0; +- romlayout_t *entry; ++ romentry_t *entry; + unsigned int size = flash->chip->total_size * 1024; + + /* If no regions were specified for inclusion, assume + * that the user wants to write the complete new image. + */ ++#ifndef FORCE10_SPI_CHANGE + if (num_include_args == 0) + return 0; +- ++#endif + /* Non-included romentries are ignored. + * The union of all included romentries is used from the new image. + */ +@@ -239,7 +307,7 @@ int handle_romentries(const struct flashctx *flash, uint8_t *oldcontents, uint8_ + memcpy(newcontents + start, oldcontents + start, + size - start); + break; +- } ++ } + /* For non-included region, copy from old content. */ + if (entry->start > start) + memcpy(newcontents + start, oldcontents + start, +diff --git a/linux_spi.c b/linux_spi.c +index d12fceb..f0c6404 100644 +--- a/linux_spi.c ++++ b/linux_spi.c +@@ -60,7 +60,7 @@ static const struct spi_programmer spi_programmer_linux = { + int linux_spi_init(void) + { + char *p, *endp, *dev; +- uint32_t speed = 0; ++ uint32_t speed_hz = 0; + /* FIXME: make the following configurable by CLI options. */ + /* SPI mode 0 (beware this also includes: MSB first, CS active low and others */ + const uint8_t mode = SPI_MODE_0; +@@ -68,7 +68,7 @@ int linux_spi_init(void) + + p = extract_programmer_param("spispeed"); + if (p && strlen(p)) { +- speed = (uint32_t)strtoul(p, &endp, 10) * 1024; ++ speed_hz = (uint32_t)strtoul(p, &endp, 10) * 1000; + if (p == endp) { + msg_perr("%s: invalid clock: %s kHz\n", __func__, p); + free(p); +@@ -98,14 +98,14 @@ int linux_spi_init(void) + return 1; + /* We rely on the shutdown function for cleanup from here on. */ + +- if (speed > 0) { +- if (ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed) == -1) { ++ if (speed_hz > 0) { ++ if (ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed_hz) == -1) { + msg_perr("%s: failed to set speed to %d Hz: %s\n", +- __func__, speed, strerror(errno)); ++ __func__, speed_hz, strerror(errno)); + return 1; + } + +- msg_pdbg("Using %d kHz clock\n", speed); ++ msg_pdbg("Using %d kHz clock\n", speed_hz/1000); + } + + if (ioctl(fd, SPI_IOC_WR_MODE, &mode) == -1) { +diff --git a/mcp6x_spi.c b/mcp6x_spi.c +index ac40557..20e9bd8 100644 +--- a/mcp6x_spi.c ++++ b/mcp6x_spi.c +@@ -135,25 +135,20 @@ int mcp6x_spi_init(int want_spi) + + /* Accessing a NULL pointer BAR is evil. Don't do it. */ + if (!mcp6x_spibaraddr && want_spi) { +- msg_perr("Error: Chipset is strapped for SPI, but MCP SPI BAR " +- "is invalid.\n"); ++ msg_perr("Error: Chipset is strapped for SPI, but MCP SPI BAR is invalid.\n"); + return 1; + } else if (!mcp6x_spibaraddr && !want_spi) { + msg_pdbg("MCP SPI is not used.\n"); + return 0; + } else if (mcp6x_spibaraddr && !want_spi) { +- msg_pdbg("Strange. MCP SPI BAR is valid, but chipset apparently" +- " doesn't have SPI enabled.\n"); ++ msg_pdbg("Strange. MCP SPI BAR is valid, but chipset apparently doesn't have SPI enabled.\n"); + /* FIXME: Should we enable SPI anyway? */ + return 0; + } + /* Map the BAR. Bytewise/wordwise access at 0x530 and 0x540. */ +- mcp6x_spibar = physmap("NVIDIA MCP6x SPI", mcp6x_spibaraddr, 0x544); +- +-#if 0 +- /* FIXME: Run the physunmap in a shutdown function. */ +- physunmap(mcp6x_spibar, 0x544); +-#endif ++ mcp6x_spibar = rphysmap("NVIDIA MCP6x SPI", mcp6x_spibaraddr, 0x544); ++ if (mcp6x_spibar == ERROR_PTR) ++ return 1; + + status = mmio_readw(mcp6x_spibar + 0x530); + msg_pdbg("SPI control is 0x%04x, req=%i, gnt=%i\n", +diff --git a/nic3com.c b/nic3com.c +index 8d67b54..27e28c7 100644 +--- a/nic3com.c ++++ b/nic3com.c +@@ -96,6 +96,8 @@ int nic3com_init(void) + return 1; + + io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0); ++ if (!io_base_addr) ++ return 1; + + id = dev->device_id; + +diff --git a/nicintel.c b/nicintel.c +index 56678e7..98ba29f 100644 +--- a/nicintel.c ++++ b/nicintel.c +@@ -59,13 +59,6 @@ static const struct par_programmer par_programmer_nicintel = { + .chip_writen = fallback_chip_writen, + }; + +-static int nicintel_shutdown(void *data) +-{ +- physunmap(nicintel_control_bar, NICINTEL_CONTROL_MEMMAP_SIZE); +- physunmap(nicintel_bar, NICINTEL_MEMMAP_SIZE); +- return 0; +-} +- + int nicintel_init(void) + { + struct pci_dev *dev = NULL; +@@ -83,18 +76,19 @@ int nicintel_init(void) + return 1; + + addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_2); +- nicintel_bar = physmap("Intel NIC flash", addr, NICINTEL_MEMMAP_SIZE); ++ if (!addr) ++ return 1; ++ ++ nicintel_bar = rphysmap("Intel NIC flash", addr, NICINTEL_MEMMAP_SIZE); + if (nicintel_bar == ERROR_PTR) +- goto error_out_unmap; ++ return 1; + + addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0); +- /* FIXME: This is not an aligned mapping. Use 4k? */ +- nicintel_control_bar = physmap("Intel NIC control/status reg", +- addr, NICINTEL_CONTROL_MEMMAP_SIZE); +- if (nicintel_control_bar == ERROR_PTR) +- goto error_out; ++ if (!addr) ++ return 1; + +- if (register_shutdown(nicintel_shutdown, NULL)) ++ nicintel_control_bar = rphysmap("Intel NIC control/status reg", addr, NICINTEL_CONTROL_MEMMAP_SIZE); ++ if (nicintel_control_bar == ERROR_PTR) + return 1; + + /* FIXME: This register is pretty undocumented in all publicly available +@@ -112,11 +106,6 @@ int nicintel_init(void) + register_par_programmer(&par_programmer_nicintel, BUS_PARALLEL); + + return 0; +- +-error_out_unmap: +- physunmap(nicintel_bar, NICINTEL_MEMMAP_SIZE); +-error_out: +- return 1; + } + + static void nicintel_chip_writeb(const struct flashctx *flash, uint8_t val, +diff --git a/nicintel_spi.c b/nicintel_spi.c +index 0045c09..1522c9b 100644 +--- a/nicintel_spi.c ++++ b/nicintel_spi.c +@@ -19,10 +19,16 @@ + */ + + /* +- * Datasheet: ++ * Datasheets: + * PCI/PCI-X Family of Gigabit Ethernet Controllers Software Developer's Manual + * 82540EP/EM, 82541xx, 82544GC/EI, 82545GM/EM, 82546GB/EB, and 82547xx +- * http://download.intel.com/design/network/manuals/8254x_GBe_SDM.pdf ++ * http://www.intel.com/content/www/us/en/ethernet-controllers/pci-pci-x-family-gbe-controllers-software-dev-manual.html ++ * ++ * PCIe GbE Controllers Open Source Software Developer's Manual ++ * http://www.intel.com/content/www/us/en/ethernet-controllers/pcie-gbe-controllers-open-source-manual.html ++ * ++ * Intel 82574 Gigabit Ethernet Controller Family Datasheet ++ * http://www.intel.com/content/www/us/en/ethernet-controllers/82574l-gbe-controller-datasheet.html + */ + + #include +@@ -72,6 +78,7 @@ const struct dev_entry nics_intel_spi[] = { + {PCI_VENDOR_ID_INTEL, 0x1076, OK, "Intel", "82541GI Gigabit Ethernet Controller"}, + {PCI_VENDOR_ID_INTEL, 0x107c, OK, "Intel", "82541PI Gigabit Ethernet Controller"}, + {PCI_VENDOR_ID_INTEL, 0x10b9, OK, "Intel", "82572EI Gigabit Ethernet Controller"}, ++ {PCI_VENDOR_ID_INTEL, 0x10d3, OK, "Intel", "82574L Gigabit Ethernet Controller"}, + + {0}, + }; +@@ -151,16 +158,12 @@ static int nicintel_spi_shutdown(void *data) + { + uint32_t tmp; + +- /* Disable writes manually. See the comment about EECD in +- * nicintel_spi_init() for details. +- */ ++ /* Disable writes manually. See the comment about EECD in nicintel_spi_init() for details. */ + tmp = pci_mmio_readl(nicintel_spibar + EECD); + tmp &= ~FLASH_WRITES_ENABLED; + tmp |= FLASH_WRITES_DISABLED; + pci_mmio_writel(tmp, nicintel_spibar + EECD); + +- physunmap(nicintel_spibar, MEMMAP_SIZE); +- + return 0; + } + +@@ -177,8 +180,13 @@ int nicintel_spi_init(void) + return 1; + + io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0); +- nicintel_spibar = physmap("Intel Gigabit NIC w/ SPI flash", +- io_base_addr, MEMMAP_SIZE); ++ if (!io_base_addr) ++ return 1; ++ ++ nicintel_spibar = rphysmap("Intel Gigabit NIC w/ SPI flash", io_base_addr, MEMMAP_SIZE); ++ if (nicintel_spibar == ERROR_PTR) ++ return 1; ++ + /* Automatic restore of EECD on shutdown is not possible because EECD + * does not only contain FLASH_WRITES_DISABLED|FLASH_WRITES_ENABLED, + * but other bits with side effects as well. Those other bits must be +diff --git a/nicnatsemi.c b/nicnatsemi.c +index d62a73f..cb8da6d 100644 +--- a/nicnatsemi.c ++++ b/nicnatsemi.c +@@ -64,6 +64,8 @@ int nicnatsemi_init(void) + return 1; + + io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0); ++ if (!io_base_addr) ++ return 1; + + /* The datasheet shows address lines MA0-MA16 in one place and MA0-MA15 + * in another. My NIC has MA16 connected to A16 on the boot ROM socket +diff --git a/nicrealtek.c b/nicrealtek.c +index fb8e9e1..02fbd39 100644 +--- a/nicrealtek.c ++++ b/nicrealtek.c +@@ -69,6 +69,8 @@ int nicrealtek_init(void) + return 1; + + io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0); ++ if (!io_base_addr) ++ return 1; + + /* Beware, this ignores the vendor ID! */ + switch (dev->device_id) { +diff --git a/ogp_spi.c b/ogp_spi.c +index 0c09d6a..23431d1 100644 +--- a/ogp_spi.c ++++ b/ogp_spi.c +@@ -97,12 +97,6 @@ static const struct bitbang_spi_master bitbang_spi_master_ogp = { + .half_period = 0, + }; + +-static int ogp_spi_shutdown(void *data) +-{ +- physunmap(ogp_spibar, 4096); +- return 0; +-} +- + int ogp_spi_init(void) + { + struct pci_dev *dev = NULL; +@@ -126,8 +120,10 @@ int ogp_spi_init(void) + ogp_reg_sck = OGA1_XP10_CPROM_SCK; + } else { + msg_perr("Invalid or missing rom= parameter.\n"); ++ free(type); + return 1; + } ++ free(type); + + if (rget_io_perms()) + return 1; +@@ -137,9 +133,11 @@ int ogp_spi_init(void) + return 1; + + io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0); +- ogp_spibar = physmap("OGP registers", io_base_addr, 4096); ++ if (!io_base_addr) ++ return 1; + +- if (register_shutdown(ogp_spi_shutdown, NULL)) ++ ogp_spibar = rphysmap("OGP registers", io_base_addr, 4096); ++ if (ogp_spibar == ERROR_PTR) + return 1; + + if (bitbang_spi_init(&bitbang_spi_master_ogp)) +diff --git a/pcidev.c b/pcidev.c +index c7e9d78..3a3f77c 100644 +--- a/pcidev.c ++++ b/pcidev.c +@@ -94,7 +94,7 @@ uintptr_t pcidev_readbar(struct pci_dev *dev, int bar) + + supported_cycles = pci_read_word(dev, PCI_COMMAND); + +- msg_pdbg("Requested BAR is "); ++ msg_pdbg("Requested BAR is of type "); + switch (bartype) { + case TYPE_MEMBAR: + msg_pdbg("MEM"); +diff --git a/physmap.c b/physmap.c +index 932fe75..150c44a 100644 +--- a/physmap.c ++++ b/physmap.c +@@ -21,11 +21,13 @@ + */ + + #include ++#include + #include + #include + #include + #include + #include "flash.h" ++#include "programmer.h" + #include "hwaccess.h" + + #if !defined(__DJGPP__) && !defined(__LIBPAYLOAD__) +@@ -88,7 +90,7 @@ static void *sys_physmap(uintptr_t phys_addr, size_t len) + #define sys_physmap_rw_uncached sys_physmap + #define sys_physmap_ro_cached sys_physmap + +-void physunmap(void *virt_addr, size_t len) ++void sys_physunmap_unaligned(void *virt_addr, size_t len) + { + __dpmi_meminfo mi; + +@@ -117,7 +119,7 @@ void *sys_physmap(uintptr_t phys_addr, size_t len) + #define sys_physmap_rw_uncached sys_physmap + #define sys_physmap_ro_cached sys_physmap + +-void physunmap(void *virt_addr, size_t len) ++void sys_physunmap_unaligned(void *virt_addr, size_t len) + { + } + #elif defined(__MACH__) && defined(__APPLE__) +@@ -138,7 +140,7 @@ static void *sys_physmap(uintptr_t phys_addr, size_t len) + #define sys_physmap_rw_uncached sys_physmap + #define sys_physmap_ro_cached sys_physmap + +-void physunmap(void *virt_addr, size_t len) ++void sys_physunmap_unaligned(void *virt_addr, size_t len) + { + unmap_physical(virt_addr, len); + } +@@ -164,12 +166,11 @@ static void *sys_physmap_rw_uncached(uintptr_t phys_addr, size_t len) + /* Open the memory device UNCACHED. Important for MMIO. */ + if (-1 == (fd_mem = open(MEM_DEV, O_RDWR | O_SYNC))) { + msg_perr("Critical error: open(" MEM_DEV "): %s\n", strerror(errno)); +- exit(2); ++ return ERROR_PTR; + } + } + +- virt_addr = mmap(NULL, len, PROT_WRITE | PROT_READ, MAP_SHARED, +- fd_mem, (off_t)phys_addr); ++ virt_addr = mmap(NULL, len, PROT_WRITE | PROT_READ, MAP_SHARED, fd_mem, (off_t)phys_addr); + return MAP_FAILED == virt_addr ? ERROR_PTR : virt_addr; + } + +@@ -184,50 +185,77 @@ static void *sys_physmap_ro_cached(uintptr_t phys_addr, size_t len) + /* Open the memory device CACHED. */ + if (-1 == (fd_mem_cached = open(MEM_DEV, O_RDWR))) { + msg_perr("Critical error: open(" MEM_DEV "): %s\n", strerror(errno)); +- exit(2); ++ return ERROR_PTR; + } + } + +- virt_addr = mmap(NULL, len, PROT_READ, MAP_SHARED, +- fd_mem_cached, (off_t)phys_addr); ++ virt_addr = mmap(NULL, len, PROT_READ, MAP_SHARED, fd_mem_cached, (off_t)phys_addr); + return MAP_FAILED == virt_addr ? ERROR_PTR : virt_addr; + } + +-void physunmap(void *virt_addr, size_t len) ++void sys_physunmap_unaligned(void *virt_addr, size_t len) + { +- if (len == 0) { +- msg_pspew("Not unmapping zero size at %p\n", virt_addr); +- return; +- } +- + munmap(virt_addr, len); + } + #endif + +-#define PHYSMAP_NOFAIL 0 +-#define PHYSMAP_MAYFAIL 1 +-#define PHYSMAP_RW 0 +-#define PHYSMAP_RO 1 ++#define PHYSM_RW 0 ++#define PHYSM_RO 1 ++#define PHYSM_NOCLEANUP 0 ++#define PHYSM_CLEANUP 1 ++#define PHYSM_EXACT 0 ++#define PHYSM_ROUND 1 ++ ++/* Round start to nearest page boundary below and set len so that the resulting address range ends at the lowest ++ * possible page boundary where the original address range is still entirely contained. It returns the ++ * difference between the rounded start address and the original start address. */ ++static uintptr_t round_to_page_boundaries(uintptr_t *start, size_t *len) ++{ ++ uintptr_t page_size = getpagesize(); ++ uintptr_t page_mask = ~(page_size-1); ++ uintptr_t end = *start + *len; ++ uintptr_t old_start = *start; ++ msg_gspew("page_size=%" PRIxPTR "\n", page_size); ++ msg_gspew("pre-rounding: start=0x%0*" PRIxPTR ", len=0x%zx, end=0x%0*" PRIxPTR "\n", ++ PRIxPTR_WIDTH, *start, *len, PRIxPTR_WIDTH, end); ++ *start = *start & page_mask; ++ end = (end + page_size - 1) & page_mask; ++ *len = end - *start; ++ msg_gspew("post-rounding: start=0x%0*" PRIxPTR ", len=0x%zx, end=0x%0*" PRIxPTR "\n", ++ PRIxPTR_WIDTH, *start, *len, PRIxPTR_WIDTH, *start + *len); ++ return old_start - *start; ++} ++ ++struct undo_physmap_data { ++ void *virt_addr; ++ size_t len; ++}; ++ ++static int undo_physmap(void *data) ++{ ++ if (data == NULL) { ++ msg_perr("%s: tried to physunmap without valid data!\n", __func__); ++ return 1; ++ } ++ struct undo_physmap_data *d = data; ++ physunmap_unaligned(d->virt_addr, d->len); ++ free(data); ++ return 0; ++} + +-static void *physmap_common(const char *descr, uintptr_t phys_addr, +- size_t len, int mayfail, int readonly) ++static void *physmap_common(const char *descr, uintptr_t phys_addr, size_t len, bool readonly, bool autocleanup, ++ bool round) + { + void *virt_addr; ++ uintptr_t offset = 0; + + if (len == 0) { + msg_pspew("Not mapping %s, zero size at 0x%0*" PRIxPTR ".\n", descr, PRIxPTR_WIDTH, phys_addr); + return ERROR_PTR; + } + +- if ((getpagesize() - 1) & len) { +- msg_perr("Mapping %s at 0x%0*" PRIxPTR ", unaligned size 0x%zx.\n", +- descr, PRIxPTR_WIDTH, phys_addr, len); +- } +- +- if ((getpagesize() - 1) & phys_addr) { +- msg_perr("Mapping %s, 0x%zx bytes at unaligned 0x%0*" PRIxPTR ".\n", +- descr, len, PRIxPTR_WIDTH, phys_addr); +- } ++ if (round) ++ offset = round_to_page_boundaries(&phys_addr, &len); + + if (readonly) + virt_addr = sys_physmap_ro_cached(phys_addr, len); +@@ -253,23 +281,89 @@ static void *physmap_common(const char *descr, uintptr_t phys_addr, + "and reboot, or reboot into\n" + "single user mode.\n"); + #endif +- if (!mayfail) +- exit(3); ++ return ERROR_PTR; + } + +- return virt_addr; ++ if (autocleanup) { ++ struct undo_physmap_data *d = malloc(sizeof(struct undo_physmap_data)); ++ if (d == NULL) { ++ msg_perr("%s: Out of memory!\n", __func__); ++ physunmap_unaligned(virt_addr, len); ++ return ERROR_PTR; ++ } ++ ++ d->virt_addr = virt_addr; ++ d->len = len; ++ if (register_shutdown(undo_physmap, d) != 0) { ++ msg_perr("%s: Could not register shutdown function!\n", __func__); ++ physunmap_unaligned(virt_addr, len); ++ return ERROR_PTR; ++ } ++ } ++ ++ return virt_addr + offset; ++} ++ ++void physunmap_unaligned(void *virt_addr, size_t len) ++{ ++ /* No need to check for zero size, such mappings would have yielded ERROR_PTR. */ ++ if (virt_addr == ERROR_PTR) { ++#ifndef FORCE10_SPI_CHANGE ++ msg_perr("Trying to unmap a nonexisting mapping!\n" ++ "Please report a bug at flashrom@flashrom.org\n"); ++#else ++ msg_pdbg("Trying to unmap a nonexisting mapping!\n" ++ "Please report a bug at flashrom@flashrom.org\n"); ++#endif ++ return; ++ } ++ ++ sys_physunmap_unaligned(virt_addr, len); ++} ++ ++void physunmap(void *virt_addr, size_t len) ++{ ++ uintptr_t tmp; ++ ++ /* No need to check for zero size, such mappings would have yielded ERROR_PTR. */ ++ if (virt_addr == ERROR_PTR) { ++#ifndef FORCE10_SPI_CHANGE ++ msg_perr("Trying to unmap a nonexisting mapping!\n" ++ "Please report a bug at flashrom@flashrom.org\n"); ++#else ++ msg_pdbg("Trying to unmap a nonexisting mapping!\n" ++ "Please report a bug at flashrom@flashrom.org\n"); ++#endif ++ return; ++ } ++ tmp = (uintptr_t)virt_addr; ++ /* We assume that the virtual address of a page-aligned physical address is page-aligned as well. By ++ * extension, rounding a virtual unaligned address as returned by physmap should yield the same offset ++ * between rounded and original virtual address as between rounded and original physical address. ++ */ ++ round_to_page_boundaries(&tmp, &len); ++ virt_addr = (void *)tmp; ++ physunmap_unaligned(virt_addr, len); + } + + void *physmap(const char *descr, uintptr_t phys_addr, size_t len) + { +- return physmap_common(descr, phys_addr, len, PHYSMAP_NOFAIL, +- PHYSMAP_RW); ++ return physmap_common(descr, phys_addr, len, PHYSM_RW, PHYSM_NOCLEANUP, PHYSM_ROUND); ++} ++ ++void *rphysmap(const char *descr, uintptr_t phys_addr, size_t len) ++{ ++ return physmap_common(descr, phys_addr, len, PHYSM_RW, PHYSM_CLEANUP, PHYSM_ROUND); ++} ++ ++void *physmap_ro(const char *descr, uintptr_t phys_addr, size_t len) ++{ ++ return physmap_common(descr, phys_addr, len, PHYSM_RO, PHYSM_NOCLEANUP, PHYSM_ROUND); + } + +-void *physmap_try_ro(const char *descr, uintptr_t phys_addr, size_t len) ++void *physmap_ro_unaligned(const char *descr, uintptr_t phys_addr, size_t len) + { +- return physmap_common(descr, phys_addr, len, PHYSMAP_MAYFAIL, +- PHYSMAP_RO); ++ return physmap_common(descr, phys_addr, len, PHYSM_RO, PHYSM_NOCLEANUP, PHYSM_EXACT); + } + + /* MSR abstraction implementations for Linux, OpenBSD, FreeBSD/Dragonfly, OSX, libpayload +diff --git a/pony_spi.c b/pony_spi.c +index 101751f..2a3666f 100644 +--- a/pony_spi.c ++++ b/pony_spi.c +@@ -140,6 +140,7 @@ int pony_spi_init(void) + } else if (arg && !strlen(arg)) { + msg_perr("Error: Missing argument for programmer type.\n"); + free(arg); ++ return 1; + } else if (arg){ + msg_perr("Error: Invalid programmer type specified.\n"); + free(arg); +diff --git a/print.c b/print.c +index 6766eeb..6d2921b 100644 +--- a/print.c ++++ b/print.c +@@ -436,12 +436,13 @@ static void print_supported_boards_helper(const struct board_info *boards, + msg_ginfo("%s", b->name); + for (i = 0; i < maxboardlen - strlen(b->name); i++) + msg_ginfo(" "); +- if (b->working == OK) +- msg_ginfo("OK "); +- else if (b->working == NT) +- msg_ginfo("NT "); +- else +- msg_ginfo("BAD "); ++ ++ if (b->working == OK) ++ msg_ginfo("OK "); ++ else if (b->working == NT) ++ msg_ginfo("NT "); ++ else ++ msg_ginfo("BAD "); + + for (e = board_matches; e->vendor_name != NULL; e++) { + if (strcmp(e->vendor_name, b->vendor) +@@ -530,6 +531,7 @@ const struct board_info boards_known[] = { + B("abit", "AN-M2", OK, NULL, NULL), + B("abit", "AV8", OK, NULL, NULL), + B("abit", "AX8", OK, NULL, NULL), ++ B("abit", "BF6", OK, NULL, NULL), + B("abit", "BM6", OK, NULL, NULL), + B("abit", "Fatal1ty F-I90HD", OK, NULL, NULL), + B("abit", "IC7", OK, NULL, NULL), +@@ -695,6 +697,7 @@ const struct board_info boards_known[] = { + B("ASUS", "P5L-VM 1394", OK, "http://www.asus.com/Motherboards/Intel_Socket_775/P5LVM_1394/", NULL), + B("ASUS", "P5LD2", NT, NULL, "Untested board enable."), + B("ASUS", "P5LD2-VM", NT, "http://www.asus.com/Motherboards/Intel_Socket_775/P5LD2VM/", "Untested board enable."), ++ B("ASUS", "P5LD2-VM DH", OK, "http://www.asus.com/Motherboards/Intel_Socket_775/P5LD2VM_DH/", NULL), + B("ASUS", "P5LP-LE (Lithium-UL8E)", OK, "http://h10025.www1.hp.com/ewfrf/wc/document?docname=c00379616&tmp_task=prodinfoCategory&cc=us&dlc=en&lc=en&product=1159887", "This is an OEM board from HP."), + B("ASUS", "P5LP-LE (Epson OEM)", OK, NULL, "This is an OEM board from Epson (e.g. Endeavor MT7700)."), + B("ASUS", "P5LP-LE", NT, NULL, "This designation is used for OEM boards from HP, Epson and maybe others. The HP names vary and not all of them have been tested yet. Please report any success or failure, thanks."), +diff --git a/programmer.h b/programmer.h +index 4db8d58..d3cc557 100644 +--- a/programmer.h ++++ b/programmer.h +@@ -276,8 +276,11 @@ int processor_flash_enable(void); + + /* physmap.c */ + void *physmap(const char *descr, uintptr_t phys_addr, size_t len); +-void *physmap_try_ro(const char *descr, uintptr_t phys_addr, size_t len); ++void *rphysmap(const char *descr, uintptr_t phys_addr, size_t len); ++void *physmap_ro(const char *descr, uintptr_t phys_addr, size_t len); ++void *physmap_ro_unaligned(const char *descr, uintptr_t phys_addr, size_t len); + void physunmap(void *virt_addr, size_t len); ++void physunmap_unaligned(void *virt_addr, size_t len); + #if CONFIG_INTERNAL == 1 + int setup_cpu_msr(int cpu); + void cleanup_cpu_msr(void); +@@ -287,9 +290,11 @@ int cb_parse_table(const char **vendor, const char **model); + int cb_check_image(uint8_t *bios, int size); + + /* dmi.c */ ++#if defined(__i386__) || defined(__x86_64__) + extern int has_dmi_support; + void dmi_init(void); + int dmi_match(const char *pattern); ++#endif // defined(__i386__) || defined(__x86_64__) + + /* internal.c */ + struct superio { +@@ -550,10 +555,19 @@ int default_spi_write_256(struct flashctx *flash, uint8_t *buf, unsigned int sta + int default_spi_write_aai(struct flashctx *flash, uint8_t *buf, unsigned int start, unsigned int len); + int register_spi_programmer(const struct spi_programmer *programmer); + +-/* The following enum is needed by ich_descriptor_tool and ich* code. */ ++/* The following enum is needed by ich_descriptor_tool and ich* code as well as in chipset_enable.c. */ + enum ich_chipset { + CHIPSET_ICH_UNKNOWN, +- CHIPSET_ICH7 = 7, ++#ifdef DELL_AVOTON_SUPPORT ++ CHIPSET_AVOTON, ++#endif ++ CHIPSET_ICH, ++ CHIPSET_ICH2345, ++ CHIPSET_ICH6, ++ CHIPSET_POULSBO, /* SCH U* */ ++ CHIPSET_TUNNEL_CREEK, /* Atom E6xx */ ++ CHIPSET_CENTERTON, /* Atom S1220 S1240 S1260 */ ++ CHIPSET_ICH7, + CHIPSET_ICH8, + CHIPSET_ICH9, + CHIPSET_ICH10, +@@ -563,13 +577,15 @@ enum ich_chipset { + CHIPSET_8_SERIES_LYNX_POINT, + CHIPSET_8_SERIES_LYNX_POINT_LP, + CHIPSET_8_SERIES_WELLSBURG, ++#if DELL_DENVERTON_SUPPORT == 1 ++ CHIPSET_DENVERTON, ++#endif /* #if DELL_DENVERTON_SUPPORT == 1 */ + }; + + /* ichspi.c */ + #if CONFIG_INTERNAL == 1 + extern uint32_t ichspi_bbar; +-int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb, +- enum ich_chipset ich_generation); ++int ich_init_spi(struct pci_dev *dev, void *spibar, enum ich_chipset ich_generation); + int via_init_spi(struct pci_dev *dev, uint32_t mmio_base); + + /* amd_imc.c */ +@@ -659,7 +675,7 @@ typedef int fdtype; + + void sp_flush_incoming(void); + fdtype sp_openserport(char *dev, unsigned int baud); +-void __attribute__((noreturn)) sp_die(char *msg); ++int serialport_config(fdtype fd, unsigned int baud); + extern fdtype sp_fd; + /* expose serialport_shutdown as it's currently used by buspirate */ + int serialport_shutdown(void *data); +diff --git a/rayer_spi.c b/rayer_spi.c +index b312610..189341a 100644 +--- a/rayer_spi.c ++++ b/rayer_spi.c +@@ -17,11 +17,9 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +-/* Driver for the SPIPGM hardware by "RayeR" Martin Rehak. +- * See http://rayer.ic.cz/elektro/spipgm.htm for schematics and instructions. +- */ +- +-/* This driver uses non-portable direct I/O port accesses which won't work on ++/* Driver for various LPT adapters. ++ * ++ * This driver uses non-portable direct I/O port accesses which won't work on + * any non-x86 platform, and even on x86 there is a high chance there will be + * collisions with any loaded parallel port drivers. + * The big advantage of direct port I/O is OS independence and speed because +@@ -37,21 +35,87 @@ + #include "programmer.h" + #include "hwaccess.h" + +-enum rayer_type { +- TYPE_RAYER, +- TYPE_XILINX_DLC5, +-}; +- + /* We have two sets of pins, out and in. The numbers for both sets are + * independent and are bitshift values, not real pin numbers. + * Default settings are for the RayeR hardware. + */ +-/* Pins for master->slave direction */ +-static int rayer_cs_bit = 5; +-static int rayer_sck_bit = 6; +-static int rayer_mosi_bit = 7; +-/* Pins for slave->master direction */ +-static int rayer_miso_bit = 6; ++ ++struct rayer_programmer { ++ const char *type; ++ const enum test_state status; ++ const char *description; ++ const void *dev_data; ++}; ++ ++struct rayer_pinout { ++ uint8_t cs_bit; ++ uint8_t sck_bit; ++ uint8_t mosi_bit; ++ uint8_t miso_bit; ++ void (*preinit)(const void *); ++ int (*shutdown)(void *); ++}; ++ ++static const struct rayer_pinout rayer_spipgm = { ++ .cs_bit = 5, ++ .sck_bit = 6, ++ .mosi_bit = 7, ++ .miso_bit = 6, ++}; ++ ++static void dlc5_preinit(const void *); ++static int dlc5_shutdown(void *); ++ ++static const struct rayer_pinout xilinx_dlc5 = { ++ .cs_bit = 2, ++ .sck_bit = 1, ++ .mosi_bit = 0, ++ .miso_bit = 4, ++ .preinit = dlc5_preinit, ++ .shutdown = dlc5_shutdown, ++}; ++ ++static void byteblaster_preinit(const void *); ++static int byteblaster_shutdown(void *); ++ ++static const struct rayer_pinout altera_byteblastermv = { ++ .cs_bit = 1, ++ .sck_bit = 0, ++ .mosi_bit = 6, ++ .miso_bit = 7, ++ .preinit = byteblaster_preinit, ++ .shutdown = byteblaster_shutdown, ++}; ++ ++static void stk200_preinit(const void *); ++static int stk200_shutdown(void *); ++ ++static const struct rayer_pinout atmel_stk200 = { ++ .cs_bit = 7, ++ .sck_bit = 4, ++ .mosi_bit = 5, ++ .miso_bit = 6, ++ .preinit = stk200_preinit, ++ .shutdown = stk200_shutdown, ++}; ++ ++static const struct rayer_pinout wiggler_lpt = { ++ .cs_bit = 1, ++ .sck_bit = 2, ++ .mosi_bit = 3, ++ .miso_bit = 7, ++}; ++ ++static const struct rayer_programmer rayer_spi_types[] = { ++ {"rayer", NT, "RayeR SPIPGM", &rayer_spipgm}, ++ {"xilinx", NT, "Xilinx Parallel Cable III (DLC 5)", &xilinx_dlc5}, ++ {"byteblastermv", OK, "Altera ByteBlasterMV", &altera_byteblastermv}, ++ {"stk200", NT, "Atmel STK200/300 adapter", &atmel_stk200}, ++ {"wiggler", OK, "Wiggler LPT", &wiggler_lpt}, ++ {0}, ++}; ++ ++static const struct rayer_pinout *pinout = NULL; + + static uint16_t lpt_iobase; + +@@ -60,22 +124,22 @@ static uint8_t lpt_outbyte; + + static void rayer_bitbang_set_cs(int val) + { +- lpt_outbyte &= ~(1 << rayer_cs_bit); +- lpt_outbyte |= (val << rayer_cs_bit); ++ lpt_outbyte &= ~(1 << pinout->cs_bit); ++ lpt_outbyte |= (val << pinout->cs_bit); + OUTB(lpt_outbyte, lpt_iobase); + } + + static void rayer_bitbang_set_sck(int val) + { +- lpt_outbyte &= ~(1 << rayer_sck_bit); +- lpt_outbyte |= (val << rayer_sck_bit); ++ lpt_outbyte &= ~(1 << pinout->sck_bit); ++ lpt_outbyte |= (val << pinout->sck_bit); + OUTB(lpt_outbyte, lpt_iobase); + } + + static void rayer_bitbang_set_mosi(int val) + { +- lpt_outbyte &= ~(1 << rayer_mosi_bit); +- lpt_outbyte |= (val << rayer_mosi_bit); ++ lpt_outbyte &= ~(1 << pinout->mosi_bit); ++ lpt_outbyte |= (val << pinout->mosi_bit); + OUTB(lpt_outbyte, lpt_iobase); + } + +@@ -83,8 +147,8 @@ static int rayer_bitbang_get_miso(void) + { + uint8_t tmp; + +- tmp = INB(lpt_iobase + 1); +- tmp = (tmp >> rayer_miso_bit) & 0x1; ++ tmp = INB(lpt_iobase + 1) ^ 0x80; // bit.7 inverted ++ tmp = (tmp >> pinout->miso_bit) & 0x1; + return tmp; + } + +@@ -99,8 +163,8 @@ static const struct bitbang_spi_master bitbang_spi_master_rayer = { + + int rayer_spi_init(void) + { ++ const struct rayer_programmer *prog = rayer_spi_types; + char *arg = NULL; +- enum rayer_type rayer_type = TYPE_RAYER; + + /* Non-default port requested? */ + arg = extract_programmer_param("iobase"); +@@ -138,36 +202,20 @@ int rayer_spi_init(void) + + arg = extract_programmer_param("type"); + if (arg) { +- if (!strcasecmp(arg, "rayer")) { +- rayer_type = TYPE_RAYER; +- } else if (!strcasecmp(arg, "xilinx")) { +- rayer_type = TYPE_XILINX_DLC5; +- } else { ++ for (; prog->type != NULL; prog++) { ++ if (strcasecmp(arg, prog->type) == 0) { ++ break; ++ } ++ } ++ if (prog->type == NULL) { + msg_perr("Error: Invalid device type specified.\n"); + free(arg); + return 1; + } ++ free(arg); + } +- free(arg); +- switch (rayer_type) { +- case TYPE_RAYER: +- msg_pdbg("Using RayeR SPIPGM pinout.\n"); +- /* Bits for master->slave direction */ +- rayer_cs_bit = 5; +- rayer_sck_bit = 6; +- rayer_mosi_bit = 7; +- /* Bits for slave->master direction */ +- rayer_miso_bit = 6; +- break; +- case TYPE_XILINX_DLC5: +- msg_pdbg("Using Xilinx Parallel Cable III (DLC 5) pinout.\n"); +- /* Bits for master->slave direction */ +- rayer_cs_bit = 2; +- rayer_sck_bit = 1; +- rayer_mosi_bit = 0; +- /* Bits for slave->master direction */ +- rayer_miso_bit = 4; +- } ++ msg_pinfo("Using %s pinout.\n", prog->description); ++ pinout = (struct rayer_pinout *)prog->dev_data; + + if (rget_io_perms()) + return 1; +@@ -175,12 +223,60 @@ int rayer_spi_init(void) + /* Get the initial value before writing to any line. */ + lpt_outbyte = INB(lpt_iobase); + ++ if (pinout->shutdown) ++ register_shutdown(pinout->shutdown, (void*)pinout); ++ if (pinout->preinit) ++ pinout->preinit(pinout); ++ + if (bitbang_spi_init(&bitbang_spi_master_rayer)) + return 1; + + return 0; + } + ++static void byteblaster_preinit(const void *data){ ++ msg_pdbg("byteblaster_preinit\n"); ++ /* Assert #EN signal. */ ++ OUTB(2, lpt_iobase + 2 ); ++} ++ ++static int byteblaster_shutdown(void *data){ ++ msg_pdbg("byteblaster_shutdown\n"); ++ /* De-Assert #EN signal. */ ++ OUTB(0, lpt_iobase + 2 ); ++ return 0; ++} ++ ++static void stk200_preinit(const void *data) { ++ msg_pdbg("stk200_init\n"); ++ /* Assert #EN signals, set LED signal. */ ++ lpt_outbyte = (1 << 6) ; ++ OUTB(lpt_outbyte, lpt_iobase); ++} ++ ++static int stk200_shutdown(void *data) { ++ msg_pdbg("stk200_shutdown\n"); ++ /* Assert #EN signals, clear LED signal. */ ++ lpt_outbyte = (1 << 2) | (1 << 3); ++ OUTB(lpt_outbyte, lpt_iobase); ++ return 0; ++} ++ ++static void dlc5_preinit(const void *data) { ++ msg_pdbg("dlc5_preinit\n"); ++ /* Assert pin 6 to receive MISO. */ ++ lpt_outbyte |= (1<<4); ++ OUTB(lpt_outbyte, lpt_iobase); ++} ++ ++static int dlc5_shutdown(void *data) { ++ msg_pdbg("dlc5_shutdown\n"); ++ /* De-assert pin 6 to force MISO low. */ ++ lpt_outbyte &= ~(1<<4); ++ OUTB(lpt_outbyte, lpt_iobase); ++ return 0; ++} ++ + #else + #error PCI port I/O access is not supported on this architecture yet. + #endif +diff --git a/satamv.c b/satamv.c +index c3f27e7..e03508e 100644 +--- a/satamv.c ++++ b/satamv.c +@@ -57,12 +57,6 @@ static const struct par_programmer par_programmer_satamv = { + .chip_writen = fallback_chip_writen, + }; + +-static int satamv_shutdown(void *data) +-{ +- physunmap(mv_bar, 0x20000); +- return 0; +-} +- + /* + * Random notes: + * FCE# Flash Chip Enable +@@ -94,11 +88,11 @@ int satamv_init(void) + return 1; + + addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0); +- mv_bar = physmap("Marvell 88SX7042 registers", addr, 0x20000); +- if (mv_bar == ERROR_PTR) ++ if (!addr) + return 1; + +- if (register_shutdown(satamv_shutdown, NULL)) ++ mv_bar = rphysmap("Marvell 88SX7042 registers", addr, 0x20000); ++ if (mv_bar == ERROR_PTR) + return 1; + + tmp = pci_mmio_readl(mv_bar + FLASH_PARAM); +@@ -144,12 +138,15 @@ int satamv_init(void) + pci_rmmio_writel(tmp, mv_bar + GPIO_PORT_CONTROL); + + /* Get I/O BAR location. */ +- tmp = pcidev_readbar(dev, PCI_BASE_ADDRESS_2); ++ addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_2); ++ if (!addr) ++ return 1; ++ + /* Truncate to reachable range. + * FIXME: Check if the I/O BAR is actually reachable. + * This is an arch specific check. + */ +- mv_iobar = tmp & 0xffff; ++ mv_iobar = addr & 0xffff; + msg_pspew("Activating I/O BAR at 0x%04x\n", mv_iobar); + + /* 512 kByte with two 8-bit latches, and +diff --git a/satasii.c b/satasii.c +index 72e35e5..83dc62c 100644 +--- a/satasii.c ++++ b/satasii.c +@@ -54,12 +54,6 @@ static const struct par_programmer par_programmer_satasii = { + .chip_writen = fallback_chip_writen, + }; + +-static int satasii_shutdown(void *data) +-{ +- physunmap(sii_bar, SATASII_MEMMAP_SIZE); +- return 0; +-} +- + static uint32_t satasii_wait_done(void) + { + uint32_t ctrl_reg; +@@ -91,21 +85,25 @@ int satasii_init(void) + + if ((id == 0x3132) || (id == 0x3124)) { + addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0); ++ if (!addr) ++ return 1; + reg_offset = 0x70; + } else { + addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_5); ++ if (!addr) ++ return 1; + reg_offset = 0x50; + } + +- sii_bar = physmap("SATA SiI registers", addr, SATASII_MEMMAP_SIZE) + reg_offset; ++ sii_bar = rphysmap("SATA SiI registers", addr, SATASII_MEMMAP_SIZE); ++ if (sii_bar == ERROR_PTR) ++ return 1; ++ sii_bar += reg_offset; + + /* Check if ROM cycle are OK. */ + if ((id != 0x0680) && (!(pci_mmio_readl(sii_bar) & (1 << 26)))) + msg_pwarn("Warning: Flash seems unconnected.\n"); + +- if (register_shutdown(satasii_shutdown, NULL)) +- return 1; +- + register_par_programmer(&par_programmer_satasii, BUS_PARALLEL); + + return 0; +diff --git a/sb600spi.c b/sb600spi.c +index cb7c4ac..9523591 100644 +--- a/sb600spi.c ++++ b/sb600spi.c +@@ -57,7 +57,28 @@ static enum amd_chipset amd_gen = CHIPSET_AMD_UNKNOWN; + static void determine_generation(struct pci_dev *dev) + { + amd_gen = CHIPSET_AMD_UNKNOWN; +- if (dev->device_id == 0x780e) { ++ msg_pdbg2("Trying to determine the generation of the SPI interface... "); ++ if (dev->device_id == 0x438d) { ++ amd_gen = CHIPSET_SB6XX; ++ msg_pdbg("SB6xx detected.\n"); ++ } else if (dev->device_id == 0x439d) { ++ struct pci_dev *smbus_dev = pci_dev_find(0x1002, 0x4385); ++ if (smbus_dev == NULL) ++ return; ++ uint8_t rev = pci_read_byte(smbus_dev, PCI_REVISION_ID); ++ if (rev >= 0x39 && rev <= 0x3D) { ++ amd_gen = CHIPSET_SB7XX; ++ msg_pdbg("SB7xx/SP5100 detected.\n"); ++ } else if (rev >= 0x40 && rev <= 0x42) { ++ amd_gen = CHIPSET_SB89XX; ++ msg_pdbg("SB8xx/SB9xx/Hudson-1 detected.\n"); ++ } else { ++ msg_pwarn("SB device found but SMBus revision 0x%02x does not match known values.\n" ++ "Assuming SB8xx/SB9xx/Hudson-1. Please send a log to flashrom@flashrom.org\n", ++ rev); ++ amd_gen = CHIPSET_SB89XX; ++ } ++ } else if (dev->device_id == 0x780e) { + /* The PCI ID of the LPC bridge doesn't change between Hudson-2/3/4 and Yangtze (Kabini/Temash) + * although they use different SPI interfaces. */ + #ifdef USE_YANGTZE_HEURISTICS +@@ -94,7 +115,11 @@ static void determine_generation(struct pci_dev *dev) + "the output of lspci -nnvx, thanks!.\n", rev); + } + #endif +- } ++ } else ++ msg_pwarn("%s: Unknown LPC device %" PRIx16 ":%" PRIx16 ".\n" ++ "Please report this to flashrom@flashrom.org and include this log and\n" ++ "the output of lspci -nnvx, thanks!\n", ++ __func__, dev->vendor_id, dev->device_id); + } + + static void reset_internal_fifo_pointer(void) +@@ -247,10 +272,66 @@ static int sb600_spi_send_command(struct flashctx *flash, unsigned int writecnt, + return 0; + } + ++struct spispeed { ++ const char *const name; ++ const uint8_t speed; ++}; ++ ++static const struct spispeed spispeeds[] = { ++ { "66 MHz", 0x00 }, ++ { "33 MHz", 0x01 }, ++ { "22 MHz", 0x02 }, ++ { "16.5 MHz", 0x03 }, ++}; ++ ++static int set_speed(struct pci_dev *dev, const struct spispeed *spispeed) ++{ ++ bool success = false; ++ uint8_t speed = spispeed->speed; ++ ++ msg_pdbg("Setting SPI clock to %s (0x%x).\n", spispeed->name, speed); ++ if (amd_gen != CHIPSET_YANGTZE) { ++ rmmio_writeb((mmio_readb(sb600_spibar + 0xd) & ~(0x3 << 4)) | (speed << 4), sb600_spibar + 0xd); ++ success = (speed == ((mmio_readb(sb600_spibar + 0xd) >> 4) & 0x3)); ++ } ++ ++ if (!success) { ++ msg_perr("Setting SPI clock failed.\n"); ++ return 1; ++ } ++ return 0; ++} ++ ++static int handle_speed(struct pci_dev *dev) ++{ ++ uint32_t tmp; ++ int8_t spispeed_idx = 3; /* Default to 16.5 MHz */ ++ ++ /* See the chipset support matrix for SPI Base_Addr below for an explanation of the symbols used. ++ * bit 6xx 7xx/SP5100 8xx 9xx hudson1 hudson234 yangtze ++ * 18 rsvd <- fastReadEnable ? <- ? SpiReadMode[0] ++ * 29:30 rsvd <- <- ? <- ? SpiReadMode[2:1] ++ */ ++ if (amd_gen != CHIPSET_YANGTZE) { ++ if (amd_gen >= CHIPSET_SB89XX && amd_gen <= CHIPSET_HUDSON234) { ++ bool fast_read = (mmio_readl(sb600_spibar + 0x00) >> 18) & 0x1; ++ msg_pdbg("Fast Reads are %sabled\n", fast_read ? "en" : "dis"); ++ if (fast_read) { ++ msg_pdbg("Disabling them temporarily.\n"); ++ rmmio_writel(mmio_readl(sb600_spibar + 0x00) & ~(0x1 << 18), ++ sb600_spibar + 0x00); ++ } ++ } ++ tmp = (mmio_readb(sb600_spibar + 0xd) >> 4) & 0x3; ++ msg_pdbg("NormSpeed is %s\n", spispeeds[tmp].name); ++ } ++ return set_speed(dev, &spispeeds[spispeed_idx]); ++} ++ + static int sb600_handle_imc(struct pci_dev *dev, bool amd_imc_force) + { + /* Handle IMC everywhere but sb600 which does not have one. */ +- if (dev->device_id == 0x438d) ++ if (amd_gen == CHIPSET_SB6XX) + return 0; + + /* TODO: we should not only look at IntegratedImcPresent (LPC Dev 20, Func 3, 40h) but also at +@@ -297,9 +378,6 @@ int sb600_probe_spi(struct pci_dev *dev) + uint32_t tmp; + uint8_t reg; + bool amd_imc_force = false; +- static const char *const speed_names[4] = { +- "66/reserved", "33", "22", "16.5" +- }; + + char *arg = extract_programmer_param("amd_imc_force"); + if (arg && !strcmp(arg, "yes")) { +@@ -326,14 +404,20 @@ int sb600_probe_spi(struct pci_dev *dev) + return 0; + + /* Physical memory has to be mapped at page (4k) boundaries. */ +- sb600_spibar = physmap("SB600 SPI registers", tmp & 0xfffff000, +- 0x1000); ++ sb600_spibar = rphysmap("SB600 SPI registers", tmp & 0xfffff000, 0x1000); ++ if (sb600_spibar == ERROR_PTR) ++ return ERROR_FATAL; ++ + /* The low bits of the SPI base address are used as offset into + * the mapped page. + */ + sb600_spibar += tmp & 0xfff; + + determine_generation(dev); ++ if (amd_gen == CHIPSET_AMD_UNKNOWN) { ++ msg_perr("Could not determine chipset generation."); ++ return ERROR_NONFATAL; ++ } + + if (amd_gen == CHIPSET_YANGTZE) { + msg_perr("SPI on Kabini/Temash and newer chipsets are not yet supported.\n" +@@ -341,34 +425,87 @@ int sb600_probe_spi(struct pci_dev *dev) + return ERROR_NONFATAL; + } + +- tmp = pci_read_long(dev, 0xa0); +- msg_pdbg("AltSpiCSEnable=%i, SpiRomEnable=%i, " +- "AbortEnable=%i\n", tmp & 0x1, (tmp & 0x2) >> 1, +- (tmp & 0x4) >> 2); +- tmp = (pci_read_byte(dev, 0xba) & 0x4) >> 2; +- msg_pdbg("PrefetchEnSPIFromIMC=%i, ", tmp); +- +- tmp = pci_read_byte(dev, 0xbb); +- /* FIXME: Set bit 3,6,7 if not already set. +- * Set bit 5, otherwise SPI accesses are pointless in LPC mode. +- * See doc 42413 AMD SB700/710/750 RPR. ++ /* How to read the following table and similar ones in this file: ++ * "?" means we have no datasheet for this chipset generation or it doesn't have any relevant info. ++ * "<-" means the bit/register meaning is identical to the next non-"?" chipset to the left. "<-" thus ++ * never refers to another "?". ++ * If a "?" chipset is between two chipsets with identical meaning, we assume the meaning didn't change ++ * twice in between, i.e. the meaning is unchanged for the "?" chipset. Usually we assume that ++ * succeeding hardware supports the same functionality as its predecessor unless proven different by ++ * tests or documentation, hence "?" will often be implemented equally to "<-". ++ * ++ * Chipset support matrix for SPI Base_Addr (LPC PCI reg 0xa0) ++ * bit 6xx 7xx/SP5100 8xx 9xx hudson1 hudson2+ yangtze ++ * 3 rsvd <- <- ? <- ? RouteTpm2Spi ++ * 2 rsvd AbortEnable rsvd ? <- ? <- ++ * 1 rsvd SpiRomEnable <- ? <- ? <- ++ * 0 rsvd AltSpiCSEnable rsvd ? <- ? <- + */ +- msg_pdbg("PrefetchEnSPIFromHost=%i, SpiOpEnInLpcMode=%i\n", +- tmp & 0x1, (tmp & 0x20) >> 5); +- tmp = mmio_readl(sb600_spibar); +- /* FIXME: If SpiAccessMacRomEn or SpiHostAccessRomEn are zero on +- * SB700 or later, reads and writes will be corrupted. Abort in this +- * case. Make sure to avoid this check on SB600. ++ if (amd_gen >= CHIPSET_SB7XX) { ++ tmp = pci_read_long(dev, 0xa0); ++ msg_pdbg("SpiRomEnable=%i", (tmp >> 1) & 0x1); ++ if (amd_gen == CHIPSET_SB7XX) ++ msg_pdbg(", AltSpiCSEnable=%i, AbortEnable=%i", tmp & 0x1, (tmp >> 2) & 0x1); ++ ++ tmp = pci_read_byte(dev, 0xba); ++ msg_pdbg(", PrefetchEnSPIFromIMC=%i", (tmp & 0x4) >> 2); ++ ++ tmp = pci_read_byte(dev, 0xbb); ++ /* FIXME: Set bit 3,6,7 if not already set. ++ * Set bit 5, otherwise SPI accesses are pointless in LPC mode. ++ * See doc 42413 AMD SB700/710/750 RPR. ++ */ ++ if (amd_gen == CHIPSET_SB7XX) ++ msg_pdbg(", SpiOpEnInLpcMode=%i", (tmp >> 5) & 0x1); ++ msg_pdbg(", PrefetchEnSPIFromHost=%i\n", tmp & 0x1); ++ } ++ ++ /* Chipset support matrix for SPI_Cntrl0 (spibar + 0x0) ++ * See the chipset support matrix for SPI Base_Addr above for an explanation of the symbols used. ++ * bit 6xx 7xx/SP5100 8xx 9xx hudson1 hudson2+ yangtze ++ * 17 rsvd <- <- ? <- ? <- ++ * 18 rsvd <- fastReadEnable<1> ? <- ? SpiReadMode[0]<1> ++ * 19 SpiArbEnable <- <- ? <- ? <- ++ * 20 (FifoPtrClr) <- <- ? <- ? <- ++ * 21 (FifoPtrInc) <- <- ? <- ? IllegalAccess ++ * 22 SpiAccessMacRomEn <- <- ? <- ? <- ++ * 23 SpiHostAccessRomEn <- <- ? <- ? <- ++ * 24:26 ArbWaitCount <- <- ? <- ? <- ++ * 27 SpiBridgeDisable <- <- ? <- ? rsvd ++ * 28 rsvd DropOneClkOnRd = SPIClkGate ? <- ? <- ++ * 29:30 rsvd <- <- ? <- ? SpiReadMode[2:1]<1> ++ * 31 rsvd <- SpiBusy ? <- ? <- ++ * ++ * <1> see handle_speed + */ +- msg_pdbg("(0x%08" PRIx32 ") fastReadEnable=%u, SpiArbEnable=%i, SpiAccessMacRomEn=%i, " +- "SpiHostAccessRomEn=%i, ArbWaitCount=%i, " +- "SpiBridgeDisable=%i, DropOneClkOnRd=%i\n", +- tmp, (tmp >> 18) & 0x1, +- (tmp >> 19) & 0x1, (tmp >> 22) & 0x1, +- (tmp >> 23) & 0x1, (tmp >> 24) & 0x7, +- (tmp >> 27) & 0x1, (tmp >> 28) & 0x1); +- tmp = (mmio_readb(sb600_spibar + 0xd) >> 4) & 0x3; +- msg_pdbg("NormSpeed is %s MHz\n", speed_names[tmp]); ++ tmp = mmio_readl(sb600_spibar + 0x00); ++ msg_pdbg("(0x%08" PRIx32 ") SpiArbEnable=%i", tmp, (tmp >> 19) & 0x1); ++ ++ msg_pdbg(", SpiAccessMacRomEn=%i, SpiHostAccessRomEn=%i, ArbWaitCount=%i", ++ (tmp >> 22) & 0x1, (tmp >> 23) & 0x1, (tmp >> 24) & 0x7); ++ ++ if (amd_gen != CHIPSET_YANGTZE) ++ msg_pdbg(", SpiBridgeDisable=%i", (tmp >> 27) & 0x1); ++ ++ switch (amd_gen) { ++ case CHIPSET_SB7XX: ++ msg_pdbg(", DropOneClkOnRd/SpiClkGate=%i", (tmp >> 28) & 0x1); ++ case CHIPSET_SB89XX: ++ case CHIPSET_HUDSON234: ++ msg_pdbg(", SpiBusy=%i", (tmp >> 31) & 0x1); ++ default: break; ++ } ++ msg_pdbg("\n"); ++ ++ if (((tmp >> 22) & 0x1) == 0 || ((tmp >> 23) & 0x1) == 0) { ++ msg_perr("ERROR: State of SpiAccessMacRomEn or SpiHostAccessRomEn prohibits full access.\n"); ++ return ERROR_NONFATAL; ++ } ++ ++ if (amd_gen >= CHIPSET_SB89XX) { ++ tmp = mmio_readb(sb600_spibar + 0x1D); ++ msg_pdbg("Using SPI_CS%d\n", tmp & 0x3); ++ } + + /* Look for the SMBus device. */ + smbus_dev = pci_dev_find(0x1002, 0x4385); +@@ -409,6 +546,9 @@ int sb600_probe_spi(struct pci_dev *dev) + return 0; + } + ++ if (handle_speed(dev) != 0) ++ return ERROR_FATAL; ++ + if (sb600_handle_imc(dev, amd_imc_force) != 0) + return ERROR_FATAL; + +diff --git a/serial.c b/serial.c +index 1b394cd..126079a 100644 +--- a/serial.c ++++ b/serial.c +@@ -41,12 +41,6 @@ + + fdtype sp_fd = SER_INV_FD; + +-void __attribute__((noreturn)) sp_die(char *msg) +-{ +- perror(msg); +- exit(1); +-} +- + #ifdef _WIN32 + struct baudentry { + DWORD flag; +@@ -158,35 +152,18 @@ static void msg_perr_strerror(const char *msg) + #endif + } + +-fdtype sp_openserport(char *dev, unsigned int baud) ++int serialport_config(fdtype fd, unsigned int baud) + { +-#ifdef _WIN32 +- HANDLE fd; +- char *dev2 = dev; +- if ((strlen(dev) > 3) && +- (tolower((unsigned char)dev[0]) == 'c') && +- (tolower((unsigned char)dev[1]) == 'o') && +- (tolower((unsigned char)dev[2]) == 'm')) { +- dev2 = malloc(strlen(dev) + 5); +- if (!dev2) { +- msg_perr_strerror("Out of memory: "); +- return SER_INV_FD; +- } +- strcpy(dev2, "\\\\.\\"); +- strcpy(dev2 + 4, dev); +- } +- fd = CreateFile(dev2, GENERIC_READ | GENERIC_WRITE, 0, NULL, +- OPEN_EXISTING, 0, NULL); +- if (dev2 != dev) +- free(dev2); +- if (fd == INVALID_HANDLE_VALUE) { +- msg_perr_strerror("Cannot open serial port: "); +- return SER_INV_FD; ++ if (fd == SER_INV_FD) { ++ msg_perr("%s: File descriptor is invalid.\n", __func__); ++ return 1; + } ++ ++#ifdef _WIN32 + DCB dcb; + if (!GetCommState(fd, &dcb)) { + msg_perr_strerror("Could not fetch original serial port configuration: "); +- goto out_close; ++ return 1; + } + const struct baudentry *entry = round_baud(baud); + dcb.BaudRate = entry->flag; +@@ -195,35 +172,25 @@ fdtype sp_openserport(char *dev, unsigned int baud) + dcb.StopBits = ONESTOPBIT; + if (!SetCommState(fd, &dcb)) { + msg_perr_strerror("Could not change serial port configuration: "); +- goto out_close; ++ return 1; + } + if (!GetCommState(fd, &dcb)) { + msg_perr_strerror("Could not fetch new serial port configuration: "); +- goto out_close; ++ return 1; + } + msg_pdbg("Baud rate is %ld.\n", dcb.BaudRate); +- return fd; +-out_close: +- CloseHandle(sp_fd); +- return SER_INV_FD; + #else + struct termios wanted, observed; +- int fd; +- fd = open(dev, O_RDWR | O_NOCTTY | O_NDELAY); +- if (fd < 0) { +- msg_perr_strerror("Cannot open serial port: "); +- return SER_INV_FD; +- } + fcntl(fd, F_SETFL, 0); + if (tcgetattr(fd, &observed) != 0) { + msg_perr_strerror("Could not fetch original serial port configuration: "); +- goto out_close; ++ return 1; + } + wanted = observed; + const struct baudentry *entry = round_baud(baud); + if (cfsetispeed(&wanted, entry->flag) != 0 || cfsetospeed(&wanted, entry->flag) != 0) { + msg_perr_strerror("Could not set serial baud rate: "); +- goto out_close; ++ return 1; + } + wanted.c_cflag &= ~(PARENB | CSTOPB | CSIZE | CRTSCTS); + wanted.c_cflag |= (CS8 | CLOCAL | CREAD); +@@ -232,11 +199,11 @@ out_close: + wanted.c_oflag &= ~OPOST; + if (tcsetattr(fd, TCSANOW, &wanted) != 0) { + msg_perr_strerror("Could not change serial port configuration: "); +- goto out_close; ++ return 1; + } + if (tcgetattr(fd, &observed) != 0) { + msg_perr_strerror("Could not fetch new serial port configuration: "); +- goto out_close; ++ return 1; + } + if (observed.c_cflag != wanted.c_cflag || + observed.c_lflag != wanted.c_lflag || +@@ -244,14 +211,54 @@ out_close: + observed.c_oflag != wanted.c_oflag || + cfgetispeed(&observed) != cfgetispeed(&wanted)) { + msg_perr("%s: Some requested options did not stick.\n", __func__); +- goto out_close; ++ return 1; + } +- msg_pdbg("Baud rate is %d.\n", entry->baud); +- return fd; ++ msg_pdbg("Baud rate is %d now.\n", entry->baud); ++#endif ++ return 0; ++} + +-out_close: +- close(sp_fd); +- return SER_INV_FD; ++fdtype sp_openserport(char *dev, unsigned int baud) ++{ ++ fdtype fd; ++#ifdef _WIN32 ++ char *dev2 = dev; ++ if ((strlen(dev) > 3) && ++ (tolower((unsigned char)dev[0]) == 'c') && ++ (tolower((unsigned char)dev[1]) == 'o') && ++ (tolower((unsigned char)dev[2]) == 'm')) { ++ dev2 = malloc(strlen(dev) + 5); ++ if (!dev2) { ++ msg_perr_strerror("Out of memory: "); ++ return SER_INV_FD; ++ } ++ strcpy(dev2, "\\\\.\\"); ++ strcpy(dev2 + 4, dev); ++ } ++ fd = CreateFile(dev2, GENERIC_READ | GENERIC_WRITE, 0, NULL, ++ OPEN_EXISTING, 0, NULL); ++ if (dev2 != dev) ++ free(dev2); ++ if (fd == INVALID_HANDLE_VALUE) { ++ msg_perr_strerror("Cannot open serial port: "); ++ return SER_INV_FD; ++ } ++ if (serialport_config(fd, baud) != 0) { ++ CloseHandle(fd); ++ return SER_INV_FD; ++ } ++ return fd; ++#else ++ fd = open(dev, O_RDWR | O_NOCTTY | O_NDELAY); ++ if (fd < 0) { ++ msg_perr_strerror("Cannot open serial port: "); ++ return SER_INV_FD; ++ } ++ if (serialport_config(fd, baud) != 0) { ++ close(fd); ++ return SER_INV_FD; ++ } ++ return fd; + #endif + } + +@@ -350,7 +357,7 @@ int serialport_write(unsigned char *buf, unsigned int writecnt) + if (!tmp) { + msg_pdbg2("Empty write\n"); + empty_writes--; +- programmer_delay(500); ++ internal_delay(500); + if (empty_writes == 0) { + msg_perr("Serial port is unresponsive!\n"); + return 1; +diff --git a/serprog.c b/serprog.c +index 3476315..35c4f32 100644 +--- a/serprog.c ++++ b/serprog.c +@@ -100,6 +100,7 @@ static int sp_opensocket(char *ip, unsigned int port) + if (NULL == hostPtr) { + hostPtr = gethostbyaddr(ip, strlen(ip), AF_INET); + if (NULL == hostPtr) { ++ close(sock); + msg_perr("Error: cannot resolve %s\n", ip); + return -1; + } +@@ -114,7 +115,11 @@ static int sp_opensocket(char *ip, unsigned int port) + } + /* We are latency limited, and sometimes do write-write-read * + * (write-n) - so enable TCP_NODELAY. */ +- setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &flag, sizeof(int)); ++ if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &flag, sizeof(int))) { ++ close(sock); ++ msg_perr("Error: serprog cannot set socket options: %s\n", strerror(errno)); ++ return -1; ++ } + return sock; + } + #endif +@@ -237,43 +242,58 @@ static int sp_docommand(uint8_t command, uint32_t parmlen, + return 0; + } + +-static void sp_flush_stream(void) ++static int sp_flush_stream(void) + { + if (sp_streamed_transmit_ops) + do { + unsigned char c; + if (serialport_read(&c, 1) != 0) { +- sp_die("Error: cannot read from device (flushing stream)"); ++ msg_perr("Error: cannot read from device (flushing stream)"); ++ return 1; + } + if (c == S_NAK) { + msg_perr("Error: NAK to a stream buffer operation\n"); +- exit(1); ++ return 1; + } + if (c != S_ACK) { + msg_perr("Error: Invalid reply 0x%02X from device\n", c); +- exit(1); ++ return 1; + } + } while (--sp_streamed_transmit_ops); + sp_streamed_transmit_ops = 0; + sp_streamed_transmit_bytes = 0; ++ return 0; + } + +-static int sp_stream_buffer_op(uint8_t cmd, uint32_t parmlen, uint8_t * parms) ++static int sp_stream_buffer_op(uint8_t cmd, uint32_t parmlen, uint8_t *parms) + { + uint8_t *sp; + if (sp_automatic_cmdcheck(cmd)) + return 1; ++ + sp = malloc(1 + parmlen); +- if (!sp) sp_die("Error: cannot malloc command buffer"); ++ if (!sp) { ++ msg_perr("Error: cannot malloc command buffer\n"); ++ return 1; ++ } + sp[0] = cmd; + memcpy(&(sp[1]), parms, parmlen); +- if (sp_streamed_transmit_bytes >= (1 + parmlen + sp_device_serbuf_size)) +- sp_flush_stream(); +- if (serialport_write(sp, 1 + parmlen) != 0) +- sp_die("Error: cannot write command"); +- free(sp); ++ ++ if (sp_streamed_transmit_bytes >= (1 + parmlen + sp_device_serbuf_size)) { ++ if (sp_flush_stream() != 0) { ++ free(sp); ++ return 1; ++ } ++ } ++ if (serialport_write(sp, 1 + parmlen) != 0) { ++ msg_perr("Error: cannot write command\n"); ++ free(sp); ++ return 1; ++ } + sp_streamed_transmit_ops += 1; + sp_streamed_transmit_bytes += 1 + parmlen; ++ ++ free(sp); + return 0; + } + +@@ -656,16 +676,16 @@ int serprog_init(void) + return 0; + } + +-/* Move an in flashrom buffer existing write-n operation to * +- * the on-device operation buffer. */ +-static void sp_pass_writen(void) ++/* Move an in flashrom buffer existing write-n operation to the on-device operation buffer. */ ++static int sp_pass_writen(void) + { + unsigned char header[7]; +- msg_pspew(MSGHEADER "Passing write-n bytes=%d addr=0x%x\n", +- sp_write_n_bytes, sp_write_n_addr); +- if (sp_streamed_transmit_bytes >= +- (7 + sp_write_n_bytes + sp_device_serbuf_size)) +- sp_flush_stream(); ++ msg_pspew(MSGHEADER "Passing write-n bytes=%d addr=0x%x\n", sp_write_n_bytes, sp_write_n_addr); ++ if (sp_streamed_transmit_bytes >= (7 + sp_write_n_bytes + sp_device_serbuf_size)) { ++ if (sp_flush_stream() != 0) { ++ return 1; ++ } ++ } + /* In case it's just a single byte send it as a single write. */ + if (sp_write_n_bytes == 1) { + sp_write_n_bytes = 0; +@@ -673,9 +693,10 @@ static void sp_pass_writen(void) + header[1] = (sp_write_n_addr >> 8) & 0xFF; + header[2] = (sp_write_n_addr >> 16) & 0xFF; + header[3] = sp_write_n_buf[0]; +- sp_stream_buffer_op(S_CMD_O_WRITEB, 4, header); ++ if (sp_stream_buffer_op(S_CMD_O_WRITEB, 4, header) != 0) ++ return 1; + sp_opbuf_usage += 5; +- return; ++ return 0; + } + header[0] = S_CMD_O_WRITEN; + header[1] = (sp_write_n_bytes >> 0) & 0xFF; +@@ -684,39 +705,55 @@ static void sp_pass_writen(void) + header[4] = (sp_write_n_addr >> 0) & 0xFF; + header[5] = (sp_write_n_addr >> 8) & 0xFF; + header[6] = (sp_write_n_addr >> 16) & 0xFF; +- if (serialport_write(header, 7) != 0) +- sp_die("Error: cannot write write-n command\n"); +- if (serialport_write(sp_write_n_buf, sp_write_n_bytes) != 0) +- sp_die("Error: cannot write write-n data"); ++ if (serialport_write(header, 7) != 0) { ++ msg_perr(MSGHEADER "Error: cannot write write-n command\n"); ++ return 1; ++ } ++ if (serialport_write(sp_write_n_buf, sp_write_n_bytes) != 0) { ++ msg_perr(MSGHEADER "Error: cannot write write-n data"); ++ return 1; ++ } + sp_streamed_transmit_bytes += 7 + sp_write_n_bytes; + sp_streamed_transmit_ops += 1; + sp_opbuf_usage += 7 + sp_write_n_bytes; + sp_write_n_bytes = 0; + sp_prev_was_write = 0; ++ return 0; + } + +-static void sp_execute_opbuf_noflush(void) ++static int sp_execute_opbuf_noflush(void) + { +- if ((sp_max_write_n) && (sp_write_n_bytes)) +- sp_pass_writen(); +- sp_stream_buffer_op(S_CMD_O_EXEC, 0, NULL); +- msg_pspew(MSGHEADER "Executed operation buffer of %d bytes\n", +- sp_opbuf_usage); ++ if ((sp_max_write_n) && (sp_write_n_bytes)) { ++ if (sp_pass_writen() != 0) { ++ msg_perr("Error: could not transfer write buffer\n"); ++ return 1; ++ } ++ } ++ if (sp_stream_buffer_op(S_CMD_O_EXEC, 0, NULL) != 0) { ++ msg_perr("Error: could not execute command buffer\n"); ++ return 1; ++ } ++ msg_pspew(MSGHEADER "Executed operation buffer of %d bytes\n", sp_opbuf_usage); + sp_opbuf_usage = 0; + sp_prev_was_write = 0; +- return; ++ return 0; + } + +-static void sp_execute_opbuf(void) ++static int sp_execute_opbuf(void) + { +- sp_execute_opbuf_noflush(); +- sp_flush_stream(); ++ if (sp_execute_opbuf_noflush() != 0) ++ return 1; ++ if (sp_flush_stream() != 0) ++ return 1; ++ ++ return 0; + } + + static int serprog_shutdown(void *data) + { + if ((sp_opbuf_usage) || (sp_max_write_n && sp_write_n_bytes)) +- sp_execute_opbuf(); ++ if (sp_execute_opbuf() != 0) ++ msg_pwarn("Could not flush command buffer.\n"); + if (sp_check_commandavail(S_CMD_S_PIN_STATE)) { + uint8_t dis = 0; + if (sp_docommand(S_CMD_S_PIN_STATE, 1, &dis, 0, NULL) == 0) +@@ -731,14 +768,15 @@ static int serprog_shutdown(void *data) + return 0; + } + +-static void sp_check_opbuf_usage(int bytes_to_be_added) ++static int sp_check_opbuf_usage(int bytes_to_be_added) + { + if (sp_device_opbuf_size <= (sp_opbuf_usage + bytes_to_be_added)) { +- sp_execute_opbuf(); +- /* If this happens in the mid of an page load the page load * +- * will probably fail. */ +- msg_pdbg(MSGHEADER "Warning: executed operation buffer due to size reasons\n"); ++ /* If this happens in the middle of a page load the page load will probably fail. */ ++ msg_pwarn(MSGHEADER "Warning: executed operation buffer due to size reasons\n"); ++ if (sp_execute_opbuf() != 0) ++ return 1; + } ++ return 0; + } + + static void serprog_chip_writeb(const struct flashctx *flash, uint8_t val, +@@ -768,7 +806,7 @@ static void serprog_chip_writeb(const struct flashctx *flash, uint8_t val, + writeb_parm[1] = (addr >> 8) & 0xFF; + writeb_parm[2] = (addr >> 16) & 0xFF; + writeb_parm[3] = val; +- sp_stream_buffer_op(S_CMD_O_WRITEB, 4, writeb_parm); ++ sp_stream_buffer_op(S_CMD_O_WRITEB, 4, writeb_parm); // FIXME: return error + sp_opbuf_usage += 5; + } + } +@@ -785,16 +823,16 @@ static uint8_t serprog_chip_readb(const struct flashctx *flash, + buf[0] = ((addr >> 0) & 0xFF); + buf[1] = ((addr >> 8) & 0xFF); + buf[2] = ((addr >> 16) & 0xFF); +- sp_stream_buffer_op(S_CMD_R_BYTE, 3, buf); +- sp_flush_stream(); ++ sp_stream_buffer_op(S_CMD_R_BYTE, 3, buf); // FIXME: return error ++ sp_flush_stream(); // FIXME: return error + if (serialport_read(&c, 1) != 0) +- sp_die("readb byteread"); ++ msg_perr(MSGHEADER "readb byteread"); // FIXME: return error + msg_pspew("%s addr=0x%" PRIxPTR " returning 0x%02X\n", __func__, addr, c); + return c; + } + + /* Local version that really does the job, doesn't care of max_read_n. */ +-static void sp_do_read_n(uint8_t * buf, const chipaddr addr, size_t len) ++static int sp_do_read_n(uint8_t * buf, const chipaddr addr, size_t len) + { + unsigned char sbuf[6]; + msg_pspew("%s: addr=0x%" PRIxPTR " len=%zu\n", __func__, addr, len); +@@ -808,10 +846,13 @@ static void sp_do_read_n(uint8_t * buf, const chipaddr addr, size_t len) + sbuf[4] = ((len >> 8) & 0xFF); + sbuf[5] = ((len >> 16) & 0xFF); + sp_stream_buffer_op(S_CMD_R_NBYTES, 6, sbuf); +- sp_flush_stream(); +- if (serialport_read(buf, len) != 0) +- sp_die("Error: cannot read read-n data"); +- return; ++ if (sp_flush_stream() != 0) ++ return 1; ++ if (serialport_read(buf, len) != 0) { ++ msg_perr(MSGHEADER "Error: cannot read read-n data"); ++ return 1; ++ } ++ return 0; + } + + /* The externally called version that makes sure that max_read_n is obeyed. */ +@@ -821,12 +862,12 @@ static void serprog_chip_readn(const struct flashctx *flash, uint8_t * buf, + size_t lenm = len; + chipaddr addrm = addr; + while ((sp_max_read_n != 0) && (lenm > sp_max_read_n)) { +- sp_do_read_n(&(buf[addrm-addr]), addrm, sp_max_read_n); ++ sp_do_read_n(&(buf[addrm-addr]), addrm, sp_max_read_n); // FIXME: return error + addrm += sp_max_read_n; + lenm -= sp_max_read_n; + } + if (lenm) +- sp_do_read_n(&(buf[addrm-addr]), addrm, lenm); ++ sp_do_read_n(&(buf[addrm-addr]), addrm, lenm); // FIXME: return error + } + + void serprog_delay(int usecs) +@@ -858,11 +899,18 @@ static int serprog_spi_send_command(struct flashctx *flash, + unsigned char *parmbuf; + int ret; + msg_pspew("%s, writecnt=%i, readcnt=%i\n", __func__, writecnt, readcnt); +- if ((sp_opbuf_usage) || (sp_max_write_n && sp_write_n_bytes)) +- sp_execute_opbuf(); ++ if ((sp_opbuf_usage) || (sp_max_write_n && sp_write_n_bytes)) { ++ if (sp_execute_opbuf() != 0) { ++ msg_perr("Error: could not execute command buffer before sending SPI commands.\n"); ++ return 1; ++ } ++ } ++ + parmbuf = malloc(writecnt + 6); +- if (!parmbuf) +- sp_die("Error: cannot malloc SPI send param buffer"); ++ if (!parmbuf) { ++ msg_perr("Error: could not allocate SPI send param buffer.\n"); ++ return 1; ++ } + parmbuf[0] = (writecnt >> 0) & 0xFF; + parmbuf[1] = (writecnt >> 8) & 0xFF; + parmbuf[2] = (writecnt >> 16) & 0xFF; +@@ -879,8 +927,7 @@ static int serprog_spi_send_command(struct flashctx *flash, + /* FIXME: This function is optimized so that it does not split each transaction + * into chip page_size long blocks unnecessarily like spi_read_chunked. This has + * the advantage that it is much faster for most chips, but breaks those with +- * non-contiguous address space (like AT45DB161D). When spi_read_chunked is +- * fixed this method can be removed. */ ++ * non-continuous reads. When spi_read_chunked is fixed this method can be removed. */ + static int serprog_spi_read(struct flashctx *flash, uint8_t *buf, + unsigned int start, unsigned int len) + { +diff --git a/spi25.c b/spi25.c +index e001196..862a865 100644 +--- a/spi25.c ++++ b/spi25.c +@@ -679,7 +679,7 @@ int spi_block_erase_20(struct flashctx *flash, unsigned int addr, + + result = spi_send_multicommand(flash, cmds); + if (result) { +- msg_cerr("%s failed during command execution at address 0x%x\n", ++ msg_pdbg("%s failed during command execution at address 0x%x\n", + __func__, addr); + return result; + } +@@ -1128,13 +1128,9 @@ int default_spi_write_aai(struct flashctx *flash, uint8_t *buf, unsigned int sta + + + result = spi_send_multicommand(flash, cmds); +- if (result) { +- msg_cerr("%s failed during start command execution\n", +- __func__); +- /* FIXME: Should we send WRDI here as well to make sure the chip +- * is not in AAI mode? +- */ +- return result; ++ if (result != 0) { ++ msg_cerr("%s failed during start command execution: %d\n", __func__, result); ++ goto bailout; + } + while (spi_read_status_register(flash) & SPI_SR_WIP) + programmer_delay(10); +@@ -1146,16 +1142,21 @@ int default_spi_write_aai(struct flashctx *flash, uint8_t *buf, unsigned int sta + while (pos < start + len - 1) { + cmd[1] = buf[pos++ - start]; + cmd[2] = buf[pos++ - start]; +- spi_send_command(flash, JEDEC_AAI_WORD_PROGRAM_CONT_OUTSIZE, 0, +- cmd, NULL); ++ result = spi_send_command(flash, JEDEC_AAI_WORD_PROGRAM_CONT_OUTSIZE, 0, cmd, NULL); ++ if (result != 0) { ++ msg_cerr("%s failed during followup AAI command execution: %d\n", __func__, result); ++ goto bailout; ++ } + while (spi_read_status_register(flash) & SPI_SR_WIP) + programmer_delay(10); + } + +- /* Use WRDI to exit AAI mode. This needs to be done before issuing any +- * other non-AAI command. +- */ +- spi_write_disable(flash); ++ /* Use WRDI to exit AAI mode. This needs to be done before issuing any other non-AAI command. */ ++ result = spi_write_disable(flash); ++ if (result != 0) { ++ msg_cerr("%s failed to disable AAI mode.\n", __func__); ++ return SPI_GENERIC_ERROR; ++ } + + /* Write remaining byte (if any). */ + if (pos < start + len) { +@@ -1165,4 +1166,10 @@ int default_spi_write_aai(struct flashctx *flash, uint8_t *buf, unsigned int sta + } + + return 0; ++ ++bailout: ++ result = spi_write_disable(flash); ++ if (result != 0) ++ msg_cerr("%s failed to disable AAI mode.\n", __func__); ++ return SPI_GENERIC_ERROR; + } +diff --git a/spi25_statusreg.c b/spi25_statusreg.c +index 8fb7f2d..48fceb0 100644 +--- a/spi25_statusreg.c ++++ b/spi25_statusreg.c +@@ -270,7 +270,7 @@ static void spi_prettyprint_status_register_bp(uint8_t status, int bp) + } + + /* Unnamed bits. */ +-static void spi_prettyprint_status_register_bit(uint8_t status, int bit) ++void spi_prettyprint_status_register_bit(uint8_t status, int bit) + { + msg_cdbg("Chip status register: Bit %i is %sset\n", bit, (status & (1 << bit)) ? "" : "not "); + } +diff --git a/stm50.c b/stm50.c +new file mode 100644 +index 0000000..edcfdd2 +--- /dev/null ++++ b/stm50.c +@@ -0,0 +1,115 @@ ++/* ++ * This file is part of the flashrom project. ++ * ++ * Copyright (C) 2008 Claus Gindhart ++ * Copyright (C) 2009 Sean Nelson ++ * Copyright (C) 2013 Stefan Tauner ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++/* ++ * All ST M50 chips are locked on startup. Most of them have a uniform 64 kB block layout, but some have ++ * a non-uniform block/sector segmentation which has to be handled with more care. Some of the non-uniform ++ * chips support erasing of the 4 kB sectors with another command. ++ */ ++ ++#include "flash.h" ++#include "flashchips.h" ++#include "chipdrivers.h" ++ ++static int stm50_unlock_address(struct flashctx *flash, int offset) ++{ ++ chipaddr wrprotect = flash->virtual_registers + 2; ++ static const uint8_t unlock_sector = 0x00; ++ msg_cdbg("unlocking at 0x%x\n", offset); ++ chip_writeb(flash, unlock_sector, wrprotect + offset); ++ if (chip_readb(flash, wrprotect + offset) != unlock_sector) { ++ msg_cerr("Cannot unlock address 0x%x\n", offset); ++ return -1; ++ } ++ return 0; ++} ++ ++/* Chips known to use a non-uniform block and sector layout for locking (as well as for erasing): ++ * Name Size Address range of lock registers ++ * M50FLW080A 1MB FFB00002 - FFBFF002 ++ * M50FLW080B 1MB FFB00002 - FFBFF002 ++ * M50FW002 256k FFBC0002 - FFBFC002 ++ * M50LPW116 2MB FFA00002 - FFBFC002 ++ */ ++int unlock_stm50_nonuniform(struct flashctx *flash) ++{ ++ int i; ++ struct eraseblock *eraseblocks = flash->chip->block_erasers[0].eraseblocks; ++ unsigned int done = 0; ++ for (i = 0; i < NUM_ERASEREGIONS && eraseblocks[i].count != 0; i++) { ++ unsigned int block_size = eraseblocks[i].size; ++ unsigned int block_count = eraseblocks[i].count; ++ ++ int j; ++ for (j = 0; j < block_count; j++) { ++ if (stm50_unlock_address(flash, done)) { ++ msg_cerr("UNLOCK FAILED!\n"); ++ return -1; ++ } ++ done += block_count * block_size; ++ } ++ } ++ return 0; ++} ++ ++/* Unlocking for uniform 64 kB blocks starting at offset 2 of the feature registers. */ ++int unlock_stm50_uniform(struct flashctx *flash) ++{ ++ int i; ++ for (i = 0; i < flash->chip->total_size * 1024; i+= 64 * 1024) { ++ if (stm50_unlock_address(flash, i)) { ++ msg_cerr("UNLOCK FAILED!\n"); ++ return -1; ++ } ++ } ++ return 0; ++} ++ ++static int stm50_erase_sector(struct flashctx *flash, unsigned int addr) ++{ ++ chipaddr bios = flash->virtual_memory + addr; ++ ++ // clear status register ++ chip_writeb(flash, 0x50, bios); ++ // now start it ++ chip_writeb(flash, 0x32, bios); ++ chip_writeb(flash, 0xd0, bios); ++ programmer_delay(10); ++ ++ uint8_t status = wait_82802ab(flash); ++ print_status_82802ab(status); ++ ++ return status == 0x80; ++} ++ ++/* Some ST M50* chips do support erasing of sectors. This function will derive the erase function to use from ++ * the length of the of the block. For calls that apparently do not address a sector (but a block) we just call ++ * the block erase function instead. FIXME: This duplicates the behavior of the remaining erasers for blocks and ++ * might be fixed when flashrom supports multiple functions per eraser or erasers that do erase parts of the ++ * chip only. */ ++int erase_sector_stm50(struct flashctx *flash, unsigned int addr, unsigned int len) ++{ ++ if (len == 4096) ++ return stm50_erase_sector(flash, addr); ++ else ++ return erase_block_82802ab(flash, addr, len); ++} +diff --git a/udelay.c b/udelay.c +index e3cf3e3..9d3bfc2 100644 +--- a/udelay.c ++++ b/udelay.c +@@ -90,7 +90,11 @@ void myusec_calibrate_delay(void) + unsigned long timeusec, resolution; + int i, tries = 0; + ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg("Calibrating delay loop... "); ++#else + msg_pinfo("Calibrating delay loop... "); ++#endif + resolution = measure_os_delay_resolution(); + if (resolution) { + msg_pdbg("OS timer resolution is %lu usecs, ", resolution); +@@ -151,7 +155,7 @@ recalibrate: + } + } + } else { +- msg_perr("delay loop is unreliable, trying to continue "); ++ msg_pdbg("delay loop is unreliable, trying to continue "); + } + + /* We're interested in the actual precision. */ +@@ -166,7 +170,11 @@ recalibrate: + timeusec = measure_delay(resolution * 4); + msg_pdbg("%ld myus = %ld us, ", resolution * 4, timeusec); + ++#ifdef FORCE10_SPI_CHANGE ++ msg_pdbg("OK.\n"); ++#else + msg_pinfo("OK.\n"); ++#endif + } + + /* Not very precise sleep. */ +diff --git a/util/getrevision.sh b/util/getrevision.sh +new file mode 100755 +index 0000000..709e45f +--- /dev/null ++++ b/util/getrevision.sh +@@ -0,0 +1,311 @@ ++#!/bin/sh ++# ++# This file is part of the flashrom project. ++# ++# Copyright (C) 2005 coresystems GmbH ++# Copyright (C) 2009,2010 Carl-Daniel Hailfinger ++# Copyright (C) 2010 Chromium OS Authors ++# Copyright (C) 2013 Stefan Tauner ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++# ++ ++EXIT_SUCCESS=0 ++EXIT_FAILURE=1 ++ ++# Make sure we don't get translated output ++export LC_ALL=C ++# nor local times or dates ++export TZ=UTC0 ++ ++# Helper functions ++# First argument is the path to inspect (usually optional; w/o it the whole repository will be considered) ++svn_has_local_changes() { ++ svn status "$1" | egrep '^ *[ADMR] *' >/dev/null ++} ++ ++git_has_local_changes() { ++ git update-index -q --refresh >/dev/null ++ ! git diff-index --quiet HEAD -- "$1" ++} ++ ++git_last_commit() { ++ git log --pretty=format:"%h" -1 -- "$1" ++} ++ ++svn_is_file_tracked() { ++ svn info "$1" >/dev/null 2>&1 ++} ++ ++git_is_file_tracked() { ++ git ls-files --error-unmatch -- "$1" >/dev/null 2>&1 ++} ++ ++is_file_tracked() { ++ svn_is_file_tracked "$1" || git_is_file_tracked "$1" ++} ++ ++# Tries to find a remote source for the changes committed locally. ++# This includes the URL of the remote repository including the last commit and a suitable branch name. ++# Takes one optional argument: the path to inspect ++git_url() { ++ last_commit=$(git_last_commit "$1") ++ # get all remote branches containing the last commit (excluding origin/HEAD and git-svn branches/tags) ++ branches=$(git branch -r --contains $last_commit | sed '/\//!d;/.*->.*/d;s/[\t ]*//') ++ if [ -z "$branches" ] ; then ++ echo "No remote branch contains a suitable commit">&2 ++ return ++ fi ++ ++ # find "nearest" branch ++ local mindiff=9000 ++ local target= ++ for branch in $branches ; do ++ curdiff=$(git rev-list --count $last_commit..$branch) ++ if [ $curdiff -ge $mindiff ] ; then ++ continue ++ fi ++ mindiff=$curdiff ++ target=$branch ++ done ++ ++ echo "$(git ls-remote --exit-code --get-url ${target%/*}) ${target#*/}" ++} ++ ++# Returns a string indicating where others can get the current source code (excluding uncommitted changes) ++# Takes one optional argument: the path to inspect ++scm_url() { ++ local url= ++ ++ # for a primitive VCS like subversion finding the URL is easy: there is only one upstream host ++ if svn_is_file_tracked "$1" ; then ++ url="$(svn info "$1" 2>/dev/null | ++ grep URL: | ++ sed 's/.*URL:[[:blank:]]*//;s/:\/\/.*@/:\/\//' | ++ grep ^.)" ++ elif git_is_file_tracked "$1" ; then ++ url="$(git_url "$1")" ++ else ++ return ${EXIT_FAILURE} ++ fi ++ ++ echo "${url}" ++} ++ ++# Retrieve timestamp since last modification. If the sources are pristine, ++# then the timestamp will match that of the SCM's most recent modification ++# date. ++timestamp() { ++ local t ++ ++ # date syntaxes are manifold: ++ # gnu date [-d input]... [+FORMAT] ++ # netbsd date [-ajnu] [-d date] [-r seconds] [+format] [[[[[[CC]yy]mm]dd]HH]MM[.SS]] ++ # freebsd date [-jnu] [-d dst] [-r seconds] [-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format] [...] ++ # dragonflybsd date [-jnu] [-d dst] [-r seconds] [-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format] [...] ++ # openbsd date [-aju] [-d dst] [-r seconds] [+format] [[[[[[cc]yy]mm]dd]HH]MM[.SS]] [...] ++ if svn_is_file_tracked "$2" ; then ++ if svn_has_local_changes "$2"; then ++ t=$(date -u "$1") ++ else ++ # No local changes, get date of the last log record. Subversion provides that in ++ # ISO 8601 format when using the --xml switch. The sed call extracts that ignoring any ++ # fractional parts started by a comma or a dot. ++ local last_commit_date="$(svn info --xml "$2"| \ ++ sed -n -e 's/\([^,\.]*\)\([\.,].*\)*Z<\/date>/\1Z/p')" ++ ++ case $(uname) in ++ # Most BSD dates do not support parsing date values from user input with -d but all of ++ # them support parsing the syntax with [[[[[[cc]yy]mm]dd]HH]MM[.ss]]. We have to ++ # transform the ISO8601 date first though. ++ NetBSD|OpenBSD|DragonFly|FreeBSD) ++ last_commit_date="$(echo ${last_commit_date} | \ ++ sed -n -e 's/\(....\)-\(..\)-\(..\)T\(..\):\(..\):\(..\)Z/\1\2\3\4\5\.\6/p')" ++ t=$(date -u -j "${last_commit_date}" "$1" 2>/dev/null);; ++ *) ++ t=$(date -u -d "${last_commit_date}" "$1" 2>/dev/null);; ++ esac ++ fi ++ elif git_is_file_tracked "$2" ; then ++ # are there local changes? ++ if git_has_local_changes "$2" ; then ++ t=$(date -u "${1}") ++ else ++ # No local changes, get date of the last commit ++ case $(uname) in ++ # Most BSD dates do not support parsing date values from user input with -d but all of ++ # them support parsing epoch seconds with -r. Thanks to git we can easily use that: ++ NetBSD|OpenBSD|DragonFly|FreeBSD) ++ t=$(date -u -r "$(git log --pretty=format:%ct -1 -- $2)" "$1" 2>/dev/null);; ++ *) ++ t=$(date -d "$(git log --pretty=format:%cD -1 -- $2)" -u "$1" 2>/dev/null);; ++ esac ++ fi ++ else ++ t=$(date -u "$1") ++ fi ++ ++ if [ -z "$t" ]; then ++ echo "Warning: Could not determine timestamp." 2>/dev/null ++ fi ++ echo "${t}" ++} ++ ++# Retrieve local SCM revision info. This is useful if we're working in a different SCM than upstream and/or ++# have local changes. ++local_revision() { ++ local r= ++ ++ if svn_is_file_tracked "$1" ; then ++ r=$(svn_has_local_changes "$1" && echo "dirty") ++ elif git_is_file_tracked "$1" ; then ++ r=$(git_last_commit "$1") ++ ++ local svn_base=$(git log --grep git-svn-id -1 --format='%h') ++ if [ "$svn_base" != "" ] ; then ++ local diff_to_svn=$(git rev-list --count ${svn_base}..${r}) ++ if [ "$diff_to_svn" -gt 0 ] ; then ++ r="$r-$diff_to_svn" ++ fi ++ fi ++ ++ if git_has_local_changes "$1" ; then ++ r="$r-dirty" ++ fi ++ else ++ return ${EXIT_FAILURE} ++ fi ++ ++ echo "${r}" ++} ++ ++# Get the upstream flashrom revision stored in SVN metadata. ++upstream_revision() { ++ local r= ++ ++ if svn_is_file_tracked "$1" ; then ++ r=$(svn info "$1" 2>/dev/null | \ ++ grep "Last Changed Rev:" | \ ++ sed -e "s/^Last Changed Rev: *//" -e "s/\([0-9]*\).*/r\1/" | \ ++ grep "r[0-9]") ++ elif git_is_file_tracked "$1" ; then ++ # If this is a "native" git-svn clone we could use git svn log: ++ # git svn log --oneline -1 | sed 's/^r//;s/[[:blank:]].*//' or even git svn find-rev ++ # but it is easier to just grep for the git-svn-id unconditionally ++ r=$(git log --grep git-svn-id -1 -- "$1" | \ ++ grep git-svn-id | \ ++ sed 's/.*@/r/;s/[[:blank:]].*//') ++ fi ++ ++ if [ -z "$r" ]; then ++ r="unknown" # default to unknown ++ fi ++ echo "${r}" ++} ++ ++show_help() { ++ echo "Usage: ++ ${0} [path] ++ ++Commands ++ -h or --help ++ this message ++ -l or --local ++ local revision information including an indicator for uncommitted changes ++ -u or --upstream ++ upstream revision ++ -U or --url ++ URL associated with the latest commit ++ -d or --date ++ date of most recent modification ++ -t or --timestamp ++ timestamp of most recent modification ++" ++ return ++} ++ ++check_action() { ++ if [ -n "$action" ]; then ++ echo "Error: Multiple actions given.">&2 ++ exit ${EXIT_FAILURE} ++ fi ++} ++ ++main() { ++ local query_path= ++ local action= ++ ++ # The is the main loop ++ while [ $# -gt 0 ]; ++ do ++ case ${1} in ++ -h|--help) ++ action=show_help; ++ shift;; ++ -l|--local) ++ check_action $1 ++ action=local_revision ++ shift;; ++ -u|--upstream) ++ check_action $1 ++ action=upstream_revision ++ shift;; ++ -U|--url) ++ check_action $1 ++ action=scm_url ++ shift;; ++ -d|--date) ++ check_action $1 ++ action="timestamp +%Y-%m-%d" # refrain from suffixing 'Z' to indicate it's UTC ++ shift;; ++ -t|--timestamp) ++ check_action $1 ++ action="timestamp +%Y-%m-%dT%H:%M:%SZ" # There is only one valid time format! ISO 8601 ++ shift;; ++ -*) ++ show_help; ++ echo "Error: Invalid option: ${1}" ++ exit ${EXIT_FAILURE};; ++ *) ++ if [ -z "$query_path" ] ; then ++ if [ ! -e "$1" ] ; then ++ echo "Error: Path \"${1}\" does not exist.">&2 ++ exit ${EXIT_FAILURE} ++ fi ++ query_path=$1 ++ else ++ echo "Warning: Ignoring over-abundant paramter: \"${1}\"">&2 ++ fi ++ shift;; ++ esac; ++ done ++ ++ # default to current directory (usually equals the whole repository) ++ if [ -z "$query_path" ] ; then ++ query_path=. ++ fi ++ if ! is_file_tracked "$query_path" ; then ++ echo "Warning: Path \"${query_path}\" is not under version control.">&2 ++ fi ++ if [ -z "$action" ] ; then ++ show_help ++ echo "Error: No actions specified" ++ exit ${EXIT_FAILURE} ++ fi ++ ++ $action "$query_path" ++} ++ ++main $@ +diff --git a/util/ich_descriptors_tool/ich_descriptors_tool.c b/util/ich_descriptors_tool/ich_descriptors_tool.c +index c359913..dd35860 100644 +--- a/util/ich_descriptors_tool/ich_descriptors_tool.c ++++ b/util/ich_descriptors_tool/ich_descriptors_tool.c +@@ -77,12 +77,13 @@ static void dump_file(const char *prefix, const uint32_t *dump, unsigned int len + printf("Dumping %u bytes of the %s region from 0x%08x-0x%08x to %s... ", + file_len, region_names[i], base, limit, fn); + int fh = open(fn, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); +- free(fn); + if (fh < 0) { + fprintf(stderr, + "ERROR: couldn't open(%s): %s\n", fn, strerror(errno)); ++ free(fn); + exit(1); + } ++ free(fn); + + ret = write(fh, &dump[base >> 2], file_len); + if (ret != file_len) { +@@ -120,6 +121,7 @@ static void usage(char *argv[], char *error) + "\t- \"5\" or \"ibex\" for Intel's 5 series chipsets,\n" + "\t- \"6\" or \"cougar\" for Intel's 6 series chipsets,\n" + "\t- \"7\" or \"panther\" for Intel's 7 series chipsets.\n" ++"\t- \"avoton\",\n" + "If '-d' is specified some regions such as the BIOS image as seen by the CPU or\n" + "the GbE blob that is required to initialize the GbE are also dumped to files.\n", + argv[0], argv[0]); +@@ -197,6 +199,10 @@ int main(int argc, char *argv[]) + else if ((strcmp(csn, "7") == 0) || + (strcmp(csn, "panther") == 0)) + cs = CHIPSET_7_SERIES_PANTHER_POINT; ++#ifdef DELL_AVOTON_SUPPORT ++ else if (strcmp(csn, "avoton") == 0) ++ cs = CHIPSET_AVOTON; ++#endif + } + + ret = read_ich_descriptors_from_dump(buf, len, &desc); +diff --git a/util/z60_flashrom.rules b/util/z60_flashrom.rules +index 8456a04..948563c 100644 +--- a/util/z60_flashrom.rules ++++ b/util/z60_flashrom.rules +@@ -80,4 +80,8 @@ ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002a", MODE="664", GROUP="plugdev" + # http://www.diygadget.com/tiao-usb-multi-protocol-adapter-jtag-spi-i2c-serial.html + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a98", MODE="664", GROUP="plugdev" + ++# TIAO/DIYGADGET USB Multi-Protocol Adapter (TUMPA) Lite ++# http://www.tiaowiki.com/w/TIAO_USB_Multi_Protocol_Adapter_Lite_User's_Manual ++ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a99", MODE="664", GROUP="plugdev" ++ + LABEL="flashrom_rules_end" +-- +2.7.4 + diff --git a/platform/broadcom/sonic-platform-modules-dell/tools/flashrom.sh b/platform/broadcom/sonic-platform-modules-dell/tools/flashrom.sh new file mode 100755 index 0000000000..c3af65fd6d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-dell/tools/flashrom.sh @@ -0,0 +1,10 @@ +#!/bin/bash +export DELL_TOOLS_DIR="platform/broadcom/sonic-platform-modules-dell/tools" + +cd $DELL_TOOLS_DIR +rm -rf $DELL_TOOLS_DIR/flashrom +git clone https://github.com/flashrom/flashrom.git +cd flashrom +git checkout tags/0.9.7 +git apply ../0002-Flashrom-support-for-Intel-Rangeley-and-Denverton-CP.patch +make From 892473981e9abfe76c9102852b324cbf367673ff Mon Sep 17 00:00:00 2001 From: Samuel Angebault Date: Fri, 23 Aug 2019 11:55:24 -0700 Subject: [PATCH 10/43] [device/arista] Update drivers submodules (#3378) - increase timeout for power supply driver initialization --- platform/barefoot/sonic-platform-modules-arista | 2 +- platform/broadcom/sonic-platform-modules-arista | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/barefoot/sonic-platform-modules-arista b/platform/barefoot/sonic-platform-modules-arista index 8c45a8e111..7b39cf3400 160000 --- a/platform/barefoot/sonic-platform-modules-arista +++ b/platform/barefoot/sonic-platform-modules-arista @@ -1 +1 @@ -Subproject commit 8c45a8e111534f9d4337d3552eaf08881fb19d30 +Subproject commit 7b39cf3400dd728494b91810db9cc82542a22584 diff --git a/platform/broadcom/sonic-platform-modules-arista b/platform/broadcom/sonic-platform-modules-arista index 8c45a8e111..7b39cf3400 160000 --- a/platform/broadcom/sonic-platform-modules-arista +++ b/platform/broadcom/sonic-platform-modules-arista @@ -1 +1 @@ -Subproject commit 8c45a8e111534f9d4337d3552eaf08881fb19d30 +Subproject commit 7b39cf3400dd728494b91810db9cc82542a22584 From 97b43f96bb81cd727f94c0fbbaabaa042f7c948c Mon Sep 17 00:00:00 2001 From: Stephen Sun <5379172+stephenxs@users.noreply.github.com> Date: Sat, 24 Aug 2019 02:58:03 +0800 Subject: [PATCH 11/43] [mlnx_platform_api.thermal]align thermal sensor names with hw-management v2.0.0191 (#3371) temp_xxxx_module{} => module{}_temp_xxxx --- platform/mellanox/mlnx-platform-api/sonic_platform/thermal.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/thermal.py b/platform/mellanox/mlnx-platform-api/sonic_platform/thermal.py index 5195d378a4..6614e368e5 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/thermal.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/thermal.py @@ -49,8 +49,8 @@ thermal_api_handler_cpu_pack = { THERMAL_API_GET_HIGH_THRESHOLD:"cpu_pack_max" } thermal_api_handler_module = { - THERMAL_API_GET_TEMPERATURE:"temp_input_module{}", - THERMAL_API_GET_HIGH_THRESHOLD:"temp_crit_module{}" + THERMAL_API_GET_TEMPERATURE:"module{}_temp_input", + THERMAL_API_GET_HIGH_THRESHOLD:"module{}_temp_crit" } thermal_api_handler_psu = { THERMAL_API_GET_TEMPERATURE:"psu{}_temp", From f238042471f7c7aa2a83ca8c52b2fa97b0e916a5 Mon Sep 17 00:00:00 2001 From: Aravind Mani <53524901+aravindmani-1@users.noreply.github.com> Date: Sat, 24 Aug 2019 00:30:37 +0530 Subject: [PATCH 12/43] Z9264f-LED_changes (#3376) Updated z9264_platform.sh to change appropriate LED when HWSKU is changed. --- .../debian/platform-modules-z9264f.init | 2 +- .../z9264f/scripts/z9264f_platform.sh | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-z9264f.init b/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-z9264f.init index cc83662e77..fb0b681179 100755 --- a/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-z9264f.init +++ b/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-z9264f.init @@ -22,7 +22,7 @@ start) ;; stop) - /usr/local/bin/z9100_platform.sh deinit + /usr/local/bin/z9264f_platform.sh deinit echo "done." ;; diff --git a/platform/broadcom/sonic-platform-modules-dell/z9264f/scripts/z9264f_platform.sh b/platform/broadcom/sonic-platform-modules-dell/z9264f/scripts/z9264f_platform.sh index 880ba98abb..9fd925f2b9 100755 --- a/platform/broadcom/sonic-platform-modules-dell/z9264f/scripts/z9264f_platform.sh +++ b/platform/broadcom/sonic-platform-modules-dell/z9264f/scripts/z9264f_platform.sh @@ -85,6 +85,22 @@ switch_board_modsel() { python /usr/bin/pcisysfs.py --set --offset $hex --val 0x10 --res $resource > /dev/null 2>&1 done } + +# Copy led_proc_init.soc file according to the HWSKU +init_switch_port_led() { + device="/usr/share/sonic/device" + platform=$(/usr/local/bin/sonic-cfggen -H -v DEVICE_METADATA.localhost.platform) + hwsku=$(cat /etc/sonic/config_db.json | grep "hwsku" | cut -d ":" -f2 | sed 's/"//g' | sed 's/,//g'| xargs ) + + led_proc_init="$device/$platform/$hwsku/led_proc_init.soc" + # Remove old HWSKU LED file.. + rm -rf $device/$platform/led_proc_init.soc + + if [ -e $led_proc_init ] && [ ! -e $device/$platform/led_proc_init.soc ]; then + cp $led_proc_init $device/$platform/ + fi +} + init_devnum if [ "$1" == "init" ]; then @@ -98,6 +114,7 @@ if [ "$1" == "init" ]; then switch_board_qsfp_mux "new_device" switch_board_qsfp "new_device" switch_board_modsel + init_switch_port_led python /usr/bin/qsfp_irq_enable.py elif [ "$1" == "deinit" ]; then From 4aadbbefafddafc83edfebd78d06324ab8474af9 Mon Sep 17 00:00:00 2001 From: Kebo Liu Date: Sat, 24 Aug 2019 03:02:36 +0800 Subject: [PATCH 13/43] remove platform_wait script from mellanox simx platform (#3380) mellanox simx platform don't have QSFP sysfs created, this script will cause timeout issue on simx platform Signed-off-by: Kebo Liu --- device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_wait | 1 - device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_wait | 1 - 2 files changed, 2 deletions(-) delete mode 120000 device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_wait delete mode 120000 device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_wait diff --git a/device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_wait b/device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_wait deleted file mode 120000 index 4b30bd4298..0000000000 --- a/device/mellanox/x86_64-mlnx_msn2700_simx-r0/platform_wait +++ /dev/null @@ -1 +0,0 @@ -../x86_64-mlnx_msn2700-r0/platform_wait \ No newline at end of file diff --git a/device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_wait b/device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_wait deleted file mode 120000 index 685dfb8437..0000000000 --- a/device/mellanox/x86_64-mlnx_msn3700_simx-r0/platform_wait +++ /dev/null @@ -1 +0,0 @@ -../x86_64-mlnx_msn3700-r0/platform_wait \ No newline at end of file From 9e44070ffa6482c99e5fce2c981294363c017375 Mon Sep 17 00:00:00 2001 From: "ruijie.com.cn" Date: Tue, 27 Aug 2019 01:35:41 +0800 Subject: [PATCH 14/43] [doc]: use docker without sudo (#3336) Users can install docker with sudo, and it requires sudo to issue docker command. This will cause few errors in Makefile.work which need use docker without sudo. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 9c486e4120..afa26457fe 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,11 @@ Install pip and jinja in host build machine, execute below commands if j2/j2cli sudo pip install --force-reinstall --upgrade jinja2>=2.10 sudo pip install j2cli +Configure your system to allow running the 'docker' command without 'sudo': + Add current user to the docker group + `sudo gpasswd -a ${USER} docker` + Log out and log back in so that your group membership is re-evaluated + ## SAI Version Please refer to [SONiC roadmap](https://github.com/Azure/SONiC/wiki/Sonic-Roadmap-Planning) on the SAI version for each SONiC release. From 1840bef1a185695189588530e16443ea3321ad8b Mon Sep 17 00:00:00 2001 From: zzhiyuan Date: Wed, 28 Aug 2019 08:44:13 -0700 Subject: [PATCH 15/43] [devices]: Add serdes tuning for Arista 7060PX4 32x400G (#3382) --- .../th3-a7060px4-o32-32x400G.config.bcm | 34 +++++++++++++++++++ src/sonic-device-data/tests/config_checker | 2 +- src/sonic-device-data/tests/permitted_list | 1 + 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/device/arista/x86_64-arista_7060px4_32/Arista-7060PX4-O32/th3-a7060px4-o32-32x400G.config.bcm b/device/arista/x86_64-arista_7060px4_32/Arista-7060PX4-O32/th3-a7060px4-o32-32x400G.config.bcm index 5cb507321b..d3a66dee63 100644 --- a/device/arista/x86_64-arista_7060px4_32/Arista-7060PX4-O32/th3-a7060px4-o32-32x400G.config.bcm +++ b/device/arista/x86_64-arista_7060px4_32/Arista-7060PX4-O32/th3-a7060px4-o32-32x400G.config.bcm @@ -815,3 +815,37 @@ serdes_core_tx_polarity_flip_physical{233}=0x36 serdes_core_tx_polarity_flip_physical{241}=0xc6 serdes_core_tx_polarity_flip_physical{249}=0xc3 serdes_core_tx_polarity_flip_physical{257}=0x0 +serdes_tx_taps_cd0=pam4:-28:124:-12:4:0:0 +serdes_tx_taps_cd1=pam4:-28:124:-12:4:0:0 +serdes_tx_taps_cd2=pam4:-28:124:-12:4:0:0 +serdes_tx_taps_cd3=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd4=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd5=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd6=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd7=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd8=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd9=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd10=pam4:-28:124:0:4:0:0 +serdes_tx_taps_cd11=pam4:-28:124:0:4:0:0 +serdes_tx_taps_cd12=pam4:-28:124:0:4:0:0 +serdes_tx_taps_cd13=pam4:-28:124:0:4:0:0 +serdes_tx_taps_cd14=pam4:-28:124:0:4:0:0 +serdes_tx_taps_cd15=pam4:-28:124:0:4:0:0 +serdes_tx_taps_cd16=pam4:-28:124:0:4:0:0 +serdes_tx_taps_cd17=pam4:-28:124:0:4:0:0 +serdes_tx_taps_cd18=pam4:-28:124:0:4:0:0 +serdes_tx_taps_cd19=pam4:-28:124:0:4:0:0 +serdes_tx_taps_cd20=pam4:-28:124:0:4:0:0 +serdes_tx_taps_cd21=pam4:-28:124:0:4:0:0 +serdes_tx_taps_cd22=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd23=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd24=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd25=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd26=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd27=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd28=pam4:-28:120:-4:4:0:0 +serdes_tx_taps_cd29=pam4:-28:124:-12:4:0:0 +serdes_tx_taps_cd30=pam4:-28:124:-12:4:0:0 +serdes_tx_taps_cd31=pam4:-28:124:-12:4:0:0 +serdes_tx_taps_cd32=pam4:1:34:9:0:0:0 +serdes_tx_taps_cd33=pam4:1:34:9:0:0:0 diff --git a/src/sonic-device-data/tests/config_checker b/src/sonic-device-data/tests/config_checker index 29f1ba3cd7..a0e3b0cbd4 100755 --- a/src/sonic-device-data/tests/config_checker +++ b/src/sonic-device-data/tests/config_checker @@ -33,7 +33,7 @@ def check_file(file_name): # Remove trailing unit ".$" p = re.sub(r"\.[0-9]+$", '', p) # Remove trailing port name - p = re.sub(r"_[cxg]e(\d+)?$", '', p) + p = re.sub(r"_[cxg][de](\d+)?$", '', p) # Remove trailing port id "{id/number}" p = re.sub(r"\{.*\}", '', p) # Remove trailing port name example diff --git a/src/sonic-device-data/tests/permitted_list b/src/sonic-device-data/tests/permitted_list index 6e5a066fff..47eea9fa9d 100644 --- a/src/sonic-device-data/tests/permitted_list +++ b/src/sonic-device-data/tests/permitted_list @@ -132,6 +132,7 @@ serdes_pre_driver_current serdes_preemphasis serdes_rx_los serdes_sgmii_m +serdes_tx_taps skip_L2_USER_ENTRY sram_scan_enable stable_size From 14458b79ba057635824fe0b0c64914f743f4751f Mon Sep 17 00:00:00 2001 From: Renuka Manavalan <47282725+renukamanavalan@users.noreply.github.com> Date: Wed, 28 Aug 2019 09:29:48 -0700 Subject: [PATCH 16/43] Create the src archive in target/ when INSTALL_DEBUG_TOOLS=y (#3323) * Create the src archive in target/ when INSTALL_DEBUG_TOOLS=y * Dropped -v (verbose flag) from tar command --- build_debian.sh | 5 +---- scripts/dbg_files.sh | 11 +++++++---- slave.mk | 7 ++++++- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/build_debian.sh b/build_debian.sh index 126a8ee329..58abc0154c 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -488,10 +488,7 @@ then sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c "echo '/debug is mounted in each docker' >> /etc/motd" sudo mkdir -p $FILESYSTEM_ROOT/src - pushd src - ../scripts/dbg_files.sh | sudo tar -cvzf ../$FILESYSTEM_ROOT/src/sonic_src.tar.gz -T - - popd - + sudo cp $DEBUG_SRC_ARCHIVE_FILE $FILESYSTEM_ROOT/src/ sudo mkdir -p $FILESYSTEM_ROOT/debug fi diff --git a/scripts/dbg_files.sh b/scripts/dbg_files.sh index 1515639bc9..6624fca83f 100755 --- a/scripts/dbg_files.sh +++ b/scripts/dbg_files.sh @@ -2,8 +2,11 @@ # Provide file paths to archive for debug image as relative to src subdir # -for i in $debug_src_archive -do - find $i/ -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" -type f -done +if [ "$DEBUG_IMG" == "y" ] +then + for i in $DEBUG_SRC_ARCHIVE_DIRS + do + find src/$i/ -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" -type f + done | tar -czf $DEBUG_SRC_ARCHIVE_FILE -T - +fi diff --git a/slave.mk b/slave.mk index 15e3f7738e..6a52b71507 100644 --- a/slave.mk +++ b/slave.mk @@ -37,6 +37,7 @@ PROJECT_ROOT = $(shell pwd) STRETCH_DEBS_PATH = $(TARGET_PATH)/debs/stretch STRETCH_FILES_PATH = $(TARGET_PATH)/files/stretch DBG_IMAGE_MARK = dbg +DBG_SRC_ARCHIVE_FILE = $(TARGET_PATH)/sonic_src.tar.gz CONFIGURED_PLATFORM := $(shell [ -f .platform ] && cat .platform || echo generic) PLATFORM_PATH = platform/$(CONFIGURED_PLATFORM) @@ -667,9 +668,13 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ chmod +x sonic_debian_extension.sh, ) - export debug_src_archive="$(DBG_SRC_ARCHIVE)" + DEBUG_IMG="$(INSTALL_DEBUG_TOOLS)" \ + DEBUG_SRC_ARCHIVE_DIRS="$(DBG_SRC_ARCHIVE)" \ + DEBUG_SRC_ARCHIVE_FILE="$(DBG_SRC_ARCHIVE_FILE)" \ + scripts/dbg_files.sh DEBUG_IMG="$(INSTALL_DEBUG_TOOLS)" \ + DEBUG_SRC_ARCHIVE_FILE="$(DBG_SRC_ARCHIVE_FILE)" \ USERNAME="$(USERNAME)" \ PASSWORD="$(PASSWORD)" \ ./build_debian.sh $(LOG) From bdce2014673c875c91be4f6a0b75abcde8d1978c Mon Sep 17 00:00:00 2001 From: "arheneus@marvell.com" <51254330+antony-rheneus@users.noreply.github.com> Date: Wed, 28 Aug 2019 22:03:03 +0530 Subject: [PATCH 17/43] [Makefile] Multiarch docker service cleanup at make reset (#3366) * [Makefile] make reset target changed to ONESHELL and multiarch docker stop has been added in reset Signed-off-by: Antony Rheneus --- Makefile.work | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/Makefile.work b/Makefile.work index 389f3f7c83..f2e6c7bea5 100644 --- a/Makefile.work +++ b/Makefile.work @@ -227,18 +227,24 @@ init : @git submodule update --init --recursive @git submodule foreach --recursive '[ -f .git ] && echo "gitdir: $$(realpath --relative-to=. $$(cut -d" " -f2 .git))" > .git' +.ONESHELL : reset reset : @echo && echo -n "Warning! All local changes will be lost. Proceed? [y/N]: " - @read ans && \ - if [ $$ans == y ]; then \ - echo "Resetting local repository. Please wait..."; \ - $(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) sudo rm -rf fsroot; \ - git clean -xfdf; \ - git reset --hard; \ - git submodule foreach --recursive git clean -xfdf; \ - git submodule foreach --recursive git reset --hard; \ - git submodule update --init --recursive; \ - echo "Reset complete!"; \ - else \ - echo "Reset aborted"; \ - fi + @read ans && ( + if [ $$ans == y ]; then + echo "Resetting local repository. Please wait..."; + $(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) sudo rm -rf fsroot; + if [[ "$(CONFIGURED_ARCH)" == "armhf" || "$(CONFIGURED_ARCH)" == "arm64" ]]; then + echo "Stopping march $(CONFIGURED_ARCH) docker" + sudo kill -9 `sudo cat /var/run/march/docker.pid` || true + sudo rm -f /var/run/march/docker.pid || true + fi + git clean -xfdf; + git reset --hard; + git submodule foreach --recursive git clean -xfdf; + git submodule foreach --recursive git reset --hard; + git submodule update --init --recursive; + echo "Reset complete!"; + else + echo "Reset aborted"; + fi ) From 768beb79e16489850a626c9cb88f639654ce14df Mon Sep 17 00:00:00 2001 From: Dong Zhang <41927498+dzhangalibaba@users.noreply.github.com> Date: Wed, 28 Aug 2019 11:15:10 -0700 Subject: [PATCH 18/43] create multiple Redis DB instances based on CONFIG at /etc/sonic/database_config.json (#2182) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this is the first step to moving different databases tables into different database instances in this PR, only handle multiple database instances creation based on user configuration at /etc/sonic/database_config.json we keep current method to create single database instance if no extra/new DATABASE configuration exist in database_config.json file. if user try to configure more db instances at database_config.json , we create those new db instances along with the original db instance existing today. The configuration is as below, later we can add more db related information if needed: { ... "DATABASE": { "redis-db-01" : { "port" : "6380", "database": ["APPL_DB", "STATE_DB"] }, "redis-db-02" : { "port" : "6381", "database":["ASIC_DB"] }, } ... } The detail description is at design doc at Azure/SONiC#271 The main idea is : when database.sh started, we check the configuration and generate corresponding scripts. rc.local service handle old_config copy when loading new images, there is no dependency between rc.local and database service today, for safety and make sure the copy operation are done before database try to read it, we make database service run after rc.local Then database docker started, we check the configuration and generate corresponding scripts/.conf in database docker as well. based on those conf, we create databases instances as required. at last, we ping_pong check database are up and continue 
Signed-off-by: Dong Zhang d.zhang@alibaba-inc.com --- dockers/docker-database/Dockerfile.j2 | 7 ++- dockers/docker-database/database_config.json | 43 +++++++++++++++++++ .../docker-database/docker-database-init.sh | 14 ++++++ dockers/docker-database/ping_pong_db_insts | 40 +++++++++++++++++ dockers/docker-database/supervisord.conf | 21 --------- dockers/docker-database/supervisord.conf.j2 | 24 +++++++++++ files/build_templates/database.service.j2 | 1 + files/build_templates/docker_image_ctl.j2 | 10 +++-- 8 files changed, 133 insertions(+), 27 deletions(-) create mode 100644 dockers/docker-database/database_config.json create mode 100755 dockers/docker-database/docker-database-init.sh create mode 100755 dockers/docker-database/ping_pong_db_insts delete mode 100644 dockers/docker-database/supervisord.conf create mode 100644 dockers/docker-database/supervisord.conf.j2 diff --git a/dockers/docker-database/Dockerfile.j2 b/dockers/docker-database/Dockerfile.j2 index 9ec3926de6..acb5e013fb 100644 --- a/dockers/docker-database/Dockerfile.j2 +++ b/dockers/docker-database/Dockerfile.j2 @@ -32,6 +32,9 @@ RUN apt-get clean -y && \ s/^client-output-buffer-limit pubsub [0-9]+mb [0-9]+mb [0-9]+/client-output-buffer-limit pubsub 0 0 0/ \ ' /etc/redis/redis.conf -COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] +COPY ["supervisord.conf.j2", "/usr/share/sonic/templates/"] +COPY ["docker-database-init.sh", "/usr/local/bin/"] +COPY ["ping_pong_db_insts", "/usr/local/bin/"] +COPY ["database_config.json", "/etc/default/sonic-db/"] -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["/usr/local/bin/docker-database-init.sh"] diff --git a/dockers/docker-database/database_config.json b/dockers/docker-database/database_config.json new file mode 100644 index 0000000000..6725af38c5 --- /dev/null +++ b/dockers/docker-database/database_config.json @@ -0,0 +1,43 @@ +{ + "INSTANCES": { + "redis":{ + "port": 6379, + "socket": "/var/run/redis/redis.sock" + } + }, + "DATABASES" : { + "APPL_DB" : { + "id" : 0, + "instance" : "redis" + }, + "ASIC_DB" : { + "id" : 1, + "instance" : "redis" + }, + "COUNTERS_DB" : { + "id" : 2, + "instance" : "redis" + }, + "LOGLEVEL_DB" : { + "id" : 3, + "instance" : "redis" + }, + "CONFIG_DB" : { + "id" : 4, + "instance" : "redis" + }, + "PFC_WD_DB" : { + "id" : 5, + "instance" : "redis" + }, + "FLEX_COUNTER_DB" : { + "id" : 5, + "instance" : "redis" + }, + "STATE_DB" : { + "id" : 6, + "instance" : "redis" + } + }, + "VERSION" : "1.0" +} diff --git a/dockers/docker-database/docker-database-init.sh b/dockers/docker-database/docker-database-init.sh new file mode 100755 index 0000000000..ebdcc6abb6 --- /dev/null +++ b/dockers/docker-database/docker-database-init.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +mkdir -p /var/run/redis/sonic-db +if [ -f /etc/sonic/database_config.json ]; then + cp /etc/sonic/database_config.json /var/run/redis/sonic-db +else + cp /etc/default/sonic-db/database_config.json /var/run/redis/sonic-db +fi + +mkdir -p /etc/supervisor/conf.d/ +# generate all redis server supervisord configuration file +sonic-cfggen -j /var/run/redis/sonic-db/database_config.json -t /usr/share/sonic/templates/supervisord.conf.j2 > /etc/supervisor/conf.d/supervisord.conf + +exec /usr/bin/supervisord diff --git a/dockers/docker-database/ping_pong_db_insts b/dockers/docker-database/ping_pong_db_insts new file mode 100755 index 0000000000..484d4da0cf --- /dev/null +++ b/dockers/docker-database/ping_pong_db_insts @@ -0,0 +1,40 @@ +#!/usr/bin/python +import json +import os +import subprocess +import time +import syslog + +def ping_redis(cmd): + output = '' + while True: + try: + output = subprocess.check_output(cmd, shell=True) + except subprocess.CalledProcessError as e: + syslog.syslog(syslog.LOG_ERR, 'ping redis failed, cmd : {}'.format(cmd)) + + if 'PONG' in output: + break + syslog.syslog(syslog.LOG_ERR, 'ping response : {}'.format(output)) + time.sleep(1) + +database_config_file = "/var/run/redis/sonic-db/database_config.json" + +data = {} +while True: + if os.path.isfile(database_config_file): + with open(database_config_file, "r") as read_file: + data = json.load(read_file) + break + time.sleep(1) + syslog.syslog(syslog.LOG_ERR, 'config file {} does not exist right now'.format(database_config_file)) + +while True: + if 'INSTANCES' in data: + for inst in data["INSTANCES"]: + port = data["INSTANCES"][inst]["port"] + cmd = "redis-cli -p " + str(port) + " ping" + ping_redis(cmd) + break + time.sleep(1) + syslog.syslog(syslog.LOG_ERR, 'config file {} does not have INSTANCES'.format(database_config_file)) diff --git a/dockers/docker-database/supervisord.conf b/dockers/docker-database/supervisord.conf deleted file mode 100644 index 798fedd0c8..0000000000 --- a/dockers/docker-database/supervisord.conf +++ /dev/null @@ -1,21 +0,0 @@ -[supervisord] -logfile_maxbytes=1MB -logfile_backups=2 -nodaemon=true - -[program:rsyslogd] -command=/bin/bash -c "rm -f /var/run/rsyslogd.pid && /usr/sbin/rsyslogd -n" -priority=1 -autostart=true -autorestart=false -stdout_logfile=syslog -stderr_logfile=syslog - -[program:redis-server] -command=/bin/bash -c "{ [[ -s /var/lib/redis/dump.rdb ]] || rm -f /var/lib/redis/dump.rdb; } && exec /usr/bin/redis-server /etc/redis/redis.conf" -priority=2 -autostart=true -autorestart=false -stdout_logfile=syslog -stderr_logfile=syslog - diff --git a/dockers/docker-database/supervisord.conf.j2 b/dockers/docker-database/supervisord.conf.j2 new file mode 100644 index 0000000000..9e4a42d6b3 --- /dev/null +++ b/dockers/docker-database/supervisord.conf.j2 @@ -0,0 +1,24 @@ +[supervisord] +logfile_maxbytes=1MB +logfile_backups=2 +nodaemon=true + +[program:rsyslogd] +command=/bin/bash -c "rm -f /var/run/rsyslogd.pid && /usr/sbin/rsyslogd -n" +priority=1 +autostart=true +autorestart=false +stdout_logfile=syslog +stderr_logfile=syslog + +{% if INSTANCES %} +{% for redis_inst, redis_items in INSTANCES.iteritems() %} +[program: {{ redis_inst }}] +command=/bin/bash -c "{ [[ -s /var/lib/{{ redis_inst }}/dump.rdb ]] || rm -f /var/lib/{{ redis_inst }}/dump.rdb; } && mkdir -p /var/lib/{{ redis_inst }} && exec /usr/bin/redis-server /etc/redis/redis.conf --port {{ redis_items['port'] }} --unixsocket {{ redis_items['socket'] }} --pidfile /var/run/redis/{{ redis_inst }}.pid --dir /var/lib/{{ redis_inst }}" +priority=2 +autostart=true +autorestart=false +stdout_logfile=syslog +stderr_logfile=syslog +{% endfor %} +{% endif %} diff --git a/files/build_templates/database.service.j2 b/files/build_templates/database.service.j2 index efa98b168b..472b9d328b 100644 --- a/files/build_templates/database.service.j2 +++ b/files/build_templates/database.service.j2 @@ -2,6 +2,7 @@ Description=Database container Requires=docker.service After=docker.service +After=rc-local.service [Service] User=root diff --git a/files/build_templates/docker_image_ctl.j2 b/files/build_templates/docker_image_ctl.j2 index 9966728988..756ce16a2b 100644 --- a/files/build_templates/docker_image_ctl.j2 +++ b/files/build_templates/docker_image_ctl.j2 @@ -71,10 +71,7 @@ function postStartAction() { {%- if docker_container_name == "database" %} # Wait until redis starts - REDIS_SOCK="/var/run/redis/redis.sock" - until [[ $(/usr/bin/docker exec database redis-cli -s $REDIS_SOCK ping | grep -c PONG) -gt 0 ]]; do - sleep 1; - done + /usr/bin/docker exec database ping_pong_db_insts if [[ ("$BOOT_TYPE" == "warm" || "$BOOT_TYPE" == "fastfast") && -f $WARM_DIR/dump.rdb ]]; then rm -f $WARM_DIR/dump.rdb else @@ -163,6 +160,11 @@ start() { {%- if docker_container_name == "database" %} echo "Creating new {{docker_container_name}} container" + # if database_config exists in old_config, use it; otherwise use the default one in new image + if [ -f /etc/sonic/old_config/database_config.json ]; then + echo "Use database_config.json from old system..." + mv /etc/sonic/old_config/database_config.json /etc/sonic/ + fi {%- else %} echo "Creating new {{docker_container_name}} container with HWSKU $HWSKU" {%- endif %} From a5b805e37ad44fe355b3ed829cc55e91fcd39bec Mon Sep 17 00:00:00 2001 From: Wirut Getbamrung Date: Thu, 29 Aug 2019 01:19:34 +0700 Subject: [PATCH 19/43] [platform/cel]: Add new API installer to pmon and base image (#3379) * [platform/cel]: Add new api installer * [device/celestica]: Update APIs to support both pmon and base image * [device/e1031]: update hwmon name --- .../x86_64-cel_e1031-r0/fancontrol-B2F | 2 +- .../sonic_platform/__init__.py | 2 + .../sonic_platform/chassis.py | 19 ++++-- .../x86_64-cel_e1031-r0/sonic_platform/fan.py | 1 + .../x86_64-cel_e1031-r0/sonic_platform/sfp.py | 48 ++++++--------- .../sonic_platform/thermal.py | 8 +-- .../sonic_platform/__init__.py | 2 + .../sonic_platform/chassis.py | 36 ++++++++--- .../sonic_platform/fan.py | 1 - .../sonic_platform/sfp.py | 61 +++++++++---------- .../sonic_platform/thermal.py | 16 +++-- .../debian/platform-modules-dx010.init | 2 + .../debian/platform-modules-dx010.install | 2 + .../debian/platform-modules-dx010.postinst | 3 + .../debian/platform-modules-haliburton.init | 2 + .../platform-modules-haliburton.install | 2 + .../platform-modules-haliburton.postinst | 4 +- .../sonic-platform-modules-cel/debian/rules | 3 + .../sonic-platform-modules-cel/dx010/setup.py | 34 +++++++++++ .../haliburton/setup.py | 34 +++++++++++ .../platform_api/platform_api_mgnt.sh | 41 +++++++++++++ 21 files changed, 231 insertions(+), 92 deletions(-) create mode 100644 platform/broadcom/sonic-platform-modules-cel/dx010/setup.py create mode 100644 platform/broadcom/sonic-platform-modules-cel/haliburton/setup.py create mode 100755 platform/broadcom/sonic-platform-modules-cel/services/platform_api/platform_api_mgnt.sh diff --git a/device/celestica/x86_64-cel_e1031-r0/fancontrol-B2F b/device/celestica/x86_64-cel_e1031-r0/fancontrol-B2F index cab392995b..883f3c0c89 100644 --- a/device/celestica/x86_64-cel_e1031-r0/fancontrol-B2F +++ b/device/celestica/x86_64-cel_e1031-r0/fancontrol-B2F @@ -1,7 +1,7 @@ # Configuration file generated by pwmconfig, changes will be lost INTERVAL=2 DEVPATH=hwmon3=devices/pci0000:00/0000:00:13.0/i2c-0/i2c-8/i2c-23/23-004d hwmon2=devices/pci0000:00/0000:00:13.0/i2c-0/i2c-8/i2c-11/11-001a -DEVNAME=hwmon3=emc2305 hwmon2=max6697 +DEVNAME=hwmon3=emc2305 hwmon2=max6699 FCTEMPS=hwmon3/device/pwm1=hwmon2/temp1_input hwmon3/device/pwm2=hwmon2/temp1_input hwmon3/device/pwm4=hwmon2/temp1_input FCFANS=hwmon3/device/pwm1=hwmon3/device/fan1_input hwmon3/device/pwm2=hwmon3/device/fan2_input hwmon3/device/pwm4=hwmon3/device/fan4_input MINTEMP=hwmon3/device/pwm1=27 hwmon3/device/pwm2=27 hwmon3/device/pwm4=27 diff --git a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/__init__.py b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/__init__.py index e69de29bb2..d82f374931 100644 --- a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/__init__.py +++ b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/__init__.py @@ -0,0 +1,2 @@ +__all__ = ["platform", "chassis"] +from sonic_platform import * diff --git a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/chassis.py b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/chassis.py index a611be9d47..fde9afaa6f 100644 --- a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/chassis.py +++ b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/chassis.py @@ -31,8 +31,10 @@ NUM_PSU = 2 NUM_THERMAL = 7 NUM_SFP = 52 RESET_REGISTER = "0x112" -REBOOT_CAUSE_PATH = "/host/reboot-cause/previous-reboot-cause.txt" +HOST_REBOOT_CAUSE_PATH = "/host/reboot-cause/previous-reboot-cause.txt" +PMON_REBOOT_CAUSE_PATH = "/usr/share/sonic/platform/api_files/reboot-cause/previous-reboot-cause.txt" COMPONENT_NAME_LIST = ["SMC_CPLD", "MMC_CPLD", "BIOS"] +HOST_CHK_CMD = "docker > /dev/null 2>&1" class Chassis(ChassisBase): @@ -53,17 +55,23 @@ class Chassis(ChassisBase): sfp = Sfp(index) self._sfp_list.append(sfp) ChassisBase.__init__(self) + self._reboot_cause_path = HOST_REBOOT_CAUSE_PATH if self.__is_host( + ) else PMON_REBOOT_CAUSE_PATH self._component_name_list = COMPONENT_NAME_LIST self._watchdog = Watchdog() self._eeprom = Tlv() + def __is_host(self): + return os.system(HOST_CHK_CMD) == 0 + def __read_txt_file(self, file_path): try: with open(file_path, 'r') as fd: data = fd.read() return data.strip() except IOError: - raise IOError("Unable to open %s file !" % file_path) + pass + return None def get_base_mac(self): """ @@ -137,14 +145,15 @@ class Chassis(ChassisBase): description = 'None' reboot_cause = self.REBOOT_CAUSE_HARDWARE_OTHER hw_reboot_cause = self.component.get_register_value(RESET_REGISTER) - sw_reboot_cause = self.__read_txt_file(REBOOT_CAUSE_PATH) + sw_reboot_cause = self.__read_txt_file( + self._reboot_cause_path) or "Unknown" - if sw_reboot_cause != "Unexpected reboot": + if hw_reboot_cause == "0x55": reboot_cause = self.REBOOT_CAUSE_NON_HARDWARE description = sw_reboot_cause elif hw_reboot_cause == "0x11": reboot_cause = self.REBOOT_CAUSE_POWER_LOSS - elif hw_reboot_cause == "0x33" or hw_reboot_cause == "0x55": + elif hw_reboot_cause == "0x33": reboot_cause = self.REBOOT_CAUSE_WATCHDOG else: reboot_cause = self.REBOOT_CAUSE_HARDWARE_OTHER diff --git a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/fan.py b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/fan.py index ad993ce241..88e21b3e5e 100644 --- a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/fan.py +++ b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/fan.py @@ -34,6 +34,7 @@ class Fan(FanBase): self.index = fan_index self.config_data = {} self.fan_speed = 0 + FanBase.__init__(self) # e1031 fan attributes # Single emc2305 chip located at i2c-23-4d diff --git a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/sfp.py b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/sfp.py index 8379299569..c67e487e4c 100644 --- a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/sfp.py +++ b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/sfp.py @@ -35,6 +35,7 @@ class Sfp(SfpBase, SfpUtilBase): } PRS_PATH = "/sys/devices/platform/e1031.smc/SFP/sfp_modabs" PLATFORM_ROOT_PATH = '/usr/share/sonic/device' + PMON_HWSKU_PATH = '/usr/share/sonic/hwsku' SFP_STATUS_CONTROL_OFFSET = 110 SFP_STATUS_CONTROL_WIDTH = 1 @@ -61,6 +62,9 @@ class Sfp(SfpBase, SfpUtilBase): SFP_EEPROM_TX_PWR_KEY = "TXPower" SFP_EEPROM_TX_BS_KEY = "TXBias" SFP_EEPROM_STATUS_CON_KEY = "StatusControl" + PLATFORM = "x86_64-cel_e1031-r0" + HWSKU = "Celestica-E1031-T48S4" + HOST_CHK_CMD = "docker > /dev/null 2>&1" @property def port_start(self): @@ -122,6 +126,9 @@ class Sfp(SfpBase, SfpUtilBase): self.index = sfp_index self.port_num = self.index + 1 + def __is_host(self): + return os.system(self.HOST_CHK_CMD) == 0 + def __get_sysfsfile_eeprom(self): sysfsfile_eeprom = None sysfs_sfp_i2c_client_eeprom_path = self.port_to_eeprom_mapping[self.port_num] @@ -129,33 +136,14 @@ class Sfp(SfpBase, SfpUtilBase): sysfsfile_eeprom = open( sysfs_sfp_i2c_client_eeprom_path, mode="r+b", buffering=0) except IOError: - print("Error: reading sysfs file %s" % - sysfs_sfp_i2c_client_eeprom_path) + pass return sysfsfile_eeprom def __get_path_to_port_config_file(self): - # Get platform and hwsku - machine_info = sonic_device_util.get_machine_info() - platform = sonic_device_util.get_platform_info(machine_info) - config_db = ConfigDBConnector() - config_db.connect() - data = config_db.get_table('DEVICE_METADATA') - try: - hwsku = data['localhost']['hwsku'] - except KeyError: - hwsku = "Unknown" - - # Load platform module from source - platform_path = "/".join([self.PLATFORM_ROOT_PATH, platform]) - hwsku_path = "/".join([platform_path, hwsku]) - - # First check for the presence of the new 'port_config.ini' file - port_config_file_path = "/".join([hwsku_path, "port_config.ini"]) - if not os.path.isfile(port_config_file_path): - # port_config.ini doesn't exist. Try loading the legacy 'portmap.ini' file - port_config_file_path = "/".join([hwsku_path, "portmap.ini"]) - - return port_config_file_path + platform_path = "/".join([self.PLATFORM_ROOT_PATH, self.PLATFORM]) + hwsku_path = "/".join([platform_path, self.HWSKU] + ) if self.__is_host() else self.PMON_HWSKU_PATH + return "/".join([hwsku_path, "port_config.ini"]) def get_transceiver_info(self): """ @@ -405,7 +393,7 @@ class Sfp(SfpBase, SfpUtilBase): """ transceiver_dom_info_dict = self.get_transceiver_bulk_status() tx1_bs = transceiver_dom_info_dict.get("tx1bias", "N/A") - return [tx1_bs, "N/A", "N/A", "N/A"] + return [tx1_bs, "N/A", "N/A", "N/A"] if transceiver_dom_info_dict else [] def get_rx_power(self): """ @@ -417,7 +405,7 @@ class Sfp(SfpBase, SfpUtilBase): """ transceiver_dom_info_dict = self.get_transceiver_bulk_status() rx1_pw = transceiver_dom_info_dict.get("rx1power", "N/A") - return [rx1_pw, "N/A", "N/A", "N/A"] + return [rx1_pw, "N/A", "N/A", "N/A"] if transceiver_dom_info_dict else [] def get_tx_power(self): """ @@ -429,7 +417,7 @@ class Sfp(SfpBase, SfpUtilBase): """ transceiver_dom_info_dict = self.get_transceiver_bulk_status() tx1_pw = transceiver_dom_info_dict.get("tx1power", "N/A") - return [tx1_pw, "N/A", "N/A", "N/A"] + return [tx1_pw, "N/A", "N/A", "N/A"] if transceiver_dom_info_dict else [] def reset(self): """ @@ -452,7 +440,7 @@ class Sfp(SfpBase, SfpUtilBase): sysfsfile_eeprom = self.__get_sysfsfile_eeprom() status_control_raw = self._read_eeprom_specific_bytes( - sysfsfile_eeprom, self.SFP_STATUS_CONTROL_OFFSET, self.SFP_STATUS_CONTROL_WIDTH) + sysfsfile_eeprom, self.SFP_STATUS_CONTROL_OFFSET, self.SFP_STATUS_CONTROL_WIDTH) if sysfsfile_eeprom else None if status_control_raw is not None: tx_disable_bit = 0x80 if tx_disable else 0x7f status_control = int(status_control_raw[0], 16) @@ -551,7 +539,7 @@ class Sfp(SfpBase, SfpUtilBase): Returns: string: Model/part number of device """ - transceiver_dom_info_dict = self.get_transceiver_bulk_status() + transceiver_dom_info_dict = self.get_transceiver_info() return transceiver_dom_info_dict.get("modelname", "N/A") def get_serial(self): @@ -560,5 +548,5 @@ class Sfp(SfpBase, SfpUtilBase): Returns: string: Serial number of device """ - transceiver_dom_info_dict = self.get_transceiver_bulk_status() + transceiver_dom_info_dict = self.get_transceiver_info() return transceiver_dom_info_dict.get("serialnum", "N/A") diff --git a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/thermal.py b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/thermal.py index a6d45dc41c..6c37f3b7ce 100644 --- a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/thermal.py +++ b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/thermal.py @@ -22,8 +22,8 @@ class Thermal(ThermalBase): """Platform-specific Thermal class""" THERMAL_NAME_LIST = [] - MAINBOARD_SS_PATH = "/sys/class/i2c-adapter/i2c-11/11-001a/hwmon/" - CPUBOARD_SS_PATH = "/sys/class/i2c-adapter/i2c-3/3-001a/hwmon/" + MAINBOARD_SS_PATH = "/sys/class/i2c-adapter/i2c-11/11-001a/hwmon/hwmon2" + CPUBOARD_SS_PATH = "/sys/class/i2c-adapter/i2c-3/3-001a/hwmon/hwmon1" SS_CONFIG_PATH = "/usr/share/sonic/device/x86_64-cel_e1031-r0/sensors.conf" def __init__(self, thermal_index): @@ -41,10 +41,8 @@ class Thermal(ThermalBase): self.THERMAL_NAME_LIST.append("CPU board temperature sensor : 2") # Set hwmon path - self.ss_index, self.ss_path = self.__get_ss_info(self.index) + self.ss_index, self.hwmon_path = self.__get_ss_info(self.index) self.ss_key = self.THERMAL_NAME_LIST[self.index] - self.hwmon_name = os.listdir(self.ss_path)[0] - self.hwmon_path = os.path.join(self.ss_path, self.hwmon_name) def __get_ss_info(self, index): if self.index <= 4: diff --git a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/__init__.py b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/__init__.py index e69de29bb2..d82f374931 100644 --- a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/__init__.py +++ b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/__init__.py @@ -0,0 +1,2 @@ +__all__ = ["platform", "chassis"] +from sonic_platform import * diff --git a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/chassis.py b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/chassis.py index 5e98cb3d3d..91db08f4a6 100644 --- a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/chassis.py +++ b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/chassis.py @@ -31,8 +31,12 @@ NUM_PSU = 2 NUM_THERMAL = 5 NUM_SFP = 32 RESET_REGISTER = "0x103" -REBOOT_CAUSE_PATH = "/host/reboot-cause/previous-reboot-cause.txt" +HOST_REBOOT_CAUSE_PATH = "/host/reboot-cause/" +PMON_REBOOT_CAUSE_PATH = "/usr/share/sonic/platform/api_files/reboot-cause/" +REBOOT_CAUSE_FILE = "reboot-cause.txt" +PREV_REBOOT_CAUSE_FILE = "previous-reboot-cause.txt" COMPONENT_NAME_LIST = ["CPLD1", "CPLD2", "CPLD3", "CPLD4", "BIOS"] +HOST_CHK_CMD = "docker > /dev/null 2>&1" class Chassis(ChassisBase): @@ -53,17 +57,22 @@ class Chassis(ChassisBase): sfp = Sfp(index) self._sfp_list.append(sfp) ChassisBase.__init__(self) + self._component_name_list = COMPONENT_NAME_LIST self._watchdog = Watchdog() self._eeprom = Tlv() + def __is_host(self): + return os.system(HOST_CHK_CMD) == 0 + def __read_txt_file(self, file_path): try: with open(file_path, 'r') as fd: data = fd.read() return data.strip() except IOError: - raise IOError("Unable to open %s file !" % file_path) + pass + return None def get_base_mac(self): """ @@ -136,14 +145,27 @@ class Chassis(ChassisBase): self.component = Component("CPLD1") description = 'None' reboot_cause = self.REBOOT_CAUSE_HARDWARE_OTHER - hw_reboot_cause = self.component.get_register_value(RESET_REGISTER) - sw_reboot_cause = self.__read_txt_file(REBOOT_CAUSE_PATH) - if sw_reboot_cause != "Unexpected reboot": + reboot_cause_path = (HOST_REBOOT_CAUSE_PATH + REBOOT_CAUSE_FILE) if self.__is_host( + ) else PMON_REBOOT_CAUSE_PATH + REBOOT_CAUSE_FILE + prev_reboot_cause_path = (HOST_REBOOT_CAUSE_PATH + PREV_REBOOT_CAUSE_FILE) if self.__is_host( + ) else PMON_REBOOT_CAUSE_PATH + PREV_REBOOT_CAUSE_FILE + + hw_reboot_cause = self.component.get_register_value(RESET_REGISTER) + + sw_reboot_cause = self.__read_txt_file( + reboot_cause_path) or "Unknown" + prev_sw_reboot_cause = self.__read_txt_file( + prev_reboot_cause_path) or "Unknown" + + if sw_reboot_cause == "Unknown" and (prev_sw_reboot_cause == "Unknown" or prev_sw_reboot_cause == self.REBOOT_CAUSE_POWER_LOSS) and hw_reboot_cause == "0x11": + reboot_cause = self.REBOOT_CAUSE_POWER_LOSS + elif sw_reboot_cause != "Unknown" and hw_reboot_cause == "0x11": reboot_cause = self.REBOOT_CAUSE_NON_HARDWARE description = sw_reboot_cause - elif hw_reboot_cause == "0x11": - reboot_cause = self.REBOOT_CAUSE_POWER_LOSS + elif prev_reboot_cause_path != "Unknown" and hw_reboot_cause == "0x11": + reboot_cause = self.REBOOT_CAUSE_NON_HARDWARE + description = prev_sw_reboot_cause elif hw_reboot_cause == "0x22": reboot_cause = self.REBOOT_CAUSE_WATCHDOG, else: diff --git a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/fan.py b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/fan.py index 99e86d0a6c..86eda4cfbe 100644 --- a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/fan.py +++ b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/fan.py @@ -17,7 +17,6 @@ try: except ImportError as e: raise ImportError(str(e) + "- required module not found") -CONFIG_DB_PATH = "/etc/sonic/config_db.json" EMC2305_PATH = "/sys/bus/i2c/drivers/emc2305/" SYS_GPIO_DIR = "/sys/class/gpio" EMC2305_MAX_PWM = 255 diff --git a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/sfp.py b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/sfp.py index 6d019d7854..9275776e0e 100644 --- a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/sfp.py +++ b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/sfp.py @@ -18,7 +18,7 @@ try: from swsssdk import ConfigDBConnector from sonic_platform_base.sfp_base import SfpBase from sonic_platform_base.sonic_sfp.sfputilbase import SfpUtilBase - from sonic_platform_base.sonic_sfp.sfputilbase import sff8436Dom + from sonic_platform_base.sonic_sfp.sff8436 import sff8436Dom except ImportError as e: raise ImportError(str(e) + "- required module not found") @@ -61,7 +61,11 @@ class Sfp(SfpBase, SfpUtilBase): RESET_PATH = "/sys/devices/platform/dx010_cpld/qsfp_reset" LP_PATH = "/sys/devices/platform/dx010_cpld/qsfp_lpmode" PRS_PATH = "/sys/devices/platform/dx010_cpld/qsfp_modprs" - PLATFORM_ROOT_PATH = '/usr/share/sonic/device' + PLATFORM_ROOT_PATH = "/usr/share/sonic/device" + PMON_HWSKU_PATH = "/usr/share/sonic/hwsku" + PLATFORM = "x86_64-cel_seastone-r0" + HWSKU = "Seastone-DX010" + HOST_CHK_CMD = "docker > /dev/null 2>&1" _port_to_eeprom_mapping = {} @@ -170,37 +174,28 @@ class Sfp(SfpBase, SfpUtilBase): (x - 1) + 26) else: self._port_to_eeprom_mapping[x] = eeprom_path.format(x + 26) - self.read_porttab_mappings(self.__get_path_to_port_config_file()) + + self.__read_porttab() SfpUtilBase.__init__(self) # Init index self.index = sfp_index self.port_num = self.index + 1 - def __get_path_to_port_config_file(self): - # Get platform and hwsku - machine_info = sonic_device_util.get_machine_info() - platform = sonic_device_util.get_platform_info(machine_info) - config_db = ConfigDBConnector() - config_db.connect() - data = config_db.get_table('DEVICE_METADATA') - + def __read_porttab(self): try: - hwsku = data['localhost']['hwsku'] - except KeyError: - hwsku = "Unknown" + self.read_porttab_mappings(self.__get_path_to_port_config_file()) + except: + pass - # Load platform module from source - platform_path = "/".join([self.PLATFORM_ROOT_PATH, platform]) - hwsku_path = "/".join([platform_path, hwsku]) + def __is_host(self): + return os.system(self.HOST_CHK_CMD) == 0 - # First check for the presence of the new 'port_config.ini' file - port_config_file_path = "/".join([hwsku_path, "port_config.ini"]) - if not os.path.isfile(port_config_file_path): - # port_config.ini doesn't exist. Try loading the legacy 'portmap.ini' file - port_config_file_path = "/".join([hwsku_path, "portmap.ini"]) - - return port_config_file_path + def __get_path_to_port_config_file(self): + platform_path = "/".join([self.PLATFORM_ROOT_PATH, self.PLATFORM]) + hwsku_path = "/".join([platform_path, self.HWSKU] + ) if self.__is_host() else self.PMON_HWSKU_PATH + return "/".join([hwsku_path, "port_config.ini"]) def __read_eeprom_specific_bytes(self, offset, num_bytes): sysfsfile_eeprom = None @@ -382,7 +377,7 @@ class Sfp(SfpBase, SfpUtilBase): """ rx_los_list = [] dom_channel_monitor_raw = self.__read_eeprom_specific_bytes( - self.QSFP_CHANNL_RX_LOS_STATUS_OFFSET, self.QSFP_CHANNL_RX_LOS_STATUS_WIDTH) + self.QSFP_CHANNL_RX_LOS_STATUS_OFFSET, self.QSFP_CHANNL_RX_LOS_STATUS_WIDTH) if self.get_presence() else None if dom_channel_monitor_raw is not None: rx_los_data = int(dom_channel_monitor_raw[0], 16) rx_los_list.append(rx_los_data & 0x01 != 0) @@ -400,7 +395,7 @@ class Sfp(SfpBase, SfpUtilBase): """ tx_fault_list = [] dom_channel_monitor_raw = self.__read_eeprom_specific_bytes( - self.QSFP_CHANNL_TX_FAULT_STATUS_OFFSET, self.QSFP_CHANNL_TX_FAULT_STATUS_WIDTH) + self.QSFP_CHANNL_TX_FAULT_STATUS_OFFSET, self.QSFP_CHANNL_TX_FAULT_STATUS_WIDTH) if self.get_presence() else None if dom_channel_monitor_raw is not None: tx_fault_data = int(dom_channel_monitor_raw[0], 16) tx_fault_list.append(tx_fault_data & 0x01 != 0) @@ -422,7 +417,7 @@ class Sfp(SfpBase, SfpUtilBase): return False dom_control_raw = self.__read_eeprom_specific_bytes( - self.QSFP_CONTROL_OFFSET, self.QSFP_CONTROL_WIDTH) + self.QSFP_CONTROL_OFFSET, self.QSFP_CONTROL_WIDTH) if self.get_presence() else None if dom_control_raw is not None: dom_control_data = sfpd_obj.parse_control_bytes(dom_control_raw, 0) tx_disable_list.append( @@ -476,7 +471,7 @@ class Sfp(SfpBase, SfpUtilBase): return False dom_control_raw = self.__read_eeprom_specific_bytes( - self.QSFP_CONTROL_OFFSET, self.QSFP_CONTROL_WIDTH) + self.QSFP_CONTROL_OFFSET, self.QSFP_CONTROL_WIDTH) if self.get_presence() else None if dom_control_raw is not None: dom_control_data = sfpd_obj.parse_control_bytes(dom_control_raw, 0) power_override = ( @@ -515,7 +510,7 @@ class Sfp(SfpBase, SfpUtilBase): tx2_bs = transceiver_dom_info_dict.get("tx2bias", "N/A") tx3_bs = transceiver_dom_info_dict.get("tx3bias", "N/A") tx4_bs = transceiver_dom_info_dict.get("tx4bias", "N/A") - return [tx1_bs, tx2_bs, tx3_bs, tx4_bs] + return [tx1_bs, tx2_bs, tx3_bs, tx4_bs] if transceiver_dom_info_dict else [] def get_rx_power(self): """ @@ -530,7 +525,7 @@ class Sfp(SfpBase, SfpUtilBase): rx2_pw = transceiver_dom_info_dict.get("rx2power", "N/A") rx3_pw = transceiver_dom_info_dict.get("rx3power", "N/A") rx4_pw = transceiver_dom_info_dict.get("rx4power", "N/A") - return [rx1_pw, rx2_pw, rx3_pw, rx4_pw] + return [rx1_pw, rx2_pw, rx3_pw, rx4_pw] if transceiver_dom_info_dict else [] def get_tx_power(self): """ @@ -545,7 +540,7 @@ class Sfp(SfpBase, SfpUtilBase): tx2_pw = transceiver_dom_info_dict.get("tx2power", "N/A") tx3_pw = transceiver_dom_info_dict.get("tx3power", "N/A") tx4_pw = transceiver_dom_info_dict.get("tx4power", "N/A") - return [tx1_pw, tx2_pw, tx3_pw, tx4_pw] + return [tx1_pw, tx2_pw, tx3_pw, tx4_pw] if transceiver_dom_info_dict else [] def reset(self): """ @@ -754,7 +749,7 @@ class Sfp(SfpBase, SfpUtilBase): Returns: string: Model/part number of device """ - transceiver_dom_info_dict = self.get_transceiver_bulk_status() + transceiver_dom_info_dict = self.get_transceiver_info() return transceiver_dom_info_dict.get("modelname", "N/A") def get_serial(self): @@ -763,5 +758,5 @@ class Sfp(SfpBase, SfpUtilBase): Returns: string: Serial number of device """ - transceiver_dom_info_dict = self.get_transceiver_bulk_status() + transceiver_dom_info_dict = self.get_transceiver_info() return transceiver_dom_info_dict.get("serialnum", "N/A") diff --git a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/thermal.py b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/thermal.py index 43390dce83..1e0a2c4b56 100644 --- a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/thermal.py +++ b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/thermal.py @@ -37,18 +37,16 @@ class Thermal(ThermalBase): # Set hwmon path i2c_path = { - 0: "i2c-5/5-0048", # u4 system-inlet - 1: "i2c-6/6-0049", # u2 system-inlet - 2: "i2c-7/7-004a", # u44 bmc56960-on-board - 3: "i2c-14/14-0048", # u9200 cpu-on-board - 4: "i2c-15/15-004e" # u9201 system-outlet + 0: "i2c-5/5-0048/hwmon/hwmon1", # u4 system-inlet + 1: "i2c-6/6-0049/hwmon/hwmon2", # u2 system-inlet + 2: "i2c-7/7-004a/hwmon/hwmon3", # u44 bmc56960-on-board + 3: "i2c-14/14-0048/hwmon/hwmon4", # u9200 cpu-on-board + 4: "i2c-15/15-004e/hwmon/hwmon5" # u9201 system-outlet }.get(self.index, None) - self.ss_path = "{}/{}/hwmon".format(self.I2C_ADAPTER_PATH, i2c_path) + self.hwmon_path = "{}/{}".format(self.I2C_ADAPTER_PATH, i2c_path) self.ss_key = self.THERMAL_NAME_LIST[self.index] self.ss_index = 1 - self.hwmon_name = os.listdir(self.ss_path)[0] - self.hwmon_path = os.path.join(self.ss_path, self.hwmon_name) def __read_txt_file(self, file_path): try: @@ -56,7 +54,7 @@ class Thermal(ThermalBase): data = fd.read() return data.strip() except IOError: - raise IOError("Unable to open %s file !" % file_path) + pass def __get_temp(self, temp_file): temp_file_path = os.path.join(self.hwmon_path, temp_file) diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.init b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.init index 99d0aab3fd..1e124565a4 100644 --- a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.init +++ b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.init @@ -141,6 +141,8 @@ start) sleep 0.1 done + /bin/sh /usr/local/bin/platform_api_mgnt.sh init + echo "done." ;; diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.install b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.install index b25d47022b..8570fa1eae 100644 --- a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.install +++ b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.install @@ -1,3 +1,5 @@ dx010/scripts/dx010_check_qsfp.sh usr/local/bin dx010/cfg/dx010-modules.conf etc/modules-load.d dx010/systemd/platform-modules-dx010.service lib/systemd/system +dx010/modules/sonic_platform-1.0-py2-none-any.whl usr/share/sonic/device/x86_64-cel_seastone-r0 +services/platform_api/platform_api_mgnt.sh usr/local/bin diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.postinst b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.postinst index baff704171..15243c935c 100644 --- a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.postinst +++ b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-dx010.postinst @@ -1,3 +1,6 @@ depmod -a systemctl enable platform-modules-dx010.service systemctl start platform-modules-dx010.service + +/usr/local/bin/platform_api_mgnt.sh install + diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-haliburton.init b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-haliburton.init index 6c2d4483ac..1dc0ea5cfe 100644 --- a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-haliburton.init +++ b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-haliburton.init @@ -69,6 +69,8 @@ start) echo "both" > /sys/devices/platform/e1031.smc/SFP/modabs_trig echo 0 > /sys/devices/platform/e1031.smc/SFP/modabs_mask + /bin/sh /usr/local/bin/platform_api_mgnt.sh init + echo "done." ;; diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-haliburton.install b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-haliburton.install index 312e9c78a5..df78b7a34e 100644 --- a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-haliburton.install +++ b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-haliburton.install @@ -3,3 +3,5 @@ haliburton/systemd/platform-modules-haliburton.service lib/systemd/system haliburton/script/fancontrol.sh etc/init.d services/fancontrol/fancontrol.service lib/systemd/system services/fancontrol/fancontrol usr/local/bin +haliburton/modules/sonic_platform-1.0-py2-none-any.whl usr/share/sonic/device/x86_64-cel_e1031-r0 +services/platform_api/platform_api_mgnt.sh usr/local/bin diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-haliburton.postinst b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-haliburton.postinst index ac05d40d70..e62799bd59 100644 --- a/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-haliburton.postinst +++ b/platform/broadcom/sonic-platform-modules-cel/debian/platform-modules-haliburton.postinst @@ -3,4 +3,6 @@ systemctl enable platform-modules-haliburton.service systemctl enable fancontrol.service systemctl start platform-modules-haliburton.service -systemctl start fancontrol.service \ No newline at end of file +systemctl start fancontrol.service + +/usr/local/bin/platform_api_mgnt.sh install diff --git a/platform/broadcom/sonic-platform-modules-cel/debian/rules b/platform/broadcom/sonic-platform-modules-cel/debian/rules index 5086302b70..6f35290bce 100755 --- a/platform/broadcom/sonic-platform-modules-cel/debian/rules +++ b/platform/broadcom/sonic-platform-modules-cel/debian/rules @@ -13,6 +13,9 @@ MODULE_DIRS:= dx010 haliburton override_dh_auto_build: (for mod in $(MODULE_DIRS); do \ make -C $(KERNEL_SRC)/build M=$(MOD_SRC_DIR)/$${mod}/modules; \ + cd $(MOD_SRC_DIR)/$${mod}; \ + python2.7 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \ + cd $(MOD_SRC_DIR); \ done) override_dh_auto_install: diff --git a/platform/broadcom/sonic-platform-modules-cel/dx010/setup.py b/platform/broadcom/sonic-platform-modules-cel/dx010/setup.py new file mode 100644 index 0000000000..8183788184 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/dx010/setup.py @@ -0,0 +1,34 @@ +from setuptools import setup + +DEVICE_NAME = 'celestica' +HW_SKU = 'x86_64-cel_seastone-r0' + +setup( + name='sonic-platform', + version='1.0', + description='SONiC platform API implementation on Celestica Platforms', + license='Apache 2.0', + author='SONiC Team', + author_email='linuxnetdev@microsoft.com', + url='https://github.com/Azure/sonic-buildimage', + maintainer='Wirut Getbamrung', + maintainer_email='wgetbumr@celestica.com', + packages=[ + 'sonic_platform', + ], + package_dir={ + 'sonic_platform': '../../../../device/{}/{}/sonic_platform'.format(DEVICE_NAME, HW_SKU)}, + classifiers=[ + 'Development Status :: 3 - Alpha', + 'Environment :: Plugins', + 'Intended Audience :: Developers', + 'Intended Audience :: Information Technology', + 'Intended Audience :: System Administrators', + 'License :: OSI Approved :: Apache Software License', + 'Natural Language :: English', + 'Operating System :: POSIX :: Linux', + 'Programming Language :: Python :: 2.7', + 'Topic :: Utilities', + ], + keywords='sonic SONiC platform PLATFORM', +) diff --git a/platform/broadcom/sonic-platform-modules-cel/haliburton/setup.py b/platform/broadcom/sonic-platform-modules-cel/haliburton/setup.py new file mode 100644 index 0000000000..1705685510 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/haliburton/setup.py @@ -0,0 +1,34 @@ +from setuptools import setup + +DEVICE_NAME = 'celestica' +HW_SKU = 'x86_64-cel_e1031-r0' + +setup( + name='sonic-platform', + version='1.0', + description='SONiC platform API implementation on Celestica Platforms', + license='Apache 2.0', + author='SONiC Team', + author_email='linuxnetdev@microsoft.com', + url='https://github.com/Azure/sonic-buildimage', + maintainer='Wirut Getbamrung', + maintainer_email='wgetbumr@celestica.com', + packages=[ + 'sonic_platform', + ], + package_dir={ + 'sonic_platform': '../../../../device/{}/{}/sonic_platform'.format(DEVICE_NAME, HW_SKU)}, + classifiers=[ + 'Development Status :: 3 - Alpha', + 'Environment :: Plugins', + 'Intended Audience :: Developers', + 'Intended Audience :: Information Technology', + 'Intended Audience :: System Administrators', + 'License :: OSI Approved :: Apache Software License', + 'Natural Language :: English', + 'Operating System :: POSIX :: Linux', + 'Programming Language :: Python :: 2.7', + 'Topic :: Utilities', + ], + keywords='sonic SONiC platform PLATFORM', +) diff --git a/platform/broadcom/sonic-platform-modules-cel/services/platform_api/platform_api_mgnt.sh b/platform/broadcom/sonic-platform-modules-cel/services/platform_api/platform_api_mgnt.sh new file mode 100755 index 0000000000..e1d3303578 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-cel/services/platform_api/platform_api_mgnt.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +PREV_REBOOT_CAUSE="/host/reboot-cause/" +DEVICE="/usr/share/sonic/device" +PLATFORM=$(/usr/local/bin/sonic-cfggen -H -v DEVICE_METADATA.localhost.platform) +FILES=$DEVICE/$PLATFORM/api_files + +install() { + # Install sonic-platform package + if [ -e $DEVICE/$PLATFORM/sonic_platform-1.0-py2-none-any.whl ]; then + pip install $DEVICE/$PLATFORM/sonic_platform-1.0-py2-none-any.whl + fi +} + +init() { + # mount needed files for sonic-platform package + mkdir -p $FILES + + mkdir -p $FILES/reboot-cause + mount -B $PREV_REBOOT_CAUSE $FILES/reboot-cause +} + +deinit() { + # deinit sonic-platform package + umount -f $PREV_REBOOT_CAUSE $FILES/reboot-cause >/dev/null 2>/dev/null +} + +uninstall() { + # Uninstall sonic-platform package + pip uninstall -y sonic-platform >/dev/null 2>/dev/null +} + +case "$1" in +install | uninstall | init | deinit) + $1 + ;; +*) + echo "Usage: $0 {install|uninstall|init|deinit}" + exit 1 + ;; +esac From 4c36866a267c261f70b805dd7f653a6b718cc4a5 Mon Sep 17 00:00:00 2001 From: ChiouRung Haung Date: Thu, 29 Aug 2019 02:55:27 +0800 Subject: [PATCH 20/43] [syncd-rpc-brcm]: Fix syncd terminated in broadcom rpc image (#3391) Signed-off-by: chiourung_huang --- platform/broadcom/docker-syncd-brcm-rpc.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/platform/broadcom/docker-syncd-brcm-rpc.mk b/platform/broadcom/docker-syncd-brcm-rpc.mk index bb31e82ef6..ed7fc1b526 100644 --- a/platform/broadcom/docker-syncd-brcm-rpc.mk +++ b/platform/broadcom/docker-syncd-brcm-rpc.mk @@ -20,5 +20,6 @@ endif $(DOCKER_SYNCD_BRCM_RPC)_CONTAINER_NAME = syncd $(DOCKER_SYNCD_BRCM_RPC)_RUN_OPT += --net=host --privileged -t $(DOCKER_SYNCD_BRCM_RPC)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf +$(DOCKER_SYNCD_BRCM_RPC)_RUN_OPT += -v /host/warmboot:/var/warmboot $(DOCKER_SYNCD_BRCM_RPC)_RUN_OPT += -v /var/run/docker-syncd:/var/run/sswsyncd $(DOCKER_SYNCD_BRCM_RPC)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro From 5c2d71138b85cfe6b489cf6bbdabffcadb7b41c3 Mon Sep 17 00:00:00 2001 From: Stephen Sun <5379172+stephenxs@users.noreply.github.com> Date: Thu, 29 Aug 2019 02:59:37 +0800 Subject: [PATCH 21/43] [Mellanox] optimize new platform api (#3289) optimize SFP module operations and fix issues. - split initialization of variant categories of devices and initialize each category of devices only when needed, so that unnecessary dependencies can be avoided. - update watchdog logic, only initializing watchdog when referenced. - support platform.py and enable to initialize variant devices on a host/docker basis - update init so that sonic_platform can be imported as a whole. --- .../sonic_platform/__init__.py | 2 + .../sonic_platform/chassis.py | 199 ++++++++++++---- .../sonic_platform/platform.py | 45 ++++ .../mlnx-platform-api/sonic_platform/sfp.py | 217 ++++++++---------- 4 files changed, 303 insertions(+), 160 deletions(-) create mode 100644 platform/mellanox/mlnx-platform-api/sonic_platform/platform.py diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/__init__.py b/platform/mellanox/mlnx-platform-api/sonic_platform/__init__.py index e69de29bb2..d94d4c9ec8 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/__init__.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/__init__.py @@ -0,0 +1,2 @@ +__all__ = ["platform", "chassis"] +from sonic_platform import * \ No newline at end of file diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/chassis.py b/platform/mellanox/mlnx-platform-api/sonic_platform/chassis.py index 41d237143d..814c7aca81 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/chassis.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/chassis.py @@ -10,15 +10,7 @@ try: from sonic_platform_base.chassis_base import ChassisBase - from sonic_platform.psu import Psu - from sonic_platform.fan import Fan - from sonic_platform.fan import FAN_PATH - from sonic_platform.sfp import SFP - from sonic_platform.thermal import Thermal, initialize_thermals - from sonic_platform.watchdog import get_watchdog from sonic_daemon_base.daemon_base import Logger - from eeprom import Eeprom - from sfp_event import sfp_event from os import listdir from os.path import isfile, join import sys @@ -43,11 +35,6 @@ HWMGMT_SYSTEM_ROOT = '/var/run/hw-management/system/' #reboot cause related definitions REBOOT_CAUSE_ROOT = HWMGMT_SYSTEM_ROOT -REBOOT_CAUSE_POWER_LOSS_FILE = 'reset_main_pwr_fail' -REBOOT_CAUSE_THERMAL_OVERLOAD_ASIC_FILE = 'reset_asic_thermal' -REBOOT_CAUSE_WATCHDOG_FILE = 'reset_hotswap_or_wd' -REBOOT_CAUSE_MLNX_FIRMWARE_RESET = 'reset_fw_reset' - REBOOT_CAUSE_FILE_LENGTH = 1 #version retrieving related definitions @@ -84,14 +71,30 @@ class Chassis(ChassisBase): # Initialize SKU name self.sku_name = self._get_sku_name() + # move the initialization of each components to their dedicated initializer + # which will be called from platform + self.sfp_module_initialized = False + self.sfp_event_initialized = False + self.reboot_cause_initialized = False + logger.log_info("Chassis loaded successfully") + + def __del__(self): + if self.sfp_event_initialized: + self.sfp_event.deinitialize() + + def initialize_psu(self): + from sonic_platform.psu import Psu # Initialize PSU list + self.psu_module = Psu for index in range(MLNX_NUM_PSU): psu = Psu(index, self.sku_name) self._psu_list.append(psu) - # Initialize watchdog - self._watchdog = get_watchdog() - + def initialize_fan(self): + from sonic_platform.fan import Fan + from sonic_platform.fan import FAN_PATH + self.fan_module = Fan + self.fan_path = FAN_PATH # Initialize FAN list multi_rotor_in_drawer = False num_of_fan, num_of_drawer = self._extract_num_of_fans_and_fan_drawers() @@ -104,6 +107,11 @@ class Chassis(ChassisBase): fan = Fan(index, index) self._fan_list.append(fan) + def initialize_sfp(self): + from sonic_platform.sfp import SFP + + self.sfp_module = SFP + # Initialize SFP list port_position_tuple = self._get_port_position_tuple_by_sku_name() self.PORT_START = port_position_tuple[0] @@ -118,31 +126,82 @@ class Chassis(ChassisBase): sfp_module = SFP(index, 'SFP') self._sfp_list.append(sfp_module) + self.sfp_module_initialized = True + + def initialize_thermals(self): + from sonic_platform.thermal import initialize_thermals # Initialize thermals initialize_thermals(self.sku_name, self._thermal_list, self._psu_list) + def initialize_eeprom(self): + from eeprom import Eeprom # Initialize EEPROM - self.eeprom = Eeprom() + self._eeprom = Eeprom() + def initialize_components_list(self): # Initialize component list self._component_name_list.append(COMPONENT_BIOS) self._component_name_list.append(COMPONENT_FIRMWARE) self._component_name_list.append(COMPONENT_CPLD1) self._component_name_list.append(COMPONENT_CPLD2) - # Initialize sfp-change-listening stuff - self._init_sfp_change_event() + ############################################## + # SFP methods + ############################################## + def get_num_sfps(self): + """ + Retrieves the number of sfps available on this chassis - def _init_sfp_change_event(self): - self.sfp_event = sfp_event() - self.sfp_event.initialize() - self.MAX_SELECT_EVENT_RETURNED = self.PORT_END + Returns: + An integer, the number of sfps available on this chassis + """ + if not self.sfp_module_initialized: + self.initialize_sfp() + return len(self._sfp_list) + + def get_all_sfps(self): + """ + Retrieves all sfps available on this chassis + + Returns: + A list of objects derived from SfpBase representing all sfps + available on this chassis + """ + if not self.sfp_module_initialized: + self.initialize_sfp() + return self._sfp_list + + def get_sfp(self, index): + """ + Retrieves sfp represented by (0-based) index + + Args: + index: An integer, the index (0-based) of the sfp to retrieve. + The index should be the sequence of a physical port in a chassis, + starting from 0. + For example, 0 for Ethernet0, 1 for Ethernet4 and so on. + + Returns: + An object dervied from SfpBase representing the specified sfp + """ + if not self.sfp_module_initialized: + self.initialize_sfp() + + sfp = None + + try: + sfp = self._sfp_list[index] + except IndexError: + sys.stderr.write("SFP index {} out of range (0-{})\n".format( + index, len(self._sfp_list)-1)) + + return sfp def _extract_num_of_fans_and_fan_drawers(self): num_of_fan = 0 num_of_drawer = 0 - for f in listdir(FAN_PATH): - if isfile(join(FAN_PATH, f)): + for f in listdir(self.fan_path): + if isfile(join(self.fan_path, f)): match_obj = re.match('fan(\d+)_speed_get', f) if match_obj != None: if int(match_obj.group(1)) > num_of_fan: @@ -163,6 +222,30 @@ class Chassis(ChassisBase): position_tuple = port_position_tuple_list[hwsku_dict_port[self.sku_name]] return position_tuple + def get_watchdog(self): + """ + Retrieves hardware watchdog device on this chassis + + Returns: + An object derived from WatchdogBase representing the hardware + watchdog device + + Note: + We overload this method to ensure that watchdog is only initialized + when it is referenced. Currently, only one daemon can open the watchdog. + To initialize watchdog in the constructor causes multiple daemon + try opening watchdog when loading and constructing a chassis object + and fail. By doing so we can eliminate that risk. + """ + try: + if self._watchdog is None: + from sonic_platform.watchdog import get_watchdog + self._watchdog = get_watchdog() + except Exception as e: + logger.log_info("Fail to load watchdog due to {}".format(repr(e))) + + return self._watchdog + def get_base_mac(self): """ Retrieves the base MAC address for the chassis @@ -171,7 +254,7 @@ class Chassis(ChassisBase): A string containing the MAC address in the format 'XX:XX:XX:XX:XX:XX' """ - return self.eeprom.get_base_mac() + return self._eeprom.get_base_mac() def get_serial_number(self): """ @@ -180,7 +263,7 @@ class Chassis(ChassisBase): Returns: A string containing the hardware serial number for this chassis. """ - return self.eeprom.get_serial_number() + return self._eeprom.get_serial_number() def get_system_eeprom_info(self): """ @@ -191,7 +274,7 @@ class Chassis(ChassisBase): OCP ONIE TlvInfo EEPROM format and values are their corresponding values. """ - return self.eeprom.get_system_eeprom_info() + return self._eeprom.get_system_eeprom_info() def _read_generic_file(self, filename, len): """ @@ -205,7 +288,7 @@ class Chassis(ChassisBase): return result except Exception as e: logger.log_info("Fail to read file {} due to {}".format(filename, repr(e))) - return '' + return '0' def _verify_reboot_cause(self, filename): ''' @@ -215,6 +298,31 @@ class Chassis(ChassisBase): ''' return bool(int(self._read_generic_file(join(REBOOT_CAUSE_ROOT, filename), REBOOT_CAUSE_FILE_LENGTH).rstrip('\n'))) + def initialize_reboot_cause(self): + self.reboot_major_cause_dict = { + 'reset_main_pwr_fail' : self.REBOOT_CAUSE_POWER_LOSS, + 'reset_aux_pwr_or_ref' : self.REBOOT_CAUSE_POWER_LOSS, + 'reset_asic_thermal' : self.REBOOT_CAUSE_THERMAL_OVERLOAD_ASIC, + 'reset_hotswap_or_wd' : self.REBOOT_CAUSE_WATCHDOG, + 'reset_swb_wd' : self.REBOOT_CAUSE_WATCHDOG, + 'reset_sff_wd' : self.REBOOT_CAUSE_WATCHDOG + } + self.reboot_minor_cause_dict = { + 'reset_fw_reset' : "Reset by ASIC firmware", + 'reset_long_pb' : "Reset by long press on power button", + 'reset_short_pb' : "Reset by short press on power button", + 'reset_comex_thermal' : "ComEx thermal shutdown", + 'reset_comex_pwr_fail' : "ComEx power fail", + 'reset_comex_wd' : "Reset requested from ComEx", + 'reset_from_asic' : "Reset requested from ASIC", + 'reset_reload_bios' : "Reset caused by BIOS reload", + 'reset_sw_reset' : "Software reset", + 'reset_hotswap_or_halt' : "Reset caused by hotswap or halt", + 'reset_from_comex' : "Reset from ComEx", + 'reset_voltmon_upgrade_fail': "Reset due to voltage monitor devices upgrade failure" + } + self.reboot_cause_initialized = True + def get_reboot_cause(self): """ Retrieves the cause of the previous reboot @@ -227,21 +335,18 @@ class Chassis(ChassisBase): to pass a description of the reboot cause. """ #read reboot causes files in the following order - minor_cause = '' - if self._verify_reboot_cause(REBOOT_CAUSE_POWER_LOSS_FILE): - major_cause = self.REBOOT_CAUSE_POWER_LOSS - elif self._verify_reboot_cause(REBOOT_CAUSE_THERMAL_OVERLOAD_ASIC_FILE): - major_cause = self.REBOOT_CAUSE_THERMAL_OVERLOAD_ASIC - elif self._verify_reboot_cause(REBOOT_CAUSE_WATCHDOG_FILE): - major_cause = self.REBOOT_CAUSE_WATCHDOG - else: - major_cause = self.REBOOT_CAUSE_HARDWARE_OTHER - if self._verify_reboot_cause(REBOOT_CAUSE_MLNX_FIRMWARE_RESET): - minor_cause = "Reset by ASIC firmware" - else: - major_cause = self.REBOOT_CAUSE_NON_HARDWARE + if not self.reboot_cause_initialized: + self.initialize_reboot_cause() - return major_cause, minor_cause + for reset_file, reset_cause in self.reboot_major_cause_dict.iteritems(): + if self._verify_reboot_cause(reset_file): + return reset_cause, '' + + for reset_file, reset_cause in self.reboot_minor_cause_dict.iteritems(): + if self._verify_reboot_cause(reset_file): + return self.REBOOT_CAUSE_HARDWARE_OTHER, reset_cause + + return self.REBOOT_CAUSE_NON_HARDWARE, '' def _get_cpld_version(self, version_file): cpld_version = self._read_generic_file(join(CPLD_VERSION_ROOT, version_file), CPLD_VERSION_MAX_LENGTH) @@ -383,6 +488,14 @@ class Chassis(ChassisBase): indicates that fan 0 has been removed, fan 2 has been inserted and sfp 11 has been removed. """ + # Initialize SFP event first + if not self.sfp_event_initialized: + from sonic_platform.sfp_event import sfp_event + self.sfp_event = sfp_event() + self.sfp_event.initialize() + self.MAX_SELECT_EVENT_RETURNED = self.PORT_END + self.sfp_event_initialized = True + wait_for_ever = (timeout == 0) port_dict = {} if wait_for_ever: diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/platform.py b/platform/mellanox/mlnx-platform-api/sonic_platform/platform.py new file mode 100644 index 0000000000..fc555bc479 --- /dev/null +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/platform.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python + +############################################################################# +# Mellanox +# +# implementation of new platform api +############################################################################# + +try: + import subprocess + from sonic_platform_base.platform_base import PlatformBase + from sonic_platform.chassis import Chassis +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + +class Platform(PlatformBase): + def __init__(self): + PlatformBase.__init__(self) + if self._is_host(): + self._chassis = Chassis() + else: + self._chassis = Chassis() + self._chassis.initialize_psu() + self._chassis.initialize_fan() + self._chassis.initialize_eeprom() + self._chassis.initialize_components_list() + + def _is_host(self): + """ + Test whether current process is running on the host or an docker + return True for host and False for docker + """ + is_host = False + try: + proc = subprocess.Popen("docker --version 2>/dev/null", stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT) + stdout = proc.communicate()[0] + proc.wait() + result = stdout.rstrip('\n') + if result != '': + is_host = True + + except OSError, e: + pass + + return is_host diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py b/platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py index 9ea9c21899..be59451a8c 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/sfp.py @@ -63,6 +63,24 @@ XCVR_VENDOR_DATE_OFFSET = 84 XCVR_VENDOR_DATE_WIDTH = 8 XCVR_DOM_CAPABILITY_OFFSET = 92 XCVR_DOM_CAPABILITY_WIDTH = 2 +# to improve performance we retrieve all eeprom data via a single ethtool command +# in function get_transceiver_info and get_transceiver_bulk_status +# XCVR_INTERFACE_DATA_SIZE stands for the max size to be read +# this variable is only used by get_transceiver_info. +# please be noted that each time some new value added to the function +# we should make sure that it falls into the area +# [XCVR_INTERFACE_DATA_START, XCVR_INTERFACE_DATA_SIZE] or +# adjust XCVR_INTERFACE_MAX_SIZE to contain the new data +# It's same for [QSFP_DOM_BULK_DATA_START, QSFP_DOM_BULK_DATA_SIZE] and +# [SFP_DOM_BULK_DATA_START, SFP_DOM_BULK_DATA_SIZE] which are used by +# get_transceiver_bulk_status +XCVR_INTERFACE_DATA_START = 0 +XCVR_INTERFACE_DATA_SIZE = 92 + +QSFP_DOM_BULK_DATA_START = 22 +QSFP_DOM_BULK_DATA_SIZE = 36 +SFP_DOM_BULK_DATA_START = 96 +SFP_DOM_BULK_DATA_SIZE = 10 # definitions of the offset for values in OSFP info eeprom OSFP_TYPE_OFFSET = 0 @@ -229,7 +247,7 @@ class SFP(SfpBase): bool: True if device is present, False if not """ presence = False - ethtool_cmd = "ethtool -m sfp{} 2>/dev/null".format(self.index) + ethtool_cmd = "ethtool -m sfp{} hex on offset 0 length 4 2>/dev/null".format(self.index) try: proc = subprocess.Popen(ethtool_cmd, stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT) stdout = proc.communicate()[0] @@ -261,6 +279,15 @@ class SFP(SfpBase): return eeprom_raw def _dom_capability_detect(self): + if not self.get_presence(): + self.dom_supported = False + self.dom_temp_supported = False + self.dom_volt_supported = False + self.dom_rx_power_supported = False + self.dom_tx_power_supported = False + self.calibration = 0 + return + if self.sfp_type == "QSFP": self.calibration = 1 sfpi_obj = sff8436InterfaceId() @@ -466,47 +493,37 @@ class SFP(SfpBase): print("Error: sfp_object open failed") return None - sfp_interface_bulk_raw = self._read_eeprom_specific_bytes((offset + XCVR_INTFACE_BULK_OFFSET), interface_info_bulk_width) - if sfp_interface_bulk_raw is not None: - sfp_interface_bulk_data = sfpi_obj.parse_sfp_info_bulk(sfp_interface_bulk_raw, 0) - else: + sfp_interface_bulk_raw = self._read_eeprom_specific_bytes(offset + XCVR_INTERFACE_DATA_START, XCVR_INTERFACE_DATA_SIZE) + if sfp_interface_bulk_raw is None: return None - sfp_vendor_name_raw = self._read_eeprom_specific_bytes((offset + XCVR_VENDOR_NAME_OFFSET), XCVR_VENDOR_NAME_WIDTH) - if sfp_vendor_name_raw is not None: - sfp_vendor_name_data = sfpi_obj.parse_vendor_name(sfp_vendor_name_raw, 0) - else: - return None + start = XCVR_INTFACE_BULK_OFFSET - XCVR_INTERFACE_DATA_START + end = start + interface_info_bulk_width + sfp_interface_bulk_data = sfpi_obj.parse_sfp_info_bulk(sfp_interface_bulk_raw[start : end], 0) - sfp_vendor_pn_raw = self._read_eeprom_specific_bytes((offset + XCVR_VENDOR_PN_OFFSET), XCVR_VENDOR_PN_WIDTH) - if sfp_vendor_pn_raw is not None: - sfp_vendor_pn_data = sfpi_obj.parse_vendor_pn(sfp_vendor_pn_raw, 0) - else: - return None + start = XCVR_VENDOR_NAME_OFFSET - XCVR_INTERFACE_DATA_START + end = start + XCVR_VENDOR_NAME_WIDTH + sfp_vendor_name_data = sfpi_obj.parse_vendor_name(sfp_interface_bulk_raw[start : end], 0) - sfp_vendor_rev_raw = self._read_eeprom_specific_bytes((offset + XCVR_HW_REV_OFFSET), vendor_rev_width) - if sfp_vendor_rev_raw is not None: - sfp_vendor_rev_data = sfpi_obj.parse_vendor_rev(sfp_vendor_rev_raw, 0) - else: - return None + start = XCVR_VENDOR_PN_OFFSET - XCVR_INTERFACE_DATA_START + end = start + XCVR_VENDOR_PN_WIDTH + sfp_vendor_pn_data = sfpi_obj.parse_vendor_pn(sfp_interface_bulk_raw[start : end], 0) - sfp_vendor_sn_raw = self._read_eeprom_specific_bytes((offset + XCVR_VENDOR_SN_OFFSET), XCVR_VENDOR_SN_WIDTH) - if sfp_vendor_sn_raw is not None: - sfp_vendor_sn_data = sfpi_obj.parse_vendor_sn(sfp_vendor_sn_raw, 0) - else: - return None + start = XCVR_HW_REV_OFFSET - XCVR_INTERFACE_DATA_START + end = start + vendor_rev_width + sfp_vendor_rev_data = sfpi_obj.parse_vendor_rev(sfp_interface_bulk_raw[start : end], 0) - sfp_vendor_oui_raw = self._read_eeprom_specific_bytes((offset + XCVR_VENDOR_OUI_OFFSET), XCVR_VENDOR_OUI_WIDTH) - if sfp_vendor_oui_raw is not None: - sfp_vendor_oui_data = sfpi_obj.parse_vendor_oui(sfp_vendor_oui_raw, 0) - else: - return None + start = XCVR_VENDOR_SN_OFFSET - XCVR_INTERFACE_DATA_START + end = start + XCVR_VENDOR_SN_WIDTH + sfp_vendor_sn_data = sfpi_obj.parse_vendor_sn(sfp_interface_bulk_raw[start : end], 0) - sfp_vendor_date_raw = self._read_eeprom_specific_bytes((offset + XCVR_VENDOR_DATE_OFFSET), XCVR_VENDOR_DATE_WIDTH) - if sfp_vendor_date_raw is not None: - sfp_vendor_date_data = sfpi_obj.parse_vendor_date(sfp_vendor_date_raw, 0) - else: - return None + start = XCVR_VENDOR_OUI_OFFSET - XCVR_INTERFACE_DATA_START + end = start + XCVR_VENDOR_OUI_WIDTH + sfp_vendor_oui_data = sfpi_obj.parse_vendor_oui(sfp_interface_bulk_raw[start : end], 0) + + start = XCVR_VENDOR_DATE_OFFSET - XCVR_INTERFACE_DATA_START + end = start + XCVR_VENDOR_DATE_WIDTH + sfp_vendor_date_data = sfpi_obj.parse_vendor_date(sfp_interface_bulk_raw[start : end], 0) transceiver_info_dict['type'] = sfp_interface_bulk_data['data']['type']['value'] transceiver_info_dict['manufacturename'] = sfp_vendor_name_data['data']['Vendor Name']['value'] @@ -578,84 +595,63 @@ class SFP(SfpBase): """ transceiver_dom_info_dict = {} + dom_info_dict_keys = ['temperature', 'voltage', + 'rx1power', 'rx2power', + 'rx3power', 'rx4power', + 'tx1bias', 'tx2bias', + 'tx3bias', 'tx4bias', + 'tx1power', 'tx2power', + 'tx3power', 'tx4power' + ] + transceiver_dom_info_dict = dict.fromkeys(dom_info_dict_keys, 'N/A') + if self.sfp_type == OSFP_TYPE: - transceiver_dom_info_dict['temperature'] = 'N/A' - transceiver_dom_info_dict['voltage'] = 'N/A' - transceiver_dom_info_dict['rx1power'] = 'N/A' - transceiver_dom_info_dict['rx2power'] = 'N/A' - transceiver_dom_info_dict['rx3power'] = 'N/A' - transceiver_dom_info_dict['rx4power'] = 'N/A' - transceiver_dom_info_dict['tx1bias'] = 'N/A' - transceiver_dom_info_dict['tx2bias'] = 'N/A' - transceiver_dom_info_dict['tx3bias'] = 'N/A' - transceiver_dom_info_dict['tx4bias'] = 'N/A' - transceiver_dom_info_dict['tx1power'] = 'N/A' - transceiver_dom_info_dict['tx2power'] = 'N/A' - transceiver_dom_info_dict['tx3power'] = 'N/A' - transceiver_dom_info_dict['tx4power'] = 'N/A' + pass elif self.sfp_type == QSFP_TYPE: if not self.dom_supported: - return None + return transceiver_dom_info_dict offset = 0 sfpd_obj = sff8436Dom() if sfpd_obj is None: - return None + return transceiver_dom_info_dict + + dom_data_raw = self._read_eeprom_specific_bytes((offset + QSFP_DOM_BULK_DATA_START), QSFP_DOM_BULK_DATA_SIZE) + if dom_data_raw is None: + return transceiver_dom_info_dict if self.dom_temp_supported: - dom_temperature_raw = self._read_eeprom_specific_bytes((offset + QSFP_TEMPE_OFFSET), QSFP_TEMPE_WIDTH) - if dom_temperature_raw is not None: - dom_temperature_data = sfpd_obj.parse_temperature(dom_temperature_raw, 0) - temp = self._convert_string_to_num(dom_temperature_data['data']['Temperature']['value']) - if temp is not None: - transceiver_dom_info_dict['temperature'] = temp - else: - transceiver_dom_info_dict['temperature'] = 'N/A' - else: - return None - else: - transceiver_dom_info_dict['temperature'] = 'N/A' + start = QSFP_TEMPE_OFFSET - QSFP_DOM_BULK_DATA_START + end = start + QSFP_TEMPE_WIDTH + dom_temperature_data = sfpd_obj.parse_temperature(dom_data_raw[start : end], 0) + temp = self._convert_string_to_num(dom_temperature_data['data']['Temperature']['value']) + if temp is not None: + transceiver_dom_info_dict['temperature'] = temp if self.dom_volt_supported: - dom_voltage_raw = self._read_eeprom_specific_bytes((offset + QSFP_VOLT_OFFSET), QSFP_VOLT_WIDTH) - if dom_voltage_raw is not None: - dom_voltage_data = sfpd_obj.parse_voltage(dom_voltage_raw, 0) - volt = self._convert_string_to_num(dom_voltage_data['data']['Vcc']['value']) - if volt is not None: - transceiver_dom_info_dict['voltage'] = volt - else: - transceiver_dom_info_dict['voltage'] = 'N/A' - else: - return None - else: - transceiver_dom_info_dict['voltage'] = 'N/A' + start = QSFP_VOLT_OFFSET - QSFP_DOM_BULK_DATA_START + end = start + QSFP_VOLT_WIDTH + dom_voltage_data = sfpd_obj.parse_voltage(dom_data_raw[start : end], 0) + volt = self._convert_string_to_num(dom_voltage_data['data']['Vcc']['value']) + if volt is not None: + transceiver_dom_info_dict['voltage'] = volt - dom_channel_monitor_raw = self._read_eeprom_specific_bytes((offset + QSFP_CHANNL_MON_OFFSET), QSFP_CHANNL_MON_WITH_TX_POWER_WIDTH) - if dom_channel_monitor_raw is not None: - dom_channel_monitor_data = sfpd_obj.parse_channel_monitor_params_with_tx_power(dom_channel_monitor_raw, 0) + start = QSFP_CHANNL_MON_OFFSET - QSFP_DOM_BULK_DATA_START + end = start + QSFP_CHANNL_MON_WITH_TX_POWER_WIDTH + dom_channel_monitor_data = sfpd_obj.parse_channel_monitor_params_with_tx_power(dom_data_raw[start : end], 0) if self.dom_tx_power_supported: transceiver_dom_info_dict['tx1power'] = self._convert_string_to_num(dom_channel_monitor_data['data']['TX1Power']['value']) transceiver_dom_info_dict['tx2power'] = self._convert_string_to_num(dom_channel_monitor_data['data']['TX2Power']['value']) transceiver_dom_info_dict['tx3power'] = self._convert_string_to_num(dom_channel_monitor_data['data']['TX3Power']['value']) transceiver_dom_info_dict['tx4power'] = self._convert_string_to_num(dom_channel_monitor_data['data']['TX4Power']['value']) - else: - transceiver_dom_info_dict['tx1power'] = 'N/A' - transceiver_dom_info_dict['tx2power'] = 'N/A' - transceiver_dom_info_dict['tx3power'] = 'N/A' - transceiver_dom_info_dict['tx4power'] = 'N/A' if self.dom_rx_power_supported: transceiver_dom_info_dict['rx1power'] = self._convert_string_to_num(dom_channel_monitor_data['data']['RX1Power']['value']) transceiver_dom_info_dict['rx2power'] = self._convert_string_to_num(dom_channel_monitor_data['data']['RX2Power']['value']) transceiver_dom_info_dict['rx3power'] = self._convert_string_to_num(dom_channel_monitor_data['data']['RX3Power']['value']) transceiver_dom_info_dict['rx4power'] = self._convert_string_to_num(dom_channel_monitor_data['data']['RX4Power']['value']) - else: - transceiver_dom_info_dict['rx1power'] = 'N/A' - transceiver_dom_info_dict['rx2power'] = 'N/A' - transceiver_dom_info_dict['rx3power'] = 'N/A' - transceiver_dom_info_dict['rx4power'] = 'N/A' transceiver_dom_info_dict['tx1bias'] = dom_channel_monitor_data['data']['TX1Bias']['value'] transceiver_dom_info_dict['tx2bias'] = dom_channel_monitor_data['data']['TX2Bias']['value'] @@ -664,46 +660,33 @@ class SFP(SfpBase): else: if not self.dom_supported: - return None + return transceiver_dom_info_dict offset = 256 sfpd_obj = sff8472Dom() if sfpd_obj is None: - return None + return transceiver_dom_info_dict sfpd_obj._calibration_type = self.calibration - - dom_temperature_raw = self._read_eeprom_specific_bytes((offset + SFP_TEMPE_OFFSET), SFP_TEMPE_WIDTH) - if dom_temperature_raw is not None: - dom_temperature_data = sfpd_obj.parse_temperature(dom_temperature_raw, 0) - else: - return None - dom_voltage_raw = self._read_eeprom_specific_bytes((offset + SFP_VOLT_OFFSET), SFP_VOLT_WIDTH) - if dom_voltage_raw is not None: - dom_voltage_data = sfpd_obj.parse_voltage(dom_voltage_raw, 0) - else: - return None + dom_data_raw = self._read_eeprom_specific_bytes((offset + SFP_DOM_BULK_DATA_START), SFP_DOM_BULK_DATA_SIZE) - dom_channel_monitor_raw = self._read_eeprom_specific_bytes((offset + SFP_CHANNL_MON_OFFSET), SFP_CHANNL_MON_WIDTH) - if dom_channel_monitor_raw is not None: - dom_channel_monitor_data = sfpd_obj.parse_channel_monitor_params(dom_channel_monitor_raw, 0) - else: - return None + start = SFP_TEMPE_OFFSET - SFP_DOM_BULK_DATA_START + end = start + SFP_TEMPE_WIDTH + dom_temperature_data = sfpd_obj.parse_temperature(dom_data_raw[start: end], 0) + + start = SFP_VOLT_OFFSET - SFP_DOM_BULK_DATA_START + end = start + SFP_VOLT_WIDTH + dom_voltage_data = sfpd_obj.parse_voltage(dom_data_raw[start: end], 0) + + start = SFP_CHANNL_MON_OFFSET - SFP_DOM_BULK_DATA_START + end = start + SFP_CHANNL_MON_WIDTH + dom_channel_monitor_data = sfpd_obj.parse_channel_monitor_params(dom_data_raw[start: end], 0) transceiver_dom_info_dict['temperature'] = self._convert_string_to_num(dom_temperature_data['data']['Temperature']['value']) transceiver_dom_info_dict['voltage'] = self._convert_string_to_num(dom_voltage_data['data']['Vcc']['value']) transceiver_dom_info_dict['rx1power'] = self._convert_string_to_num(dom_channel_monitor_data['data']['RXPower']['value']) - transceiver_dom_info_dict['rx2power'] = 'N/A' - transceiver_dom_info_dict['rx3power'] = 'N/A' - transceiver_dom_info_dict['rx4power'] = 'N/A' transceiver_dom_info_dict['tx1bias'] = self._convert_string_to_num(dom_channel_monitor_data['data']['TXBias']['value']) - transceiver_dom_info_dict['tx2bias'] = 'N/A' - transceiver_dom_info_dict['tx3bias'] = 'N/A' - transceiver_dom_info_dict['tx4bias'] = 'N/A' transceiver_dom_info_dict['tx1power'] = self._convert_string_to_num(dom_channel_monitor_data['data']['TXPower']['value']) - transceiver_dom_info_dict['tx2power'] = 'N/A' - transceiver_dom_info_dict['tx3power'] = 'N/A' - transceiver_dom_info_dict['tx4power'] = 'N/A' return transceiver_dom_info_dict @@ -1036,7 +1019,7 @@ class SFP(SfpBase): sfpd_obj = sff8472Dom() if sfpd_obj is None: return None - sfpd_obj._calibration_type = 1 + sfpd_obj._calibration_type = self.calibration if self.dom_supported: dom_channel_monitor_raw = self._read_eeprom_specific_bytes((offset + SFP_CHANNL_MON_OFFSET), SFP_CHANNL_MON_WIDTH) @@ -1145,7 +1128,7 @@ class SFP(SfpBase): return None if self.dom_supported: - sfpd_obj._calibration_type = 1 + sfpd_obj._calibration_type = self.calibration dom_channel_monitor_raw = self._read_eeprom_specific_bytes((offset + SFP_CHANNL_MON_OFFSET), SFP_CHANNL_MON_WIDTH) if dom_channel_monitor_raw is not None: From f92056017e8d452c2047835a5a5aef742adc5434 Mon Sep 17 00:00:00 2001 From: zhenggen-xu Date: Wed, 28 Aug 2019 15:46:48 -0700 Subject: [PATCH 22/43] [swss]: Add hash seed 15 for SpineRouter type (#3390) Signed-off-by: Zhenggen Xu --- dockers/docker-orchagent/switch.json.j2 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dockers/docker-orchagent/switch.json.j2 b/dockers/docker-orchagent/switch.json.j2 index a7dafd40f2..f8beffbc9a 100644 --- a/dockers/docker-orchagent/switch.json.j2 +++ b/dockers/docker-orchagent/switch.json.j2 @@ -6,6 +6,8 @@ {% set hash_seed = 0 %} {% elif DEVICE_METADATA.localhost.type == "LeafRouter" %} {% set hash_seed = 10 %} +{% elif DEVICE_METADATA.localhost.type == "SpineRouter" %} +{% set hash_seed = 15 %} {% endif %} {% endif %} [ From 754c0b1f28ec8f326985313ba9f146e2fa632f26 Mon Sep 17 00:00:00 2001 From: Andriy Kokhan <43479230+akokhan@users.noreply.github.com> Date: Thu, 29 Aug 2019 04:37:16 +0300 Subject: [PATCH 23/43] [platform]: BFN platform modules update (#3389) * Fixed initial state for eeprom.py and sfputil.py when thrift server is down * Added transceiver plug-in/out event processing Signed-off-by: Andriy Kokhan --- .../plugins/eeprom.py | 38 +++++---- .../plugins/logging.conf | 17 ++++ .../plugins/sfputil.py | 80 +++++++++++++++++-- 3 files changed, 116 insertions(+), 19 deletions(-) create mode 100644 device/barefoot/x86_64-accton_wedge100bf_32x-r0/plugins/logging.conf diff --git a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/plugins/eeprom.py b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/plugins/eeprom.py index c06a1899fc..9c14441475 100644 --- a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/plugins/eeprom.py +++ b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/plugins/eeprom.py @@ -9,6 +9,9 @@ try: import sys import errno import datetime + import logging + import logging.config + import yaml sys.path.append(os.path.dirname(__file__)) import pltfm_mgr_rpc @@ -71,13 +74,17 @@ transport = None pltfm_mgr = None EEPROM_SYMLINK = "/var/run/platform/eeprom/syseeprom" - +EEPROM_STATUS = "/var/run/platform/eeprom/status" class board(eeprom_tlvinfo.TlvInfoDecoder): - RETRIES = 30 + RETRIES = 3 def __init__(self, name, path, cpld_root, ro): + with open(os.path.dirname(__file__) + "/logging.conf", 'r') as f: + config_dict = yaml.load(f) + logging.config.dictConfig(config_dict) + if not os.path.exists(os.path.dirname(EEPROM_SYMLINK)): try: os.makedirs(os.path.dirname(EEPROM_SYMLINK)) @@ -86,19 +93,17 @@ class board(eeprom_tlvinfo.TlvInfoDecoder): raise open(EEPROM_SYMLINK, 'a').close() + f = open(EEPROM_STATUS, 'w') + f.write("initializing..") + f.close() self.eeprom_path = EEPROM_SYMLINK - super(board, self).__init__(self.eeprom_path, 0, '', True) + super(board, self).__init__(self.eeprom_path, 0, EEPROM_STATUS, True) - for attempt in range(self.RETRIES + 1): - if not self.eeprom_init(): - time.sleep(1) - else: + for attempt in range(self.RETRIES): + if self.eeprom_init() or (attempt + 1 >= self.RETRIES): break - - if attempt == self.RETRIES: - raise RuntimeError("Could not initialize syseeprom") - + time.sleep(1) def thrift_setup(self): global thrift_server, transport, pltfm_mgr @@ -119,13 +124,18 @@ class board(eeprom_tlvinfo.TlvInfoDecoder): def eeprom_init(self): global pltfm_mgr + try: - self.thrift_setup() - eeprom = pltfm_mgr.pltfm_mgr_sys_eeprom_get() - self.thrift_teardown() + self.thrift_setup() + eeprom = pltfm_mgr.pltfm_mgr_sys_eeprom_get() + self.thrift_teardown() except: return False + f = open(EEPROM_STATUS, 'w') + f.write("ok") + f.close() + eeprom_params = "" for attr, val in eeprom.__dict__.iteritems(): if val is None: diff --git a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/plugins/logging.conf b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/plugins/logging.conf new file mode 100644 index 0000000000..d7fd847734 --- /dev/null +++ b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/plugins/logging.conf @@ -0,0 +1,17 @@ +version: 1 +disable_existing_loggers: False + +formatters: + simple: + format: '%(asctime)s %(name)-30s %(levelname)-7s %(message)s' + +handlers: + file: + class: logging.handlers.RotatingFileHandler + formatter: simple + filename: /var/log/platform.log + +root: + level: ERROR + handlers: + - file diff --git a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/plugins/sfputil.py b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/plugins/sfputil.py index c92bc42121..5e75376baa 100644 --- a/device/barefoot/x86_64-accton_wedge100bf_32x-r0/plugins/sfputil.py +++ b/device/barefoot/x86_64-accton_wedge100bf_32x-r0/plugins/sfputil.py @@ -34,6 +34,7 @@ class SfpUtil(SfpUtilBase): QSFP_PORT_START = 1 QSFP_PORT_END = 0 EEPROM_OFFSET = 0 + QSFP_CHECK_INTERVAL = 4 @property def port_start(self): @@ -56,6 +57,11 @@ class SfpUtil(SfpUtilBase): raise Exception() def __init__(self): + self.ready = False + self.phy_port_dict = {'-1': 'system_not_ready'} + self.phy_port_cur_state = {} + self.qsfp_interval = self.QSFP_CHECK_INTERVAL + if not os.path.exists(os.path.dirname(SFP_EEPROM_CACHE)): try: os.makedirs(os.path.dirname(SFP_EEPROM_CACHE)) @@ -142,12 +148,76 @@ class SfpUtil(SfpUtilBase): self.thrift_teardown() return status + def check_transceiver_change(self): + if not self.ready: + return + + self.phy_port_dict = {} + + try: + self.thrift_setup() + except: + return + + # Get presence of each SFP + for port in range(self.port_start, self.port_end + 1): + try: + sfp_resent = pltfm_mgr.pltfm_mgr_qsfp_presence_get(port) + except: + sfp_resent = False + sfp_state = '1' if sfp_resent else '0' + + if port in self.phy_port_cur_state: + if self.phy_port_cur_state[port] != sfp_state: + self.phy_port_dict[port] = sfp_state + else: + self.phy_port_dict[port] = sfp_state + + # Update port current state + self.phy_port_cur_state[port] = sfp_state + + self.thrift_teardown() + def get_transceiver_change_event(self, timeout=0): - phy_port_dict = {} - status = True - # TODO: Process transceiver plug-in/out event - time.sleep(1) - return status, phy_port_dict + forever = False + if timeout == 0: + forever = True + elif timeout > 0: + timeout = timeout / float(1000) # Convert to secs + else: + print "get_transceiver_change_event:Invalid timeout value", timeout + return False, {} + + while forever or timeout > 0: + if not self.ready: + try: + self.thrift_setup() + self.thrift_teardown() + except: + pass + else: + self.ready = True + self.phy_port_dict = {} + break + elif self.qsfp_interval == 0: + self.qsfp_interval = self.QSFP_CHECK_INTERVAL + + # Process transceiver plug-in/out event + self.check_transceiver_change() + + # Break if tranceiver state has changed + if bool(self.phy_port_dict): + break + + if timeout: + timeout -= 1 + + if self.qsfp_interval: + self.qsfp_interval -= 1 + + time.sleep(1) + + return self.ready, self.phy_port_dict def _get_port_eeprom_path(self, port_num, devid): eeprom_path = None From 7bf8fbe6016de56caa5d6c6590c54e411e5e546d Mon Sep 17 00:00:00 2001 From: "arheneus@marvell.com" <51254330+antony-rheneus@users.noreply.github.com> Date: Thu, 29 Aug 2019 07:08:21 +0530 Subject: [PATCH 24/43] [build_debian] docker version update for ARM arch (#3353) Docker version above 18 has inconsistent behaviour with qemu. Hence using the same version 18 used in sonic-slave Signed-off-by: Antony Rheneus --- build_debian.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/build_debian.sh b/build_debian.sh index 58abc0154c..3cb6beda30 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -31,7 +31,12 @@ set -x -e CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64) ## docker engine version (with platform) -DOCKER_VERSION=5:18.09.8~3-0~debian-stretch +if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then + # Version name differs between ARCH, copying same version as in sonic-slave docker + DOCKER_VERSION=18.06.3~ce~3-0~debian +else + DOCKER_VERSION=5:18.09.8~3-0~debian-stretch +fi LINUX_KERNEL_VERSION=4.9.0-9-2 ## Working directory to prepare the file system From 3323e9b817e7d17eb8ee01d39f2107d0ebcf09ae Mon Sep 17 00:00:00 2001 From: Polly Hsu Date: Thu, 29 Aug 2019 12:39:40 +0800 Subject: [PATCH 25/43] [device][accton]: ADD the Accton new device support, AS9716-32D (#3372) --- .../Accton-AS9716-32D/port_config.ini | 33 ++++ .../Accton-AS9716-32D/sai.profile | 1 + .../x86_64-accton_as9716_32d-r0/default_sku | 1 + .../installer.conf | 4 + .../plugins/eeprom.py | 21 +++ .../plugins/psuutil.py | 61 +++++++ .../plugins/sfputil.py | 150 ++++++++++++++++++ .../pmon_daemon_control.json | 4 + 8 files changed, 275 insertions(+) create mode 100644 device/accton/x86_64-accton_as9716_32d-r0/Accton-AS9716-32D/port_config.ini create mode 100644 device/accton/x86_64-accton_as9716_32d-r0/Accton-AS9716-32D/sai.profile create mode 100644 device/accton/x86_64-accton_as9716_32d-r0/default_sku create mode 100644 device/accton/x86_64-accton_as9716_32d-r0/installer.conf create mode 100644 device/accton/x86_64-accton_as9716_32d-r0/plugins/eeprom.py create mode 100644 device/accton/x86_64-accton_as9716_32d-r0/plugins/psuutil.py create mode 100644 device/accton/x86_64-accton_as9716_32d-r0/plugins/sfputil.py create mode 100644 device/accton/x86_64-accton_as9716_32d-r0/pmon_daemon_control.json diff --git a/device/accton/x86_64-accton_as9716_32d-r0/Accton-AS9716-32D/port_config.ini b/device/accton/x86_64-accton_as9716_32d-r0/Accton-AS9716-32D/port_config.ini new file mode 100644 index 0000000000..a13514fcd9 --- /dev/null +++ b/device/accton/x86_64-accton_as9716_32d-r0/Accton-AS9716-32D/port_config.ini @@ -0,0 +1,33 @@ +# name lanes alias index speed +Ethernet0 73,74,75,76,77,78,79,80 fourHundredGigE1 0 400000 +Ethernet4 65,66,67,68,69,70,71,72 fourHundredGigE2 1 400000 +Ethernet8 81,82,83,84,85,86,87,88 fourHundredGigE3 2 400000 +Ethernet12 89,90,91,92,93,94,95,96 fourHundredGigE4 3 400000 +Ethernet16 97,98,99,100,101,102,103,104 fourHundredGigE5 4 400000 +Ethernet20 105,106,107,108,109,110,111,112 fourHundredGigE6 5 400000 +Ethernet24 113,114,115,116,117,118,119,120 fourHundredGigE7 6 400000 +Ethernet28 121,122,123,124,125,126,127,128 fourHundredGigE8 7 400000 +Ethernet32 41,42,43,44,45,46,47,48 fourHundredGigE9 8 400000 +Ethernet36 33,34,35,36,37,38,39,40 fourHundredGigE10 9 400000 +Ethernet40 49,50,51,52,53,54,55,56 fourHundredGigE11 10 400000 +Ethernet44 57,58,59,60,61,62,63,64 fourHundredGigE12 11 400000 +Ethernet48 129,130,131,132,133,134,135,136 fourHundredGigE13 12 400000 +Ethernet52 137,138,139,140,141,142,143,144 fourHundredGigE14 13 400000 +Ethernet56 145,146,147,148,149,150,151,152 fourHundredGigE15 14 400000 +Ethernet60 153,154,155,156,157,158,159,160 fourHundredGigE16 15 400000 +Ethernet64 169,170,171,172,173,174,175,176 fourHundredGigE17 16 400000 +Ethernet68 161,162,163,164,165,166,167,168 fourHundredGigE18 17 400000 +Ethernet72 177,178,179,180,181,182,183,184 fourHundredGigE19 18 400000 +Ethernet76 185,186,187,188,189,190,191,192 fourHundredGigE20 19 400000 +Ethernet80 1,2,3,4,5,6,7,8 fourHundredGigE21 20 400000 +Ethernet84 9,10,11,12,13,14,15,16 fourHundredGigE22 21 400000 +Ethernet88 17,18,19,20,21,22,23,24 fourHundredGigE23 22 400000 +Ethernet92 25,26,27,28,29,30,31,32 fourHundredGigE24 23 400000 +Ethernet96 201,202,203,204,205,206,207,208 fourHundredGigE25 24 400000 +Ethernet100 193,194,195,196,197,198,199,200 fourHundredGigE26 25 400000 +Ethernet104 217,218,219,220,221,222,223,224 fourHundredGigE27 26 400000 +Ethernet108 209,210,211,212,213,214,215,216 fourHundredGigE28 27 400000 +Ethernet112 233,234,235,236,237,238,239,240 fourHundredGigE29 28 400000 +Ethernet116 225,226,227,228,229,230,231,232 fourHundredGigE30 29 400000 +Ethernet120 249,250,251,252,253,254,255,256 fourHundredGigE31 30 400000 +Ethernet124 241,242,243,244,245,246,247,248 fourHundredGigE32 31 400000 diff --git a/device/accton/x86_64-accton_as9716_32d-r0/Accton-AS9716-32D/sai.profile b/device/accton/x86_64-accton_as9716_32d-r0/Accton-AS9716-32D/sai.profile new file mode 100644 index 0000000000..be39b1f961 --- /dev/null +++ b/device/accton/x86_64-accton_as9716_32d-r0/Accton-AS9716-32D/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/etc/bcm/th3-as9716-32x400G.config.bcm diff --git a/device/accton/x86_64-accton_as9716_32d-r0/default_sku b/device/accton/x86_64-accton_as9716_32d-r0/default_sku new file mode 100644 index 0000000000..ccebae89a3 --- /dev/null +++ b/device/accton/x86_64-accton_as9716_32d-r0/default_sku @@ -0,0 +1 @@ +Accton-AS9716-32D t1 diff --git a/device/accton/x86_64-accton_as9716_32d-r0/installer.conf b/device/accton/x86_64-accton_as9716_32d-r0/installer.conf new file mode 100644 index 0000000000..d5f9419d77 --- /dev/null +++ b/device/accton/x86_64-accton_as9716_32d-r0/installer.conf @@ -0,0 +1,4 @@ +CONSOLE_PORT=0x3f8 +CONSOLE_DEV=0 +CONSOLE_SPEED=115200 +ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="pcie_aspm=off" diff --git a/device/accton/x86_64-accton_as9716_32d-r0/plugins/eeprom.py b/device/accton/x86_64-accton_as9716_32d-r0/plugins/eeprom.py new file mode 100644 index 0000000000..1e7d1046d9 --- /dev/null +++ b/device/accton/x86_64-accton_as9716_32d-r0/plugins/eeprom.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python + +try: + import exceptions + import binascii + import time + import optparse + import warnings + import os + import sys + from sonic_eeprom import eeprom_base + from sonic_eeprom import eeprom_tlvinfo + import subprocess +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + +class board(eeprom_tlvinfo.TlvInfoDecoder): + _TLV_INFO_MAX_LEN = 256 + def __init__(self, name, path, cpld_root, ro): + self.eeprom_path = "/sys/bus/i2c/devices/0-0056/eeprom" + super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/accton/x86_64-accton_as9716_32d-r0/plugins/psuutil.py b/device/accton/x86_64-accton_as9716_32d-r0/plugins/psuutil.py new file mode 100644 index 0000000000..25eceb7428 --- /dev/null +++ b/device/accton/x86_64-accton_as9716_32d-r0/plugins/psuutil.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python + +############################################################################# +# Accton +# +# Module contains an implementation of SONiC PSU Base API and +# provides the PSUs status which are available in the platform +# +############################################################################# + +import os.path + +try: + from sonic_psu.psu_base import PsuBase +except ImportError as e: + raise ImportError (str(e) + "- required module not found") + +class PsuUtil(PsuBase): + """Platform-specific PSUutil class""" + + def __init__(self): + PsuBase.__init__(self) + + self.psu_path = "/sys/bus/i2c/devices/" + self.psu_presence = "/psu_present" + self.psu_oper_status = "/psu_power_good" + self.psu_mapping = { + 2: "10-0051", + 1: "9-0050", + } + + def get_num_psus(self): + return len(self.psu_mapping) + + def get_psu_status(self, index): + if index is None: + return False + + status = 0 + node = self.psu_path + self.psu_mapping[index]+self.psu_oper_status + try: + with open(node, 'r') as power_status: + status = int(power_status.read()) + except IOError: + return False + + return status == 1 + + def get_psu_presence(self, index): + if index is None: + return False + + status = 0 + node = self.psu_path + self.psu_mapping[index] + self.psu_presence + try: + with open(node, 'r') as presence_status: + status = int(presence_status.read()) + except IOError: + return False + + return status == 1 diff --git a/device/accton/x86_64-accton_as9716_32d-r0/plugins/sfputil.py b/device/accton/x86_64-accton_as9716_32d-r0/plugins/sfputil.py new file mode 100644 index 0000000000..1779903596 --- /dev/null +++ b/device/accton/x86_64-accton_as9716_32d-r0/plugins/sfputil.py @@ -0,0 +1,150 @@ +# sfputil.py +# +# Platform-specific SFP transceiver interface for SONiC +# + +try: + import time + from sonic_sfp.sfputilbase import SfpUtilBase +except ImportError as e: + raise ImportError("%s - required module not found" % str(e)) + + +class SfpUtil(SfpUtilBase): + """Platform-specific SfpUtil class""" + + PORT_START = 0 + PORT_END = 33 + PORTS_IN_BLOCK = 34 + + BASE_OOM_PATH = "/sys/bus/i2c/devices/{0}-0050/" + BASE_CPLD1_PATH = "/sys/bus/i2c/devices/20-0061/" + BASE_CPLD2_PATH = "/sys/bus/i2c/devices/21-0062/" + + _port_to_is_present = {} + _port_to_lp_mode = {} + + _port_to_eeprom_mapping = {} + _port_to_i2c_mapping = { + 0: [1, 25], + 1: [2, 26], + 2: [3, 27], + 3: [4, 28], + 4: [5, 29], + 5: [6, 30], + 6: [7, 31], + 7: [8, 32], + 8: [9, 33], + 9: [10, 34], + 10: [11, 35], + 11: [12, 36], + 12: [13, 37], + 13: [14, 38], + 14: [15, 39], + 15: [16, 40], + 16: [17, 41], + 17: [18, 42], + 18: [19, 43], + 19: [20, 44], + 20: [21, 45], + 21: [22, 46], + 22: [23, 47], + 23: [24, 48], + 24: [25, 49], + 25: [26, 50], + 26: [27, 51], + 27: [28, 52], + 28: [29, 53], + 29: [30, 54], + 30: [31, 55], + 31: [32, 56], + 32: [33, 57], + 33: [34, 58], + } + + @property + def port_start(self): + return self.PORT_START + + @property + def port_end(self): + return self.PORT_END + + @property + def qsfp_ports(self): + return range(self.PORT_START, self.PORTS_IN_BLOCK + 1) + + @property + def port_to_eeprom_mapping(self): + return self._port_to_eeprom_mapping + + def __init__(self): + eeprom_path = self.BASE_OOM_PATH + "eeprom" + + for x in range(0, self.port_end+1): + self.port_to_eeprom_mapping[x] = eeprom_path.format( + self._port_to_i2c_mapping[x][1] + ) + + SfpUtilBase.__init__(self) + + def get_presence(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + if port_num < 16 : + present_path = self.BASE_CPLD1_PATH + "module_present_" + str(port_num+1) + else: + present_path = self.BASE_CPLD2_PATH + "module_present_" + str(port_num+1) + self.__port_to_is_present = present_path + + try: + val_file = open(self.__port_to_is_present) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = val_file.readline().rstrip() + val_file.close() + + if content == "1": + return True + + return False + + def get_low_power_mode(self, port_num): + raise NotImplementedError + + def set_low_power_mode(self, port_num, lpmode): + raise NotImplementedError + + def reset(self, port_num): + if port_num < self.port_start or port_num > self.port_end: + return False + + if port_num < 16 : + mod_rst_path = self.BASE_CPLD1_PATH + "module_reset_" + str(port_num+1) + else: + mod_rst_path = self.BASE_CPLD2_PATH + "module_reset_" + str(port_num+1) + + self.__port_to_mod_rst = mod_rst_path + try: + reg_file = open(self.__port_to_mod_rst, 'r+') + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + reg_value = '1' + + reg_file.write(reg_value) + reg_file.close() + + return True + + def get_transceiver_change_event(self): + """ + TODO: This function need to be implemented + when decide to support monitoring SFP(Xcvrd) + on this platform. + """ + raise NotImplementedError \ No newline at end of file diff --git a/device/accton/x86_64-accton_as9716_32d-r0/pmon_daemon_control.json b/device/accton/x86_64-accton_as9716_32d-r0/pmon_daemon_control.json new file mode 100644 index 0000000000..44bad64942 --- /dev/null +++ b/device/accton/x86_64-accton_as9716_32d-r0/pmon_daemon_control.json @@ -0,0 +1,4 @@ +{ + "skip_ledd": true +} + From be3cbdbceab9312c8bd65ccba4219d8b90f4a5b4 Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Fri, 30 Aug 2019 01:26:48 +0800 Subject: [PATCH 26/43] [docker-fpm-frr/bgpcfgd]: Update interface of bgpcfgd from swsssdk to swsscommon (#3264) Update interfaces of bgpcfd from swsssdk to swsscommon to unify a suit of interface with other component. Meanwhile, we can listen multiple tables at one thread under swsscommon interface. Signed-off-by: Ze Gan ganze718@gmail.com - What I did Move the interface of bgpcfgd from swsssdk to swsscommon. Because bgpcfgd need to listen more events in the future and we want to maintain one kind of APIs, swsscommon is more suitable than swsssdk. - How I did it Refactor the BGPConfigDaemon to two components, Daemon and BGPConfigManager. We can register new managers to the Daemon object if we want to listen more events. --- dockers/docker-fpm-frr/bgpcfgd | 149 +++++++++++++++++++++++---------- 1 file changed, 104 insertions(+), 45 deletions(-) diff --git a/dockers/docker-fpm-frr/bgpcfgd b/dockers/docker-fpm-frr/bgpcfgd index 012a766c20..f6d0b86385 100755 --- a/dockers/docker-fpm-frr/bgpcfgd +++ b/dockers/docker-fpm-frr/bgpcfgd @@ -1,65 +1,124 @@ #!/usr/bin/env python import sys +import copy +import Queue import redis import subprocess import syslog -from swsssdk import ConfigDBConnector +import os +from swsscommon import swsscommon -class BGPConfigDaemon: + +def run_command(command): + syslog.syslog(syslog.LOG_DEBUG, "execute command {}.".format(command)) + p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE) + stdout = p.communicate()[0] + p.wait() + if p.returncode != 0: + syslog.syslog(syslog.LOG_ERR, 'command execution returned {}. Command: "{}", stdout: "{}"'.format(p.returncode, command, stdout)) + + +class BGPConfigManager(object): + def __init__(self, daemon): + self.daemon = daemon + self.bgp_asn = None + self.bgp_message = Queue.Queue(0) + daemon.add_manager(swsscommon.CONFIG_DB, swsscommon.CFG_DEVICE_METADATA_TABLE_NAME, self.__metadata_handler) + daemon.add_manager(swsscommon.CONFIG_DB, swsscommon.CFG_BGP_NEIGHBOR_TABLE_NAME, self.__bgp_handler) + + def __metadata_handler(self, key, op, data): + if key != "localhost" \ + or "bgp_asn" not in data \ + or self.bgp_asn == data["bgp_asn"]: + return + + # TODO add ASN update commands + + self.bgp_asn = data["bgp_asn"] + self.__update_bgp() + + def __update_bgp(self): + while not self.bgp_message.empty(): + key, op, data = self.bgp_message.get() + syslog.syslog(syslog.LOG_INFO, 'value for {} changed to {}'.format(key, data)) + if op == swsscommon.SET_COMMAND: + command = "vtysh -c 'configure terminal' -c 'router bgp {}' -c 'neighbor {} remote-as {}'".format(self.bgp_asn, key, data['asn']) + run_command(command) + if "name" in data: + command = "vtysh -c 'configure terminal' -c 'router bgp {}' -c 'neighbor {} description {}'".format(self.bgp_asn, key, data['name']) + run_command(command) + if "admin_status" in data: + command_mod = "no " if data["admin_status"] == "up" else "" + command = "vtysh -c 'configure terminal' -c 'router bgp {}' -c '{}neighbor {} shutdown'".format(self.bgp_asn, command_mod, key) + run_command(command) + elif op == swsscommon.DEL_COMMAND: + # Neighbor is deleted + command = "vtysh -c 'configure terminal' -c 'router bgp {}' -c 'no neighbor {}'".format(self.bgp_asn, key) + run_command(command) + + def __bgp_handler(self, key, op, data): + self.bgp_message.put((key, op, data)) + # If ASN is not set, we just cache this message until the ASN is set. + if self.bgp_asn == None: + return + self.__update_bgp() + + +class Daemon(object): + + SELECT_TIMEOUT = 1000 + SUPPORT_DATABASE_LIST = (swsscommon.APPL_DB, swsscommon.CONFIG_DB) def __init__(self): - self.config_db = ConfigDBConnector() - self.config_db.connect() - self.bgp_asn = self.config_db.get_entry('DEVICE_METADATA', 'localhost')['bgp_asn'] - self.bgp_neighbor = self.config_db.get_table('BGP_NEIGHBOR') + self.appl_db = swsscommon.DBConnector(swsscommon.APPL_DB, swsscommon.DBConnector.DEFAULT_UNIXSOCKET, 0) + self.conf_db = swsscommon.DBConnector(swsscommon.CONFIG_DB, swsscommon.DBConnector.DEFAULT_UNIXSOCKET, 0) + self.selector = swsscommon.Select() + self.db_connectors = {} + self.callbacks = {} + self.subscribers = set() - def __run_command(self, command): -# print command - p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE) - stdout = p.communicate()[0] - p.wait() - if p.returncode != 0: - syslog.syslog(syslog.LOG_ERR, '[bgp cfgd] command execution returned {}. Command: "{}", stdout: "{}"'.format(p.returncode, command, stdout)) + def get_db_connector(self, db): + if db not in Daemon.SUPPORT_DATABASE_LIST: + raise ValueError("database {} not Daemon support list {}.".format(db, SUPPORT_DATABASE_LIST)) + # if this database connector has been initialized + if db not in self.db_connectors: + self.db_connectors[db] = swsscommon.DBConnector(db, swsscommon.DBConnector.DEFAULT_UNIXSOCKET, 0) + return self.db_connectors[db] - def metadata_handler(self, key, data): - if key == 'localhost' and data.has_key('bgp_asn'): - if data['bgp_asn'] != self.bgp_asn: - syslog.syslog(syslog.LOG_INFO, '[bgp cfgd] ASN changed to {} from {}, restart BGP...'.format(data['bgp_asn'], self.bgp_asn)) - self.__run_command("supervisorctl restart start.sh") - self.__run_command("service quagga restart") - self.bgp_asn = data['bgp_asn'] - - def bgp_handler(self, key, data): - syslog.syslog(syslog.LOG_INFO, '[bgp cfgd] value for {} changed to {}'.format(key, data)) - if not data: - # Neighbor is deleted - command = "vtysh -c 'configure terminal' -c 'router bgp {}' -c 'no neighbor {}'".format(self.bgp_asn, key) - self.__run_command(command) - self.bgp_neighbor.pop(key) - else: - command = "vtysh -c 'configure terminal' -c 'router bgp {}' -c 'neighbor {} remote-as {}'".format(self.bgp_asn, key, data['asn']) - self.__run_command(command) - if data.has_key('name'): - command = "vtysh -c 'configure terminal' -c 'router bgp {}' -c 'neighbor {} description {}'".format(self.bgp_asn, key, data['name']) - self.__run_command(command) - if data.has_key('admin_status'): - command_mod = 'no ' if data['admin_status'] == 'up' else '' - command = "vtysh -c 'configure terminal' -c 'router bgp {}' -c '{}neighbor {} shutdown'".format(self.bgp_asn, command_mod, key) - self.__run_command(command) - self.bgp_neighbor[key] = data + def add_manager(self, db, table_name, callback): + if db not in self.callbacks: + self.callbacks[db] = {} + if table_name not in self.callbacks[db]: + self.callbacks[db][table_name] = [] + conn = self.get_db_connector(db) + subscriber = swsscommon.SubscriberStateTable(conn, table_name) + self.subscribers.add(subscriber) + self.selector.addSelectable(subscriber) + self.callbacks[db][table_name].append(callback) def start(self): - self.config_db.subscribe('BGP_NEIGHBOR', - lambda table, key, data: self.bgp_handler(key, data)) - self.config_db.subscribe('DEVICE_METADATA', - lambda table, key, data: self.metadata_handler(key, data)) - self.config_db.listen() + while True: + state, selectable = self.selector.select(Daemon.SELECT_TIMEOUT) + if not selectable: + continue + for subscriber in self.subscribers: + key, op, fvs = subscriber.pop() + # if no new message + if not key: + continue + data = dict(fvs) + syslog.syslog(syslog.LOG_DEBUG, "Receive message : {}".format((key, op, fvs))) + for callback in self.callbacks[subscriber.getDbConnector().getDbId()][subscriber.getTableName()]: + callback(key, op, data) def main(): - daemon = BGPConfigDaemon() + syslog.openlog("bgpcfgd") + daemon = Daemon() + bgp_manager = BGPConfigManager(daemon) daemon.start() + syslog.closelog() if __name__ == "__main__": main() From 1c06ae6f2a32c077b354aafacb3ec967f4d475bd Mon Sep 17 00:00:00 2001 From: pavel-shirshov Date: Thu, 29 Aug 2019 14:14:12 -0700 Subject: [PATCH 27/43] [libteam]: timerfd read() could return 0 fix (#3393) * Update sonic-quagga submodule * [libteam]: timerfd read() could return 0 --- ...erfd-returned-0-don-t-consider-this-.patch | 39 +++++++++++++++++++ src/libteam/patch/series | 1 + 2 files changed, 40 insertions(+) create mode 100644 src/libteam/patch/0010-When-read-of-timerfd-returned-0-don-t-consider-this-.patch diff --git a/src/libteam/patch/0010-When-read-of-timerfd-returned-0-don-t-consider-this-.patch b/src/libteam/patch/0010-When-read-of-timerfd-returned-0-don-t-consider-this-.patch new file mode 100644 index 0000000000..e703d73e02 --- /dev/null +++ b/src/libteam/patch/0010-When-read-of-timerfd-returned-0-don-t-consider-this-.patch @@ -0,0 +1,39 @@ +From 038bed6fe3970dc829dbf9a282f7bea7198e7826 Mon Sep 17 00:00:00 2001 +From: Pavel Shirshov +Date: Wed, 28 Aug 2019 16:39:35 -0700 +Subject: [PATCH] When read of timerfd returned 0, don't consider this an error + +Just skip this event. +--- + teamd/teamd.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/teamd/teamd.c b/teamd/teamd.c +index 96794e8..a5ce745 100644 +--- a/teamd/teamd.c ++++ b/teamd/teamd.c +@@ -285,6 +285,10 @@ static int handle_period_fd(int fd) + teamd_log_err("read() failed."); + return -errno; + } ++ if (ret == 0) { ++ teamd_log_warn("read() for timer_fd returned 0."); ++ return 1; ++ } + if (ret != sizeof(uint64_t)) { + teamd_log_err("read() returned unexpected number of bytes."); + return -EINVAL; +@@ -345,7 +349,9 @@ static int teamd_run_loop_do_callbacks(struct list_item *lcb_list, fd_set *fds, + continue; + if (lcb->is_period) { + err = handle_period_fd(lcb->fd); +- if (err) ++ if (err == 1) ++ continue; /* timerfd returned 0. Don't do anything */ ++ if (err < 0) + return err; + } + err = lcb->func(ctx, events, lcb->priv); +-- +2.7.4 + diff --git a/src/libteam/patch/series b/src/libteam/patch/series index c30bdc7dd8..7be69525d9 100644 --- a/src/libteam/patch/series +++ b/src/libteam/patch/series @@ -7,3 +7,4 @@ 0007-Send-LACP-PDU-immediately-if-our-state-changed.patch 0008-libteam-Add-warm_reboot-mode.patch 0009-Fix-ifinfo_link_with_port-race-condition-with-newlink.patch +0010-When-read-of-timerfd-returned-0-don-t-consider-this-.patch From 1b0e900b28bfeb88717608750ed9fb3b539e30d4 Mon Sep 17 00:00:00 2001 From: SuvarnaMeenakshi <50386592+SuvarnaMeenakshi@users.noreply.github.com> Date: Tue, 3 Sep 2019 13:24:03 -0700 Subject: [PATCH 28/43] Add IPv6 Support in TACACS (#3395) * Add patch to support IPv6 * Add support for IPv6 * Remove in-correct changes by IPv6 support patch --- ...rsing-of-IP-addr-and-port-number-str.patch | 26 ++++++++++++++++ src/tacacs/nss/Makefile | 1 + ...ng-of-IP-address-and-port-number-to-.patch | 31 +++++++++++++++++++ src/tacacs/pam/Makefile | 1 + 4 files changed, 59 insertions(+) create mode 100644 src/tacacs/nss/0005-libnss-Modify-parsing-of-IP-addr-and-port-number-str.patch create mode 100644 src/tacacs/pam/0005-pam-Modify-parsing-of-IP-address-and-port-number-to-.patch diff --git a/src/tacacs/nss/0005-libnss-Modify-parsing-of-IP-addr-and-port-number-str.patch b/src/tacacs/nss/0005-libnss-Modify-parsing-of-IP-addr-and-port-number-str.patch new file mode 100644 index 0000000000..247972b63b --- /dev/null +++ b/src/tacacs/nss/0005-libnss-Modify-parsing-of-IP-addr-and-port-number-str.patch @@ -0,0 +1,26 @@ +From aa8af2b2400b7bbcbe7af0cb50047a98e93660ca Mon Sep 17 00:00:00 2001 +From: SuvarnaMeenakshi +Date: Thu, 29 Aug 2019 09:44:24 -0700 +Subject: [PATCH] libnss: Modify parsing of IP addr and port number string to + support IPv6 + +--- + nss_tacplus.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/nss_tacplus.c b/nss_tacplus.c +index f2a86e1..3ff3c35 100644 +--- a/nss_tacplus.c ++++ b/nss_tacplus.c +@@ -98,7 +98,7 @@ static int parse_tac_server(char *srv_buf) + hints.ai_socktype = SOCK_STREAM; + + srv = token + 7; +- port = strchr(srv, ':'); ++ port = strrchr(srv, ':'); + if(port) { + *port = '\0'; + port++; +-- +2.17.1 + diff --git a/src/tacacs/nss/Makefile b/src/tacacs/nss/Makefile index 51a5d63ebd..b9e16e812d 100644 --- a/src/tacacs/nss/Makefile +++ b/src/tacacs/nss/Makefile @@ -22,6 +22,7 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : git $(GIT_APPLY) ../0002-Enable-modifying-local-user-permission.patch git $(GIT_APPLY) ../0003-management-vrf-support.patch git $(GIT_APPLY) ../0004-Skip-accessing-tacacs-servers-for-local-non-tacacs-u.patch + git $(GIT_APPLY) ../0005-libnss-Modify-parsing-of-IP-addr-and-port-number-str.patch dpkg-buildpackage -rfakeroot -b -us -uc popd diff --git a/src/tacacs/pam/0005-pam-Modify-parsing-of-IP-address-and-port-number-to-.patch b/src/tacacs/pam/0005-pam-Modify-parsing-of-IP-address-and-port-number-to-.patch new file mode 100644 index 0000000000..541333232b --- /dev/null +++ b/src/tacacs/pam/0005-pam-Modify-parsing-of-IP-address-and-port-number-to-.patch @@ -0,0 +1,31 @@ +From 264de96e8a1c411371f9fc20b0b5b00c10e7052d Mon Sep 17 00:00:00 2001 +From: SuvarnaMeenakshi +Date: Thu, 29 Aug 2019 09:51:43 -0700 +Subject: [PATCH] pam: Modify parsing of IP address and port number to support + IPv6 + +--- + support.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/support.c b/support.c +index 44efee3..7c00618 100644 +--- a/support.c ++++ b/support.c +@@ -225,11 +226,11 @@ int _pam_parse (int argc, const char **argv) { + + if (*server_buf == '[' && (close_bracket = strchr(server_buf, ']')) != NULL) { /* Check for URI syntax */ + server_name = server_buf + 1; +- port = strchr(close_bracket, ':'); ++ port = strrchr(close_bracket, ':'); + *close_bracket = '\0'; + } else { /* Fall back to traditional syntax */ + server_name = server_buf; +- port = strchr(server_buf, ':'); ++ port = strrchr(server_buf, ':'); + } + if (port != NULL) { + *port = '\0'; +-- +2.17.1 + diff --git a/src/tacacs/pam/Makefile b/src/tacacs/pam/Makefile index c35f1aff37..487cf975fd 100644 --- a/src/tacacs/pam/Makefile +++ b/src/tacacs/pam/Makefile @@ -18,6 +18,7 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : git apply ../0002-Fix-libtac2-bin-install-directory-error.patch git apply ../0003-Obfuscate-key-before-printing-to-syslog.patch git apply ../0004-management-vrf-support.patch + git apply ../0005-pam-Modify-parsing-of-IP-address-and-port-number-to-.patch dpkg-buildpackage -rfakeroot -b -us -uc popd From 063567c9aa7b774c6cd69c7d2509e73f91ecbacd Mon Sep 17 00:00:00 2001 From: Shuotian Cheng Date: Thu, 5 Sep 2019 16:35:30 -0700 Subject: [PATCH 29/43] [minigraph]: Ignore mirror session portion in minigraph (#3410) This piece of information is currently not used. Revert this pull request in the future to add back the default mirror session information into the configuration database. Signed-off-by: Shu0T1an ChenG --- src/sonic-config-engine/minigraph.py | 28 ++++++++++--------- src/sonic-config-engine/tests/test_cfggen.py | 18 ++++++------ .../tests/test_minigraph_case.py | 18 ++++++------ 3 files changed, 35 insertions(+), 29 deletions(-) diff --git a/src/sonic-config-engine/minigraph.py b/src/sonic-config-engine/minigraph.py index 8461aad1fe..a65f2ef000 100644 --- a/src/sonic-config-engine/minigraph.py +++ b/src/sonic-config-engine/minigraph.py @@ -716,19 +716,21 @@ def parse_xml(filename, platform=None, port_config_file=None): results['TACPLUS_SERVER'] = dict((item, {'priority': '1', 'tcp_port': '49'}) for item in tacacs_servers) results['ACL_TABLE'] = acls - mirror_sessions = {} - if erspan_dst: - lo_addr = '0.0.0.0' - for lo in lo_intfs: - lo_network = ipaddress.IPNetwork(lo[1]) - if lo_network.version == 4: - lo_addr = str(lo_network.ip) - break - count = 0 - for dst in erspan_dst: - mirror_sessions['everflow{}'.format(count)] = {"dst_ip": dst, "src_ip": lo_addr} - count += 1 - results['MIRROR_SESSION'] = mirror_sessions + + # Do not configure the minigraph's mirror session, which is currently unused + # mirror_sessions = {} + # if erspan_dst: + # lo_addr = '0.0.0.0' + # for lo in lo_intfs: + # lo_network = ipaddress.IPNetwork(lo[1]) + # if lo_network.version == 4: + # lo_addr = str(lo_network.ip) + # break + # count = 0 + # for dst in erspan_dst: + # mirror_sessions['everflow{}'.format(count)] = {"dst_ip": dst, "src_ip": lo_addr} + # count += 1 + # results['MIRROR_SESSION'] = mirror_sessions # Special parsing for spine chassis frontend routers if current_device['type'] == spine_chassis_frontend_role: diff --git a/src/sonic-config-engine/tests/test_cfggen.py b/src/sonic-config-engine/tests/test_cfggen.py index a28e1263c4..d6544dc063 100644 --- a/src/sonic-config-engine/tests/test_cfggen.py +++ b/src/sonic-config-engine/tests/test_cfggen.py @@ -104,10 +104,11 @@ class TestCfgGen(TestCase): "'SSH_ACL': {'services': ['SSH'], 'type': 'CTRLPLANE', 'policy_desc': 'SSH_ACL'}, " "'EVERFLOWV6': {'type': 'MIRRORV6', 'policy_desc': 'EVERFLOWV6', 'ports': ['PortChannel01', 'PortChannel02', 'PortChannel03', 'PortChannel04', 'Ethernet24', 'Ethernet40', 'Ethernet20', 'Ethernet44', 'Ethernet48', 'Ethernet28', 'Ethernet96', 'Ethernet92', 'Ethernet76', 'Ethernet72', 'Ethernet52', 'Ethernet80', 'Ethernet56', 'Ethernet32', 'Ethernet16', 'Ethernet36', 'Ethernet12', 'Ethernet60', 'Ethernet8', 'Ethernet4', 'Ethernet0', 'Ethernet64', 'Ethernet68', 'Ethernet84', 'Ethernet88', 'Ethernet108', 'Ethernet104', 'Ethernet100']}}") - def test_minigraph_everflow(self): - argument = '-m "' + self.sample_graph_t0 + '" -p "' + self.port_config + '" -v MIRROR_SESSION' - output = self.run_script(argument) - self.assertEqual(output.strip(), "{'everflow0': {'src_ip': '10.1.0.32', 'dst_ip': '2.2.2.2'}}") +# everflow portion is not used +# def test_minigraph_everflow(self): +# argument = '-m "' + self.sample_graph_t0 + '" -p "' + self.port_config + '" -v MIRROR_SESSION' +# output = self.run_script(argument) +# self.assertEqual(output.strip(), "{'everflow0': {'src_ip': '10.1.0.32', 'dst_ip': '2.2.2.2'}}") def test_minigraph_mgmt_ports(self): argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v MGMT_PORT' @@ -234,10 +235,11 @@ class TestCfgGen(TestCase): "'Ethernet20': {'alias': 'fortyGigE0/20', 'pfc_asym': 'off', 'lanes': '45,46,47,48', 'description': 'fortyGigE0/20', 'mtu': '9100'}, " "'Ethernet24': {'alias': 'fortyGigE0/24', 'pfc_asym': 'off', 'lanes': '5,6,7,8', 'description': 'fortyGigE0/24', 'mtu': '9100'}}") - def test_metadata_everflow(self): - argument = '-m "' + self.sample_graph_metadata + '" -p "' + self.port_config + '" -v "MIRROR_SESSION"' - output = self.run_script(argument) - self.assertEqual(output.strip(), "{'everflow0': {'src_ip': '10.1.0.32', 'dst_ip': '10.0.100.1'}}") +# everflow portion is not used +# def test_metadata_everflow(self): +# argument = '-m "' + self.sample_graph_metadata + '" -p "' + self.port_config + '" -v "MIRROR_SESSION"' +# output = self.run_script(argument) +# self.assertEqual(output.strip(), "{'everflow0': {'src_ip': '10.1.0.32', 'dst_ip': '10.0.100.1'}}") def test_metadata_tacacs(self): argument = '-m "' + self.sample_graph_metadata + '" -p "' + self.port_config + '" -v "TACPLUS_SERVER"' diff --git a/src/sonic-config-engine/tests/test_minigraph_case.py b/src/sonic-config-engine/tests/test_minigraph_case.py index ded5d61823..71d0c3d7db 100644 --- a/src/sonic-config-engine/tests/test_minigraph_case.py +++ b/src/sonic-config-engine/tests/test_minigraph_case.py @@ -59,10 +59,11 @@ class TestCfgGenCaseInsensitive(TestCase): output = self.run_script(argument) self.assertEqual(output.strip(), 'value1\nvalue2') - def test_minigraph_everflow(self): - argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v MIRROR_SESSION' - output = self.run_script(argument) - self.assertEqual(output.strip(), "{'everflow0': {'src_ip': '10.1.0.32', 'dst_ip': '10.0.100.1'}}") +# everflow portion is not used +# def test_minigraph_everflow(self): +# argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v MIRROR_SESSION' +# output = self.run_script(argument) +# self.assertEqual(output.strip(), "{'everflow0': {'src_ip': '10.1.0.32', 'dst_ip': '10.0.100.1'}}") def test_minigraph_interfaces(self): argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v \'INTERFACE.keys()\'' @@ -104,10 +105,11 @@ class TestCfgGenCaseInsensitive(TestCase): output = self.run_script(argument) self.assertEqual(output.strip(), "{'switch-01t1': {'lo_addr': '10.1.0.186/32', 'mgmt_addr': '10.7.0.196/26', 'hwsku': 'Force10-S6000', 'type': 'LeafRouter', 'deployment_id': '2'}}") - def test_metadata_everflow(self): - argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v "MIRROR_SESSION"' - output = self.run_script(argument) - self.assertEqual(output.strip(), "{'everflow0': {'src_ip': '10.1.0.32', 'dst_ip': '10.0.100.1'}}") +# everflow portion is not used +# def test_metadata_everflow(self): +# argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v "MIRROR_SESSION"' +# output = self.run_script(argument) +# self.assertEqual(output.strip(), "{'everflow0': {'src_ip': '10.1.0.32', 'dst_ip': '10.0.100.1'}}") def test_metadata_tacacs(self): argument = '-m "' + self.sample_graph + '" -p "' + self.port_config + '" -v "TACPLUS_SERVER"' From 47504d13a62cc0c8a65b3f544a1e9ae00f1b17a3 Mon Sep 17 00:00:00 2001 From: Danny Allen <52468448+daall@users.noreply.github.com> Date: Thu, 5 Sep 2019 16:40:47 -0700 Subject: [PATCH 30/43] [src/sonic-utilities] Update sonic-utilities submodule (#3405) Submodule src/sonic-utilities 4024019594bc9174374ed3a3b594d8a43299dd07: [doc/command-reference.md] dos2unix & remove trailing spaces (#591) [show] Add BGP neighbor info to 'show ip/ipv6 interfaces' command output (#598) [config]: fix the runtime error of the 'show line' command (#595) (#596) Revert "Removed 'show interfaces alias'. (#412)" (#603) [debug][undebug] Rework of CLI for BGP (#583) Changing "show runningconfiguration interface" to "show runningconfiguration ports" (#600) [config] Add commands to add/remove DHCP server address from a VLAN (#585) [neighbor_advertiser] Use full vlan name for vxlan tunnel map programming (#604) [neighbor_advertise]: Use the existing MIRROR ACL table (#605) Read config DB for running interface(s) and display per port/interface (#594) [fast/warm reboot] kill radv docker before stopping BGP (#608) [config] Add commands for adding/removing syslog servers (#609) [config] Call 'systemctl reset-failed' before 'systemctl restart' when restarting services (#607) [Command Reference] Add config commands for DHCP relay destination address (#610) [config] Add commands for adding/removing NTP servers (#611) [neighbor_advertiser]: Add V6 support to mirror ICMPV6 packets (#612) [neighbor advertiser] try getting vlan addresses from o.s first (#613) [show] Add command 'show runningconfiguration syslog' (#617) [show] Add command 'show runningconfig ntp' (#620) Added check to config syslog del to verify if ip address was configured. (#622) [fast-reboot] Check if ASIC config has changed before warm reboot (#621) Signed-off-by: Danny Allen daall@microsoft.com --- src/sonic-utilities | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-utilities b/src/sonic-utilities index cb0e745d6a..4024019594 160000 --- a/src/sonic-utilities +++ b/src/sonic-utilities @@ -1 +1 @@ -Subproject commit cb0e745d6ad105f5bc486ec77955f06a7c25912e +Subproject commit 4024019594bc9174374ed3a3b594d8a43299dd07 From cfcf30570b4ffb23c55824f0d6d7a497943be8f1 Mon Sep 17 00:00:00 2001 From: Danny Allen <52468448+daall@users.noreply.github.com> Date: Thu, 5 Sep 2019 19:41:35 -0700 Subject: [PATCH 31/43] [build_debian] Include checksum of ASIC config files in SONiC filesystem (#3384) [build_debian] Generate checksum of ASIC config files * Adds script to generate checksums for ASIC config files * Adds step to build_debian that copies ASIC config checksum into SONiC filesystem Signed-off-by: Danny Allen daall@microsoft.com --- build_debian.sh | 8 +++ .../generate_asic_config_checksum.py | 67 +++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 files/build_scripts/generate_asic_config_checksum.py diff --git a/build_debian.sh b/build_debian.sh index 3cb6beda30..4a734aea09 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -463,6 +463,14 @@ build_number: ${BUILD_NUMBER:-0} built_by: $USER@$BUILD_HOSTNAME EOF +## Copy ASIC config checksum +python files/build_scripts/generate_asic_config_checksum.py +if [[ ! -f './asic_config_checksum' ]]; then + echo 'asic_config_checksum not found' + exit 1 +fi +sudo cp ./asic_config_checksum $FILESYSTEM_ROOT/etc/sonic/asic_config_checksum + if [ -f sonic_debian_extension.sh ]; then ./sonic_debian_extension.sh $FILESYSTEM_ROOT $PLATFORM_DIR fi diff --git a/files/build_scripts/generate_asic_config_checksum.py b/files/build_scripts/generate_asic_config_checksum.py new file mode 100644 index 0000000000..ca83f4f26a --- /dev/null +++ b/files/build_scripts/generate_asic_config_checksum.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python + +import syslog +import os +import hashlib + +SYSLOG_IDENTIFIER = 'asic_config_checksum' + +CHUNK_SIZE = 8192 + +CONFIG_FILES = { + os.path.abspath('./src/sonic-swss/swssconfig/sample/'): ['netbouncer.json', '00-copp.config.json'] +} + +OUTPUT_FILE = os.path.abspath('./asic_config_checksum') + +def log_info(msg): + syslog.openlog(SYSLOG_IDENTIFIER) + syslog.syslog(syslog.LOG_INFO, msg) + syslog.closelog() + +def log_error(msg): + syslog.openlog(SYSLOG_IDENTIFIER) + syslog.syslog(syslog.LOG_ERR, msg) + syslog.closelog() + +def get_config_files(config_file_map): + ''' + Generates a list of absolute paths to ASIC config files. + ''' + config_files = [] + for path, files in config_file_map.items(): + for config_file in files: + config_files.append(os.path.join(path, config_file)) + return config_files + +def generate_checksum(checksum_files): + ''' + Generates a checksum for a given list of files. Returns None if an error + occurs while reading the files. + + NOTE: The checksum is performed in the order provided. This function does + NOT do any re-ordering of the files before creating the checksum. + ''' + checksum = hashlib.sha1() + for checksum_file in checksum_files: + try: + with open(checksum_file, 'r') as f: + for chunk in iter(lambda: f.read(CHUNK_SIZE), b""): + checksum.update(chunk) + except IOError as e: + log_error('Error processing ASIC config file ' + checksum_file + ':' + e.strerror) + return None + + return checksum.hexdigest() + +def main(): + config_files = sorted(get_config_files(CONFIG_FILES)) + checksum = generate_checksum(config_files) + if checksum == None: + exit(1) + + with open(OUTPUT_FILE, 'w') as output: + output.write(checksum + '\n') + +if __name__ == '__main__': + main() From fdcb69d048ea6f4dab974f2b0498ebaccdde676e Mon Sep 17 00:00:00 2001 From: ciju-juniper <53076238+ciju-juniper@users.noreply.github.com> Date: Fri, 6 Sep 2019 20:22:45 +0530 Subject: [PATCH 32/43] [devices]: Adding platform support for Juniper QFX5210 (#3270) This switch has 64 QSFP28 (40G/100G) ports, 2 SFP+ (1G/10G) ports on Broadcom Tomahawk II chipset. CPU used in QFX5210-64C-S is Intel Broadwell-DE. The machine has Redundant and hot-swappable Power Supply (1+1) and also has Redundant and hot swappable fans (3+1). Signed-off-by: Ciju Rajan K --- .../Juniper-QFX5210-64C/port_config.ini | 65 + .../Juniper-QFX5210-64C/sai.profile | 1 + .../th2-qfx5210-64x100G.config.bcm | 875 +++++ .../x86_64-juniper_qfx5210-r0/default_sku | 1 + .../x86_64-juniper_qfx5210-r0/installer.conf | 2 + .../led_proc_init.soc | 155 + .../media_settings.json | 2823 +++++++++++++++++ .../plugins/eeprom.py | 40 + .../plugins/psuutil.py | 61 + .../plugins/sfputil.py | 761 +++++ platform/broadcom/one-image.mk | 3 +- platform/broadcom/platform-modules-juniper.mk | 13 + platform/broadcom/rules.mk | 1 + .../sonic-platform-modules-juniper/.gitignore | 50 + .../sonic-platform-modules-juniper/LICENSE | 16 + .../sonic-platform-modules-juniper/README.md | 1 + .../common/modules/juniper_i2c_cpld.c | 892 ++++++ .../common/modules/ym2651y.c | 622 ++++ .../debian/changelog | 6 + .../debian/compat | 1 + .../debian/control | 11 + .../debian/files | 2 + .../debian/rules | 86 + .../sonic-platform-juniper-qfx5210.install | 4 + .../sonic-platform-juniper-qfx5210.postinst | 2 + .../qfx5210/modules/Makefile | 2 + .../qfx5210/modules/juniper_i2c_cpld.c | 1 + .../modules/x86-64-juniper-qfx5210-64x-fan.c | 470 +++ .../modules/x86-64-juniper-qfx5210-64x-leds.c | 450 +++ .../modules/x86-64-juniper-qfx5210-64x-psu.c | 242 ++ .../modules/x86-64-juniper-qfx5210-64x-sfp.c | 1579 +++++++++ .../qfx5210/modules/ym2651y.c | 1 + .../service/qfx5210-platform-init.service | 13 + .../qfx5210/setup.py | 16 + .../qfx5210/sonic_platform/__init__.py | 1 + .../qfx5210/sonic_platform/chassis.py | 149 + .../qfx5210/sonic_platform/platform.py | 67 + .../qfx5210/utils/README | 87 + .../qfx5210/utils/juniper_qfx5210_monitor.py | 454 +++ .../qfx5210/utils/juniper_qfx5210_util.py | 545 ++++ .../qfx5210/utils/platform_poweroff | 106 + 41 files changed, 10676 insertions(+), 1 deletion(-) create mode 100644 device/juniper/x86_64-juniper_qfx5210-r0/Juniper-QFX5210-64C/port_config.ini create mode 100644 device/juniper/x86_64-juniper_qfx5210-r0/Juniper-QFX5210-64C/sai.profile create mode 100644 device/juniper/x86_64-juniper_qfx5210-r0/Juniper-QFX5210-64C/th2-qfx5210-64x100G.config.bcm create mode 100644 device/juniper/x86_64-juniper_qfx5210-r0/default_sku create mode 100644 device/juniper/x86_64-juniper_qfx5210-r0/installer.conf create mode 100755 device/juniper/x86_64-juniper_qfx5210-r0/led_proc_init.soc create mode 100644 device/juniper/x86_64-juniper_qfx5210-r0/media_settings.json create mode 100644 device/juniper/x86_64-juniper_qfx5210-r0/plugins/eeprom.py create mode 100755 device/juniper/x86_64-juniper_qfx5210-r0/plugins/psuutil.py create mode 100644 device/juniper/x86_64-juniper_qfx5210-r0/plugins/sfputil.py create mode 100755 platform/broadcom/platform-modules-juniper.mk create mode 100644 platform/broadcom/sonic-platform-modules-juniper/.gitignore create mode 100644 platform/broadcom/sonic-platform-modules-juniper/LICENSE create mode 100644 platform/broadcom/sonic-platform-modules-juniper/README.md create mode 100644 platform/broadcom/sonic-platform-modules-juniper/common/modules/juniper_i2c_cpld.c create mode 100644 platform/broadcom/sonic-platform-modules-juniper/common/modules/ym2651y.c create mode 100755 platform/broadcom/sonic-platform-modules-juniper/debian/changelog create mode 100644 platform/broadcom/sonic-platform-modules-juniper/debian/compat create mode 100755 platform/broadcom/sonic-platform-modules-juniper/debian/control create mode 100644 platform/broadcom/sonic-platform-modules-juniper/debian/files create mode 100755 platform/broadcom/sonic-platform-modules-juniper/debian/rules create mode 100644 platform/broadcom/sonic-platform-modules-juniper/debian/sonic-platform-juniper-qfx5210.install create mode 100644 platform/broadcom/sonic-platform-modules-juniper/debian/sonic-platform-juniper-qfx5210.postinst create mode 100644 platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/Makefile create mode 120000 platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/juniper_i2c_cpld.c create mode 100644 platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-fan.c create mode 100644 platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-leds.c create mode 100644 platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-psu.c create mode 100644 platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-sfp.c create mode 120000 platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/ym2651y.c create mode 100755 platform/broadcom/sonic-platform-modules-juniper/qfx5210/service/qfx5210-platform-init.service create mode 100755 platform/broadcom/sonic-platform-modules-juniper/qfx5210/setup.py create mode 100755 platform/broadcom/sonic-platform-modules-juniper/qfx5210/sonic_platform/__init__.py create mode 100755 platform/broadcom/sonic-platform-modules-juniper/qfx5210/sonic_platform/chassis.py create mode 100755 platform/broadcom/sonic-platform-modules-juniper/qfx5210/sonic_platform/platform.py create mode 100755 platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/README create mode 100755 platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/juniper_qfx5210_monitor.py create mode 100755 platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/juniper_qfx5210_util.py create mode 100755 platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/platform_poweroff diff --git a/device/juniper/x86_64-juniper_qfx5210-r0/Juniper-QFX5210-64C/port_config.ini b/device/juniper/x86_64-juniper_qfx5210-r0/Juniper-QFX5210-64C/port_config.ini new file mode 100644 index 0000000000..20d1b84edc --- /dev/null +++ b/device/juniper/x86_64-juniper_qfx5210-r0/Juniper-QFX5210-64C/port_config.ini @@ -0,0 +1,65 @@ +# name lanes alias +Ethernet0 73,74,75,76 hundredGigE1 +Ethernet4 65,66,67,68 hundredGigE2 +Ethernet8 81,82,83,84 hundredGigE3 +Ethernet12 89,90,91,92 hundredGigE4 +Ethernet16 105,106,107,108 hundredGigE5 +Ethernet20 97,98,99,100 hundredGigE6 +Ethernet24 113,114,115,116 hundredGigE7 +Ethernet28 121,122,123,124 hundredGigE8 +Ethernet32 41,42,43,44 hundredGigE9 +Ethernet36 33,34,35,36 hundredGigE10 +Ethernet40 49,50,51,52 hundredGigE11 +Ethernet44 57,58,59,60 hundredGigE12 +Ethernet48 137,138,139,140 hundredGigE13 +Ethernet52 129,130,131,132 hundredGigE14 +Ethernet56 145,146,147,148 hundredGigE15 +Ethernet60 153,154,155,156 hundredGigE16 +Ethernet64 173,174,175,176 hundredGigE17 +Ethernet68 165,166,167,168 hundredGigE18 +Ethernet72 181,182,183,184 hundredGigE19 +Ethernet76 189,190,191,192 hundredGigE20 +Ethernet80 13,14,15,16 hundredGigE21 +Ethernet84 5,6,7,8 hundredGigE22 +Ethernet88 29,30,31,32 hundredGigE23 +Ethernet92 21,22,23,24 hundredGigE24 +Ethernet96 205,206,207,208 hundredGigE25 +Ethernet100 197,198,199,200 hundredGigE26 +Ethernet104 213,214,215,216 hundredGigE27 +Ethernet108 221,222,223,224 hundredGigE28 +Ethernet112 229,230,231,232 hundredGigE29 +Ethernet116 237,238,239,240 hundredGigE30 +Ethernet120 245,246,247,248 hundredGigE31 +Ethernet124 253,254,255,256 hundredGigE32 +Ethernet128 69,70,71,72 hundredGigE33 +Ethernet132 77,78,79,80 hundredGigE34 +Ethernet136 93,94,95,96 hundredGigE35 +Ethernet140 85,86,87,88 hundredGigE36 +Ethernet144 101,102,103,104 hundredGigE37 +Ethernet148 109,110,111,112 hundredGigE38 +Ethernet152 125,126,127,128 hundredGigE39 +Ethernet156 117,118,119,120 hundredGigE40 +Ethernet160 37,38,39,40 hundredGigE41 +Ethernet164 45,46,47,48 hundredGigE42 +Ethernet168 61,62,63,64 hundredGigE43 +Ethernet172 53,54,55,56 hundredGigE44 +Ethernet176 133,134,135,136 hundredGigE45 +Ethernet180 141,142,143,144 hundredGigE46 +Ethernet184 157,158,159,160 hundredGigE47 +Ethernet188 149,150,151,152 hundredGigE48 +Ethernet192 161,162,163,164 hundredGigE49 +Ethernet196 169,170,171,172 hundredGigE50 +Ethernet200 185,186,187,188 hundredGigE51 +Ethernet204 177,178,179,180 hundredGigE52 +Ethernet208 1,2,3,4 hundredGigE53 +Ethernet212 9,10,11,12 hundredGigE54 +Ethernet216 25,26,27,28 hundredGigE55 +Ethernet220 17,18,19,20 hundredGigE56 +Ethernet224 193,194,195,196 hundredGigE57 +Ethernet228 201,202,203,204 hundredGigE58 +Ethernet232 217,218,219,220 hundredGigE59 +Ethernet236 209,210,211,212 hundredGigE60 +Ethernet240 225,226,227,228 hundredGigE61 +Ethernet244 233,234,235,236 hundredGigE62 +Ethernet248 249,250,251,252 hundredGigE63 +Ethernet252 241,242,243,244 hundredGigE64 diff --git a/device/juniper/x86_64-juniper_qfx5210-r0/Juniper-QFX5210-64C/sai.profile b/device/juniper/x86_64-juniper_qfx5210-r0/Juniper-QFX5210-64C/sai.profile new file mode 100644 index 0000000000..dca8c2f68c --- /dev/null +++ b/device/juniper/x86_64-juniper_qfx5210-r0/Juniper-QFX5210-64C/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th2-qfx5210-64x100G.config.bcm diff --git a/device/juniper/x86_64-juniper_qfx5210-r0/Juniper-QFX5210-64C/th2-qfx5210-64x100G.config.bcm b/device/juniper/x86_64-juniper_qfx5210-r0/Juniper-QFX5210-64C/th2-qfx5210-64x100G.config.bcm new file mode 100644 index 0000000000..5c03be7366 --- /dev/null +++ b/device/juniper/x86_64-juniper_qfx5210-r0/Juniper-QFX5210-64C/th2-qfx5210-64x100G.config.bcm @@ -0,0 +1,875 @@ +# Broadcom Tomahawk SDK configuration +os=unix +schan_intr_enable=0 +l2_mem_entries=40960 +l2xmsg_mode=1 +l3_mem_entries=40960 +parity_correction=0 +parity_enable=0 +mmu_lossless=1 + +pbmp_xport_xe=0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +pbmp_oversubscribe=0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + +# platform specific setting +arl_clean_timeout_usec=15000000 +asf_mem_profile=2 +bcm_num_cos=8 +bcm_stat_flags=1 +bcm_stat_jumbo=9236 +cdma_timeout_usec=15000000 +dma_desc_timeout_usec=15000000 +ipv6_lpm_128b_enable=1 +l3_alpm_enable=2 +lpm_scaling_enable=0 +max_vp_lags=0 +miim_intr_enable=0 +module_64ports=1 +oversubscribe_mode=1 + +#add loopback port +# port 33 is the first loopback port +portmap_33=260:10 +# port 66 is the first management port +portmap_66=257:10 +# port 67 is the second loopback port +portmap_67=261:10 +# port 100 is the second management port +portmap_100=259:10 +# port 101 is the third loopback port +portmap_101=262:10 +# port 135 is the fourth loopback port +portmap_135=263:10 + +#Port0 +#FC18 +portmap_36=73:100 +phy_chain_rx_lane_map_physical{73.0}=0x3210 +phy_chain_tx_lane_map_physical{73.0}=0x3021 +phy_chain_rx_polarity_flip_physical{73.0}=0x0 +phy_chain_rx_polarity_flip_physical{74.0}=0x0 +phy_chain_rx_polarity_flip_physical{75.0}=0x0 +phy_chain_rx_polarity_flip_physical{76.0}=0x1 +phy_chain_tx_polarity_flip_physical{73.0}=0x0 +phy_chain_tx_polarity_flip_physical{74.0}=0x0 +phy_chain_tx_polarity_flip_physical{75.0}=0x1 +phy_chain_tx_polarity_flip_physical{76.0}=0x0 +#Port1 +#FC16 +portmap_34=65:100 +phy_chain_rx_lane_map_physical{65.0}=0x3210 +phy_chain_tx_lane_map_physical{65.0}=0x3210 +phy_chain_rx_polarity_flip_physical{65.0}=0x0 +phy_chain_rx_polarity_flip_physical{66.0}=0x0 +phy_chain_rx_polarity_flip_physical{67.0}=0x0 +phy_chain_rx_polarity_flip_physical{68.0}=0x0 +phy_chain_tx_polarity_flip_physical{65.0}=0x1 +phy_chain_tx_polarity_flip_physical{66.0}=0x0 +phy_chain_tx_polarity_flip_physical{67.0}=0x0 +phy_chain_tx_polarity_flip_physical{68.0}=0x0 +#Port2 +#FC20 +portmap_38=81:100 +phy_chain_rx_lane_map_physical{81.0}=0x1230 +phy_chain_tx_lane_map_physical{81.0}=0x1032 +phy_chain_rx_polarity_flip_physical{81.0}=0x1 +phy_chain_rx_polarity_flip_physical{82.0}=0x0 +phy_chain_rx_polarity_flip_physical{83.0}=0x1 +phy_chain_rx_polarity_flip_physical{84.0}=0x0 +phy_chain_tx_polarity_flip_physical{81.0}=0x1 +phy_chain_tx_polarity_flip_physical{82.0}=0x1 +phy_chain_tx_polarity_flip_physical{83.0}=0x1 +phy_chain_tx_polarity_flip_physical{84.0}=0x0 +#Port3 +#FC22 +portmap_40=89:100 +phy_chain_rx_lane_map_physical{89.0}=0x0132 +phy_chain_tx_lane_map_physical{89.0}=0x1203 +phy_chain_rx_polarity_flip_physical{89.0}=0x1 +phy_chain_rx_polarity_flip_physical{90.0}=0x0 +phy_chain_rx_polarity_flip_physical{91.0}=0x0 +phy_chain_rx_polarity_flip_physical{92.0}=0x1 +phy_chain_tx_polarity_flip_physical{89.0}=0x1 +phy_chain_tx_polarity_flip_physical{90.0}=0x0 +phy_chain_tx_polarity_flip_physical{91.0}=0x1 +phy_chain_tx_polarity_flip_physical{92.0}=0x1 +#Port4 +#FC26 +portmap_44=105:100 +phy_chain_rx_lane_map_physical{105.0}=0x3210 +phy_chain_tx_lane_map_physical{105.0}=0x0231 +phy_chain_rx_polarity_flip_physical{105.0}=0x0 +phy_chain_rx_polarity_flip_physical{106.0}=0x0 +phy_chain_rx_polarity_flip_physical{107.0}=0x0 +phy_chain_rx_polarity_flip_physical{108.0}=0x1 +phy_chain_tx_polarity_flip_physical{105.0}=0x0 +phy_chain_tx_polarity_flip_physical{106.0}=0x1 +phy_chain_tx_polarity_flip_physical{107.0}=0x0 +phy_chain_tx_polarity_flip_physical{108.0}=0x1 +#Port5 +#FC24 +portmap_42=97:100 +phy_chain_rx_lane_map_physical{97.0}=0x0213 +phy_chain_tx_lane_map_physical{97.0}=0x3210 +phy_chain_rx_polarity_flip_physical{97.0}=0x1 +phy_chain_rx_polarity_flip_physical{98.0}=0x0 +phy_chain_rx_polarity_flip_physical{99.0}=0x0 +phy_chain_rx_polarity_flip_physical{100.0}=0x1 +phy_chain_tx_polarity_flip_physical{97.0}=0x1 +phy_chain_tx_polarity_flip_physical{98.0}=0x1 +phy_chain_tx_polarity_flip_physical{99.0}=0x0 +phy_chain_tx_polarity_flip_physical{100.0}=0x0 +#Port6 +#FC 28 +portmap_46=113:100 +phy_chain_rx_lane_map_physical{113.0}=0x3021 +phy_chain_tx_lane_map_physical{113.0}=0x0312 +phy_chain_rx_polarity_flip_physical{113.0}=0x0 +phy_chain_rx_polarity_flip_physical{114.0}=0x1 +phy_chain_rx_polarity_flip_physical{115.0}=0x1 +phy_chain_rx_polarity_flip_physical{116.0}=0x0 +phy_chain_tx_polarity_flip_physical{113.0}=0x1 +phy_chain_tx_polarity_flip_physical{114.0}=0x0 +phy_chain_tx_polarity_flip_physical{115.0}=0x0 +phy_chain_tx_polarity_flip_physical{116.0}=0x1 +#Port7 +#FC30 +portmap_48=121:100 +phy_chain_rx_lane_map_physical{121.0}=0x3021 +phy_chain_tx_lane_map_physical{121.0}=0x2130 +phy_chain_rx_polarity_flip_physical{121.0}=0x0 +phy_chain_rx_polarity_flip_physical{122.0}=0x1 +phy_chain_rx_polarity_flip_physical{123.0}=0x1 +phy_chain_rx_polarity_flip_physical{124.0}=0x0 +phy_chain_tx_polarity_flip_physical{121.0}=0x1 +phy_chain_tx_polarity_flip_physical{122.0}=0x1 +phy_chain_tx_polarity_flip_physical{123.0}=0x1 +phy_chain_tx_polarity_flip_physical{124.0}=0x0 +#Port8 +#FC10 +portmap_11=41:100 +phy_chain_rx_lane_map_physical{41.0}=0x0132 +phy_chain_tx_lane_map_physical{41.0}=0x1302 +phy_chain_rx_polarity_flip_physical{41.0}=0x0 +phy_chain_rx_polarity_flip_physical{42.0}=0x0 +phy_chain_rx_polarity_flip_physical{43.0}=0x0 +phy_chain_rx_polarity_flip_physical{44.0}=0x0 +phy_chain_tx_polarity_flip_physical{41.0}=0x1 +phy_chain_tx_polarity_flip_physical{42.0}=0x0 +phy_chain_tx_polarity_flip_physical{43.0}=0x0 +phy_chain_tx_polarity_flip_physical{44.0}=0x0 +#Port9 +#FC8 +portmap_9=33:100 +phy_chain_rx_lane_map_physical{33.0}=0x2310 +phy_chain_tx_lane_map_physical{33.0}=0x0213 +phy_chain_rx_polarity_flip_physical{33.0}=0x0 +phy_chain_rx_polarity_flip_physical{34.0}=0x1 +phy_chain_rx_polarity_flip_physical{35.0}=0x0 +phy_chain_rx_polarity_flip_physical{36.0}=0x0 +phy_chain_tx_polarity_flip_physical{33.0}=0x1 +phy_chain_tx_polarity_flip_physical{34.0}=0x1 +phy_chain_tx_polarity_flip_physical{35.0}=0x0 +phy_chain_tx_polarity_flip_physical{36.0}=0x0 +#Port10 +#FC12 +portmap_13=49:100 +phy_chain_rx_lane_map_physical{49.0}=0x3210 +phy_chain_tx_lane_map_physical{49.0}=0x3102 +phy_chain_rx_polarity_flip_physical{49.0}=0x1 +phy_chain_rx_polarity_flip_physical{50.0}=0x0 +phy_chain_rx_polarity_flip_physical{51.0}=0x1 +phy_chain_rx_polarity_flip_physical{52.0}=0x0 +phy_chain_tx_polarity_flip_physical{49.0}=0x1 +phy_chain_tx_polarity_flip_physical{50.0}=0x1 +phy_chain_tx_polarity_flip_physical{51.0}=0x0 +phy_chain_tx_polarity_flip_physical{52.0}=0x1 +#Port11 +#FC14 +portmap_15=57:100 +phy_chain_rx_lane_map_physical{57.0}=0x3210 +phy_chain_tx_lane_map_physical{57.0}=0x1302 +phy_chain_rx_polarity_flip_physical{57.0}=0x1 +phy_chain_rx_polarity_flip_physical{58.0}=0x0 +phy_chain_rx_polarity_flip_physical{59.0}=0x1 +phy_chain_rx_polarity_flip_physical{60.0}=0x0 +phy_chain_tx_polarity_flip_physical{57.0}=0x0 +phy_chain_tx_polarity_flip_physical{58.0}=0x0 +phy_chain_tx_polarity_flip_physical{59.0}=0x0 +phy_chain_tx_polarity_flip_physical{60.0}=0x1 +#Port12 +#FC34 +portmap_70=137:100 +phy_chain_rx_lane_map_physical{137.0}=0x3210 +phy_chain_tx_lane_map_physical{137.0}=0x0213 +phy_chain_rx_polarity_flip_physical{137.0}=0x0 +phy_chain_rx_polarity_flip_physical{138.0}=0x0 +phy_chain_rx_polarity_flip_physical{139.0}=0x1 +phy_chain_rx_polarity_flip_physical{140.0}=0x0 +phy_chain_tx_polarity_flip_physical{137.0}=0x1 +phy_chain_tx_polarity_flip_physical{138.0}=0x0 +phy_chain_tx_polarity_flip_physical{139.0}=0x0 +phy_chain_tx_polarity_flip_physical{140.0}=0x0 +#Port13 +#FC32 +portmap_68=129:100 +phy_chain_rx_lane_map_physical{129.0}=0x3021 +phy_chain_tx_lane_map_physical{129.0}=0x1203 +phy_chain_rx_polarity_flip_physical{129.0}=0x1 +phy_chain_rx_polarity_flip_physical{130.0}=0x0 +phy_chain_rx_polarity_flip_physical{131.0}=0x0 +phy_chain_rx_polarity_flip_physical{132.0}=0x0 +phy_chain_tx_polarity_flip_physical{129.0}=0x1 +phy_chain_tx_polarity_flip_physical{130.0}=0x1 +phy_chain_tx_polarity_flip_physical{131.0}=0x1 +phy_chain_tx_polarity_flip_physical{132.0}=0x1 +#Port14 +#FC36 +portmap_72=145:100 +phy_chain_rx_lane_map_physical{145.0}=0x0213 +phy_chain_tx_lane_map_physical{145.0}=0x2301 +phy_chain_rx_polarity_flip_physical{145.0}=0x1 +phy_chain_rx_polarity_flip_physical{146.0}=0x1 +phy_chain_rx_polarity_flip_physical{147.0}=0x0 +phy_chain_rx_polarity_flip_physical{148.0}=0x0 +phy_chain_tx_polarity_flip_physical{145.0}=0x0 +phy_chain_tx_polarity_flip_physical{146.0}=0x0 +phy_chain_tx_polarity_flip_physical{147.0}=0x0 +phy_chain_tx_polarity_flip_physical{148.0}=0x1 +#Port15 +#FC38 +portmap_74=153:100 +phy_chain_rx_lane_map_physical{153.0}=0x0213 +phy_chain_tx_lane_map_physical{153.0}=0x1302 +phy_chain_rx_polarity_flip_physical{153.0}=0x1 +phy_chain_rx_polarity_flip_physical{154.0}=0x0 +phy_chain_rx_polarity_flip_physical{155.0}=0x1 +phy_chain_rx_polarity_flip_physical{156.0}=0x1 +phy_chain_tx_polarity_flip_physical{153.0}=0x0 +phy_chain_tx_polarity_flip_physical{154.0}=0x1 +phy_chain_tx_polarity_flip_physical{155.0}=0x0 +phy_chain_tx_polarity_flip_physical{156.0}=0x0 +#Port16 +#FC43 +portmap_79=173:100 +phy_chain_rx_lane_map_physical{173.0}=0x1032 +phy_chain_tx_lane_map_physical{173.0}=0x1203 +phy_chain_rx_polarity_flip_physical{173.0}=0x0 +phy_chain_rx_polarity_flip_physical{174.0}=0x0 +phy_chain_rx_polarity_flip_physical{175.0}=0x0 +phy_chain_rx_polarity_flip_physical{176.0}=0x0 +phy_chain_tx_polarity_flip_physical{173.0}=0x1 +phy_chain_tx_polarity_flip_physical{174.0}=0x1 +phy_chain_tx_polarity_flip_physical{175.0}=0x0 +phy_chain_tx_polarity_flip_physical{176.0}=0x1 +#Port17 +#FC41 +portmap_77=165:100 +phy_chain_rx_lane_map_physical{165.0}=0x1230 +phy_chain_tx_lane_map_physical{165.0}=0x2130 +phy_chain_rx_polarity_flip_physical{165.0}=0x1 +phy_chain_rx_polarity_flip_physical{166.0}=0x0 +phy_chain_rx_polarity_flip_physical{167.0}=0x1 +phy_chain_rx_polarity_flip_physical{168.0}=0x1 +phy_chain_tx_polarity_flip_physical{165.0}=0x1 +phy_chain_tx_polarity_flip_physical{166.0}=0x0 +phy_chain_tx_polarity_flip_physical{167.0}=0x1 +phy_chain_tx_polarity_flip_physical{168.0}=0x0 +#Port18 +#FC45 +portmap_81=181:100 +phy_chain_rx_lane_map_physical{181.0}=0x0312 +phy_chain_tx_lane_map_physical{181.0}=0x3120 +phy_chain_rx_polarity_flip_physical{181.0}=0x0 +phy_chain_rx_polarity_flip_physical{182.0}=0x1 +phy_chain_rx_polarity_flip_physical{183.0}=0x1 +phy_chain_rx_polarity_flip_physical{184.0}=0x0 +phy_chain_tx_polarity_flip_physical{181.0}=0x0 +phy_chain_tx_polarity_flip_physical{182.0}=0x0 +phy_chain_tx_polarity_flip_physical{183.0}=0x1 +phy_chain_tx_polarity_flip_physical{184.0}=0x0 +#Port19 +#FC47 +portmap_83=189:100 +phy_chain_rx_lane_map_physical{189.0}=0x0132 +phy_chain_tx_lane_map_physical{189.0}=0x3210 +phy_chain_rx_polarity_flip_physical{189.0}=0x0 +phy_chain_rx_polarity_flip_physical{190.0}=0x1 +phy_chain_rx_polarity_flip_physical{191.0}=0x1 +phy_chain_rx_polarity_flip_physical{192.0}=0x1 +phy_chain_tx_polarity_flip_physical{189.0}=0x1 +phy_chain_tx_polarity_flip_physical{190.0}=0x0 +phy_chain_tx_polarity_flip_physical{191.0}=0x0 +phy_chain_tx_polarity_flip_physical{192.0}=0x0 +#Port20 +#FC3 +portmap_4=13:100 +phy_chain_rx_lane_map_physical{13.0}=0x3120 +phy_chain_tx_lane_map_physical{13.0}=0x3210 +phy_chain_rx_polarity_flip_physical{13.0}=0x1 +phy_chain_rx_polarity_flip_physical{14.0}=0x0 +phy_chain_rx_polarity_flip_physical{15.0}=0x1 +phy_chain_rx_polarity_flip_physical{16.0}=0x1 +phy_chain_tx_polarity_flip_physical{13.0}=0x0 +phy_chain_tx_polarity_flip_physical{14.0}=0x0 +phy_chain_tx_polarity_flip_physical{15.0}=0x0 +phy_chain_tx_polarity_flip_physical{16.0}=0x1 +#Port21 +#FC1 +portmap_2=5:100 +phy_chain_rx_lane_map_physical{5.0}=0x0213 +phy_chain_tx_lane_map_physical{5.0}=0x0321 +phy_chain_rx_polarity_flip_physical{5.0}=0x0 +phy_chain_rx_polarity_flip_physical{6.0}=0x0 +phy_chain_rx_polarity_flip_physical{7.0}=0x1 +phy_chain_rx_polarity_flip_physical{8.0}=0x0 +phy_chain_tx_polarity_flip_physical{5.0}=0x1 +phy_chain_tx_polarity_flip_physical{6.0}=0x1 +phy_chain_tx_polarity_flip_physical{7.0}=0x0 +phy_chain_tx_polarity_flip_physical{8.0}=0x1 +#Port22 +#FC7 +portmap_8=29:100 +phy_chain_rx_lane_map_physical{29.0}=0x3021 +phy_chain_tx_lane_map_physical{29.0}=0x2130 +phy_chain_rx_polarity_flip_physical{29.0}=0x1 +phy_chain_rx_polarity_flip_physical{30.0}=0x0 +phy_chain_rx_polarity_flip_physical{31.0}=0x0 +phy_chain_rx_polarity_flip_physical{32.0}=0x1 +phy_chain_tx_polarity_flip_physical{29.0}=0x1 +phy_chain_tx_polarity_flip_physical{30.0}=0x0 +phy_chain_tx_polarity_flip_physical{31.0}=0x0 +phy_chain_tx_polarity_flip_physical{32.0}=0x0 +#Port23 +#FC5 +portmap_6=21:100 +phy_chain_rx_lane_map_physical{21.0}=0x0321 +phy_chain_tx_lane_map_physical{21.0}=0x0123 +phy_chain_rx_polarity_flip_physical{21.0}=0x1 +phy_chain_rx_polarity_flip_physical{22.0}=0x0 +phy_chain_rx_polarity_flip_physical{23.0}=0x1 +phy_chain_rx_polarity_flip_physical{24.0}=0x0 +phy_chain_tx_polarity_flip_physical{21.0}=0x0 +phy_chain_tx_polarity_flip_physical{22.0}=0x1 +phy_chain_tx_polarity_flip_physical{23.0}=0x1 +phy_chain_tx_polarity_flip_physical{24.0}=0x1 +#Port24 +#FC51 +portmap_105=205:100 +phy_chain_rx_lane_map_physical{205.0}=0x0132 +phy_chain_tx_lane_map_physical{205.0}=0x1230 +phy_chain_rx_polarity_flip_physical{205.0}=0x1 +phy_chain_rx_polarity_flip_physical{206.0}=0x1 +phy_chain_rx_polarity_flip_physical{207.0}=0x1 +phy_chain_rx_polarity_flip_physical{208.0}=0x0 +phy_chain_tx_polarity_flip_physical{205.0}=0x0 +phy_chain_tx_polarity_flip_physical{206.0}=0x1 +phy_chain_tx_polarity_flip_physical{207.0}=0x0 +phy_chain_tx_polarity_flip_physical{208.0}=0x1 +#Port25 +#FC49 +portmap_103=197:100 +phy_chain_rx_lane_map_physical{197.0}=0x1230 +phy_chain_tx_lane_map_physical{197.0}=0x3021 +phy_chain_rx_polarity_flip_physical{197.0}=0x0 +phy_chain_rx_polarity_flip_physical{198.0}=0x0 +phy_chain_rx_polarity_flip_physical{199.0}=0x0 +phy_chain_rx_polarity_flip_physical{200.0}=0x0 +phy_chain_tx_polarity_flip_physical{197.0}=0x1 +phy_chain_tx_polarity_flip_physical{198.0}=0x0 +phy_chain_tx_polarity_flip_physical{199.0}=0x1 +phy_chain_tx_polarity_flip_physical{200.0}=0x0 +#Port26 +#FC53 +portmap_107=213:100 +phy_chain_rx_lane_map_physical{213.0}=0x3210 +phy_chain_tx_lane_map_physical{213.0}=0x1230 +phy_chain_rx_polarity_flip_physical{213.0}=0x0 +phy_chain_rx_polarity_flip_physical{214.0}=0x1 +phy_chain_rx_polarity_flip_physical{215.0}=0x0 +phy_chain_rx_polarity_flip_physical{216.0}=0x1 +phy_chain_tx_polarity_flip_physical{213.0}=0x0 +phy_chain_tx_polarity_flip_physical{214.0}=0x0 +phy_chain_tx_polarity_flip_physical{215.0}=0x0 +phy_chain_tx_polarity_flip_physical{216.0}=0x1 +#Port27 +#FC55 +portmap_109=221:100 +phy_chain_rx_lane_map_physical{221.0}=0x3210 +phy_chain_tx_lane_map_physical{221.0}=0x3210 +phy_chain_rx_polarity_flip_physical{221.0}=0x1 +phy_chain_rx_polarity_flip_physical{222.0}=0x1 +phy_chain_rx_polarity_flip_physical{223.0}=0x0 +phy_chain_rx_polarity_flip_physical{224.0}=0x0 +phy_chain_tx_polarity_flip_physical{221.0}=0x0 +phy_chain_tx_polarity_flip_physical{222.0}=0x0 +phy_chain_tx_polarity_flip_physical{223.0}=0x0 +phy_chain_tx_polarity_flip_physical{224.0}=0x0 +#Port28 +#FC57 +portmap_111=229:100 +phy_chain_rx_lane_map_physical{229.0}=0x2301 +phy_chain_tx_lane_map_physical{229.0}=0x3210 +phy_chain_rx_polarity_flip_physical{229.0}=0x1 +phy_chain_rx_polarity_flip_physical{230.0}=0x1 +phy_chain_rx_polarity_flip_physical{231.0}=0x0 +phy_chain_rx_polarity_flip_physical{232.0}=0x1 +phy_chain_tx_polarity_flip_physical{229.0}=0x0 +phy_chain_tx_polarity_flip_physical{230.0}=0x1 +phy_chain_tx_polarity_flip_physical{231.0}=0x0 +phy_chain_tx_polarity_flip_physical{232.0}=0x0 +#Port29 +#FC59 +portmap_113=237:100 +phy_chain_rx_lane_map_physical{237.0}=0x0123 +phy_chain_tx_lane_map_physical{237.0}=0x3210 +phy_chain_rx_polarity_flip_physical{237.0}=0x1 +phy_chain_rx_polarity_flip_physical{238.0}=0x0 +phy_chain_rx_polarity_flip_physical{239.0}=0x1 +phy_chain_rx_polarity_flip_physical{240.0}=0x1 +phy_chain_tx_polarity_flip_physical{237.0}=0x1 +phy_chain_tx_polarity_flip_physical{238.0}=0x1 +phy_chain_tx_polarity_flip_physical{239.0}=0x0 +phy_chain_tx_polarity_flip_physical{240.0}=0x0 +#Port30 +#FC61 +portmap_115=245:100 +phy_chain_rx_lane_map_physical{245.0}=0x0213 +phy_chain_tx_lane_map_physical{245.0}=0x3210 +phy_chain_rx_polarity_flip_physical{245.0}=0x0 +phy_chain_rx_polarity_flip_physical{246.0}=0x0 +phy_chain_rx_polarity_flip_physical{247.0}=0x1 +phy_chain_rx_polarity_flip_physical{248.0}=0x1 +phy_chain_tx_polarity_flip_physical{245.0}=0x1 +phy_chain_tx_polarity_flip_physical{246.0}=0x0 +phy_chain_tx_polarity_flip_physical{247.0}=0x1 +phy_chain_tx_polarity_flip_physical{248.0}=0x0 +#Port31 +#FC63 +portmap_117=253:100 +phy_chain_rx_lane_map_physical{253.0}=0x0213 +phy_chain_tx_lane_map_physical{253.0}=0x0312 +phy_chain_rx_polarity_flip_physical{253.0}=0x0 +phy_chain_rx_polarity_flip_physical{254.0}=0x0 +phy_chain_rx_polarity_flip_physical{255.0}=0x0 +phy_chain_rx_polarity_flip_physical{256.0}=0x1 +phy_chain_tx_polarity_flip_physical{253.0}=0x0 +phy_chain_tx_polarity_flip_physical{254.0}=0x1 +phy_chain_tx_polarity_flip_physical{255.0}=0x0 +phy_chain_tx_polarity_flip_physical{256.0}=0x0 +#Port32 +#FC17 +portmap_35=69:100 +phy_chain_rx_lane_map_physical{69.0}=0x1032 +phy_chain_tx_lane_map_physical{69.0}=0x3102 +phy_chain_rx_polarity_flip_physical{69.0}=0x1 +phy_chain_rx_polarity_flip_physical{70.0}=0x0 +phy_chain_rx_polarity_flip_physical{71.0}=0x0 +phy_chain_rx_polarity_flip_physical{72.0}=0x1 +phy_chain_tx_polarity_flip_physical{69.0}=0x0 +phy_chain_tx_polarity_flip_physical{70.0}=0x0 +phy_chain_tx_polarity_flip_physical{71.0}=0x1 +phy_chain_tx_polarity_flip_physical{72.0}=0x1 +#Port33 +#FC19 +portmap_37=77:100 +phy_chain_rx_lane_map_physical{77.0}=0x1230 +phy_chain_tx_lane_map_physical{77.0}=0x3021 +phy_chain_rx_polarity_flip_physical{77.0}=0x1 +phy_chain_rx_polarity_flip_physical{78.0}=0x0 +phy_chain_rx_polarity_flip_physical{79.0}=0x1 +phy_chain_rx_polarity_flip_physical{80.0}=0x0 +phy_chain_tx_polarity_flip_physical{77.0}=0x0 +phy_chain_tx_polarity_flip_physical{78.0}=0x0 +phy_chain_tx_polarity_flip_physical{79.0}=0x1 +phy_chain_tx_polarity_flip_physical{80.0}=0x0 +#Port34 +#FC23 +portmap_41=93:100 +phy_chain_rx_lane_map_physical{93.0}=0x1032 +phy_chain_tx_lane_map_physical{93.0}=0x0231 +phy_chain_rx_polarity_flip_physical{93.0}=0x1 +phy_chain_rx_polarity_flip_physical{94.0}=0x1 +phy_chain_rx_polarity_flip_physical{95.0}=0x1 +phy_chain_rx_polarity_flip_physical{96.0}=0x1 +phy_chain_tx_polarity_flip_physical{93.0}=0x0 +phy_chain_tx_polarity_flip_physical{94.0}=0x1 +phy_chain_tx_polarity_flip_physical{95.0}=0x1 +phy_chain_tx_polarity_flip_physical{96.0}=0x1 +#Port35 +#FC21 +portmap_39=85:100 +phy_chain_rx_lane_map_physical{85.0}=0x0312 +phy_chain_tx_lane_map_physical{85.0}=0x1230 +phy_chain_rx_polarity_flip_physical{85.0}=0x0 +phy_chain_rx_polarity_flip_physical{86.0}=0x0 +phy_chain_rx_polarity_flip_physical{87.0}=0x0 +phy_chain_rx_polarity_flip_physical{88.0}=0x1 +phy_chain_tx_polarity_flip_physical{85.0}=0x1 +phy_chain_tx_polarity_flip_physical{86.0}=0x0 +phy_chain_tx_polarity_flip_physical{87.0}=0x1 +phy_chain_tx_polarity_flip_physical{88.0}=0x0 +#Port36 +#FC25 +portmap_43=101:100 +phy_chain_rx_lane_map_physical{101.0}=0x1302 +phy_chain_tx_lane_map_physical{101.0}=0x0213 +phy_chain_rx_polarity_flip_physical{101.0}=0x1 +phy_chain_rx_polarity_flip_physical{102.0}=0x0 +phy_chain_rx_polarity_flip_physical{103.0}=0x0 +phy_chain_rx_polarity_flip_physical{104.0}=0x0 +phy_chain_tx_polarity_flip_physical{101.0}=0x0 +phy_chain_tx_polarity_flip_physical{102.0}=0x1 +phy_chain_tx_polarity_flip_physical{103.0}=0x0 +phy_chain_tx_polarity_flip_physical{104.0}=0x1 +#Port37 +#FC27 +portmap_45=109:100 +phy_chain_rx_lane_map_physical{109.0}=0x0213 +phy_chain_tx_lane_map_physical{109.0}=0x1032 +phy_chain_rx_polarity_flip_physical{109.0}=0x1 +phy_chain_rx_polarity_flip_physical{110.0}=0x1 +phy_chain_rx_polarity_flip_physical{111.0}=0x0 +phy_chain_rx_polarity_flip_physical{112.0}=0x0 +phy_chain_tx_polarity_flip_physical{109.0}=0x0 +phy_chain_tx_polarity_flip_physical{110.0}=0x1 +phy_chain_tx_polarity_flip_physical{111.0}=0x1 +phy_chain_tx_polarity_flip_physical{112.0}=0x1 +#Port38 +#FC31 +portmap_49=125:100 +phy_chain_rx_lane_map_physical{125.0}=0x2130 +phy_chain_tx_lane_map_physical{125.0}=0x1203 +phy_chain_rx_polarity_flip_physical{125.0}=0x0 +phy_chain_rx_polarity_flip_physical{126.0}=0x0 +phy_chain_rx_polarity_flip_physical{127.0}=0x1 +phy_chain_rx_polarity_flip_physical{128.0}=0x1 +phy_chain_tx_polarity_flip_physical{125.0}=0x0 +phy_chain_tx_polarity_flip_physical{126.0}=0x1 +phy_chain_tx_polarity_flip_physical{127.0}=0x1 +phy_chain_tx_polarity_flip_physical{128.0}=0x1 +#Port39 +#FC29 +portmap_47=117:100 +phy_chain_rx_lane_map_physical{117.0}=0x3102 +phy_chain_tx_lane_map_physical{117.0}=0x2310 +phy_chain_rx_polarity_flip_physical{117.0}=0x1 +phy_chain_rx_polarity_flip_physical{118.0}=0x0 +phy_chain_rx_polarity_flip_physical{119.0}=0x1 +phy_chain_rx_polarity_flip_physical{120.0}=0x0 +phy_chain_tx_polarity_flip_physical{117.0}=0x1 +phy_chain_tx_polarity_flip_physical{118.0}=0x0 +phy_chain_tx_polarity_flip_physical{119.0}=0x1 +phy_chain_tx_polarity_flip_physical{120.0}=0x0 +#Port40 +#FC9 +portmap_10=37:100 +phy_chain_rx_lane_map_physical{37.0}=0x3210 +phy_chain_tx_lane_map_physical{37.0}=0x1302 +phy_chain_rx_polarity_flip_physical{37.0}=0x1 +phy_chain_rx_polarity_flip_physical{38.0}=0x0 +phy_chain_rx_polarity_flip_physical{39.0}=0x0 +phy_chain_rx_polarity_flip_physical{40.0}=0x0 +phy_chain_tx_polarity_flip_physical{37.0}=0x1 +phy_chain_tx_polarity_flip_physical{38.0}=0x0 +phy_chain_tx_polarity_flip_physical{39.0}=0x1 +phy_chain_tx_polarity_flip_physical{40.0}=0x1 +#Port41 +#FC11 +portmap_12=45:100 +phy_chain_rx_lane_map_physical{45.0}=0x3210 +phy_chain_tx_lane_map_physical{45.0}=0x0123 +phy_chain_rx_polarity_flip_physical{45.0}=0x0 +phy_chain_rx_polarity_flip_physical{46.0}=0x0 +phy_chain_rx_polarity_flip_physical{47.0}=0x0 +phy_chain_rx_polarity_flip_physical{48.0}=0x0 +phy_chain_tx_polarity_flip_physical{45.0}=0x0 +phy_chain_tx_polarity_flip_physical{46.0}=0x1 +phy_chain_tx_polarity_flip_physical{47.0}=0x0 +phy_chain_tx_polarity_flip_physical{48.0}=0x1 +#Port42 +#FC15 +portmap_16=61:100 +phy_chain_rx_lane_map_physical{61.0}=0x3210 +phy_chain_tx_lane_map_physical{61.0}=0x1230 +phy_chain_rx_polarity_flip_physical{61.0}=0x0 +phy_chain_rx_polarity_flip_physical{62.0}=0x1 +phy_chain_rx_polarity_flip_physical{63.0}=0x0 +phy_chain_rx_polarity_flip_physical{64.0}=0x0 +phy_chain_tx_polarity_flip_physical{61.0}=0x0 +phy_chain_tx_polarity_flip_physical{62.0}=0x1 +phy_chain_tx_polarity_flip_physical{63.0}=0x1 +phy_chain_tx_polarity_flip_physical{64.0}=0x0 +#Port43 +#FC13 +portmap_14=53:100 +phy_chain_rx_lane_map_physical{53.0}=0x3210 +phy_chain_tx_lane_map_physical{53.0}=0x3210 +phy_chain_rx_polarity_flip_physical{53.0}=0x0 +phy_chain_rx_polarity_flip_physical{54.0}=0x0 +phy_chain_rx_polarity_flip_physical{55.0}=0x1 +phy_chain_rx_polarity_flip_physical{56.0}=0x0 +phy_chain_tx_polarity_flip_physical{53.0}=0x1 +phy_chain_tx_polarity_flip_physical{54.0}=0x1 +phy_chain_tx_polarity_flip_physical{55.0}=0x1 +phy_chain_tx_polarity_flip_physical{56.0}=0x0 +#Port44 +#FC33 +portmap_69=133:100 +phy_chain_rx_lane_map_physical{133.0}=0x0312 +phy_chain_tx_lane_map_physical{133.0}=0x2310 +phy_chain_rx_polarity_flip_physical{133.0}=0x0 +phy_chain_rx_polarity_flip_physical{134.0}=0x0 +phy_chain_rx_polarity_flip_physical{135.0}=0x1 +phy_chain_rx_polarity_flip_physical{136.0}=0x0 +phy_chain_tx_polarity_flip_physical{133.0}=0x0 +phy_chain_tx_polarity_flip_physical{134.0}=0x1 +phy_chain_tx_polarity_flip_physical{135.0}=0x0 +phy_chain_tx_polarity_flip_physical{136.0}=0x1 +#Port45 +#FC35 +portmap_71=141:100 +phy_chain_rx_lane_map_physical{141.0}=0x3012 +phy_chain_tx_lane_map_physical{141.0}=0x0123 +phy_chain_rx_polarity_flip_physical{141.0}=0x1 +phy_chain_rx_polarity_flip_physical{142.0}=0x0 +phy_chain_rx_polarity_flip_physical{143.0}=0x1 +phy_chain_rx_polarity_flip_physical{144.0}=0x0 +phy_chain_tx_polarity_flip_physical{141.0}=0x1 +phy_chain_tx_polarity_flip_physical{142.0}=0x1 +phy_chain_tx_polarity_flip_physical{143.0}=0x0 +phy_chain_tx_polarity_flip_physical{144.0}=0x0 +#Port46 +#FC39 +portmap_75=157:100 +phy_chain_rx_lane_map_physical{157.0}=0x2103 +phy_chain_tx_lane_map_physical{157.0}=0x0231 +phy_chain_rx_polarity_flip_physical{157.0}=0x0 +phy_chain_rx_polarity_flip_physical{158.0}=0x0 +phy_chain_rx_polarity_flip_physical{159.0}=0x1 +phy_chain_rx_polarity_flip_physical{160.0}=0x0 +phy_chain_tx_polarity_flip_physical{157.0}=0x0 +phy_chain_tx_polarity_flip_physical{158.0}=0x1 +phy_chain_tx_polarity_flip_physical{159.0}=0x0 +phy_chain_tx_polarity_flip_physical{160.0}=0x0 +#Port47 +#FC37 +portmap_73=149:100 +phy_chain_rx_lane_map_physical{149.0}=0x3120 +phy_chain_tx_lane_map_physical{149.0}=0x1023 +phy_chain_rx_polarity_flip_physical{149.0}=0x0 +phy_chain_rx_polarity_flip_physical{150.0}=0x1 +phy_chain_rx_polarity_flip_physical{151.0}=0x0 +phy_chain_rx_polarity_flip_physical{152.0}=0x0 +phy_chain_tx_polarity_flip_physical{149.0}=0x1 +phy_chain_tx_polarity_flip_physical{150.0}=0x0 +phy_chain_tx_polarity_flip_physical{151.0}=0x0 +phy_chain_tx_polarity_flip_physical{152.0}=0x1 +#Port48 +#FC40 +portmap_76=161:100 +phy_chain_rx_lane_map_physical{161.0}=0x3012 +phy_chain_tx_lane_map_physical{161.0}=0x1023 +phy_chain_rx_polarity_flip_physical{161.0}=0x1 +phy_chain_rx_polarity_flip_physical{162.0}=0x1 +phy_chain_rx_polarity_flip_physical{163.0}=0x0 +phy_chain_rx_polarity_flip_physical{164.0}=0x0 +phy_chain_tx_polarity_flip_physical{161.0}=0x0 +phy_chain_tx_polarity_flip_physical{162.0}=0x1 +phy_chain_tx_polarity_flip_physical{163.0}=0x0 +phy_chain_tx_polarity_flip_physical{164.0}=0x0 +#Port49 +#FC42 +portmap_78=169:100 +phy_chain_rx_lane_map_physical{169.0}=0x3210 +phy_chain_tx_lane_map_physical{169.0}=0x2031 +phy_chain_rx_polarity_flip_physical{169.0}=0x0 +phy_chain_rx_polarity_flip_physical{170.0}=0x1 +phy_chain_rx_polarity_flip_physical{171.0}=0x0 +phy_chain_rx_polarity_flip_physical{172.0}=0x0 +phy_chain_tx_polarity_flip_physical{169.0}=0x1 +phy_chain_tx_polarity_flip_physical{170.0}=0x0 +phy_chain_tx_polarity_flip_physical{171.0}=0x0 +phy_chain_tx_polarity_flip_physical{172.0}=0x0 +#Port50 +#FC46 +portmap_82=185:100 +phy_chain_rx_lane_map_physical{185.0}=0x2310 +phy_chain_tx_lane_map_physical{185.0}=0x3021 +phy_chain_rx_polarity_flip_physical{185.0}=0x1 +phy_chain_rx_polarity_flip_physical{186.0}=0x0 +phy_chain_rx_polarity_flip_physical{187.0}=0x1 +phy_chain_rx_polarity_flip_physical{188.0}=0x0 +phy_chain_tx_polarity_flip_physical{185.0}=0x0 +phy_chain_tx_polarity_flip_physical{186.0}=0x1 +phy_chain_tx_polarity_flip_physical{187.0}=0x0 +phy_chain_tx_polarity_flip_physical{188.0}=0x0 +#Port51 +#FC44 +portmap_80=177:100 +phy_chain_rx_lane_map_physical{177.0}=0x1032 +phy_chain_tx_lane_map_physical{177.0}=0x2301 +phy_chain_rx_polarity_flip_physical{177.0}=0x1 +phy_chain_rx_polarity_flip_physical{178.0}=0x1 +phy_chain_rx_polarity_flip_physical{179.0}=0x0 +phy_chain_rx_polarity_flip_physical{180.0}=0x1 +phy_chain_tx_polarity_flip_physical{177.0}=0x1 +phy_chain_tx_polarity_flip_physical{178.0}=0x1 +phy_chain_tx_polarity_flip_physical{179.0}=0x1 +phy_chain_tx_polarity_flip_physical{180.0}=0x0 +#Port52 +#FC6 +portmap_7=25:100 +phy_chain_rx_lane_map_physical{25.0}=0x3102 +phy_chain_tx_lane_map_physical{25.0}=0x0132 +phy_chain_rx_polarity_flip_physical{25.0}=0x0 +phy_chain_rx_polarity_flip_physical{26.0}=0x0 +phy_chain_rx_polarity_flip_physical{27.0}=0x1 +phy_chain_rx_polarity_flip_physical{28.0}=0x0 +phy_chain_tx_polarity_flip_physical{25.0}=0x0 +phy_chain_tx_polarity_flip_physical{26.0}=0x1 +phy_chain_tx_polarity_flip_physical{27.0}=0x0 +phy_chain_tx_polarity_flip_physical{28.0}=0x1 +#Port53 +#FC4 +portmap_5=17:100 +phy_chain_rx_lane_map_physical{17.0}=0x3120 +phy_chain_tx_lane_map_physical{17.0}=0x3021 +phy_chain_rx_polarity_flip_physical{17.0}=0x0 +phy_chain_rx_polarity_flip_physical{18.0}=0x1 +phy_chain_rx_polarity_flip_physical{19.0}=0x0 +phy_chain_rx_polarity_flip_physical{20.0}=0x0 +phy_chain_tx_polarity_flip_physical{17.0}=0x0 +phy_chain_tx_polarity_flip_physical{18.0}=0x0 +phy_chain_tx_polarity_flip_physical{19.0}=0x1 +phy_chain_tx_polarity_flip_physical{20.0}=0x0 +#Port54 +#FC0 +portmap_1=1:100 +phy_chain_rx_lane_map_physical{1.0}=0x2130 +phy_chain_tx_lane_map_physical{1.0}=0x1203 +phy_chain_rx_polarity_flip_physical{1.0}=0x1 +phy_chain_rx_polarity_flip_physical{2.0}=0x0 +phy_chain_rx_polarity_flip_physical{3.0}=0x1 +phy_chain_rx_polarity_flip_physical{4.0}=0x1 +phy_chain_tx_polarity_flip_physical{1.0}=0x0 +phy_chain_tx_polarity_flip_physical{2.0}=0x0 +phy_chain_tx_polarity_flip_physical{3.0}=0x0 +phy_chain_tx_polarity_flip_physical{4.0}=0x1 +#Port55 +#FC2 +portmap_3=9:100 +phy_chain_rx_lane_map_physical{9.0}=0x1203 +phy_chain_tx_lane_map_physical{9.0}=0x1230 +phy_chain_rx_polarity_flip_physical{9.0}=0x0 +phy_chain_rx_polarity_flip_physical{10.0}=0x1 +phy_chain_rx_polarity_flip_physical{11.0}=0x0 +phy_chain_rx_polarity_flip_physical{12.0}=0x0 +phy_chain_tx_polarity_flip_physical{9.0}=0x1 +phy_chain_tx_polarity_flip_physical{10.0}=0x0 +phy_chain_tx_polarity_flip_physical{11.0}=0x1 +phy_chain_tx_polarity_flip_physical{12.0}=0x0 +#Port56 +#FC48 +portmap_102=193:100 +phy_chain_rx_lane_map_physical{193.0}=0x2103 +phy_chain_tx_lane_map_physical{193.0}=0x1230 +phy_chain_rx_polarity_flip_physical{193.0}=0x0 +phy_chain_rx_polarity_flip_physical{194.0}=0x1 +phy_chain_rx_polarity_flip_physical{195.0}=0x0 +phy_chain_rx_polarity_flip_physical{196.0}=0x1 +phy_chain_tx_polarity_flip_physical{193.0}=0x0 +phy_chain_tx_polarity_flip_physical{194.0}=0x0 +phy_chain_tx_polarity_flip_physical{195.0}=0x1 +phy_chain_tx_polarity_flip_physical{196.0}=0x0 +#Port57 +#FC50 +portmap_104=201:100 +phy_chain_rx_lane_map_physical{201.0}=0x0321 +phy_chain_tx_lane_map_physical{201.0}=0x3021 +phy_chain_rx_polarity_flip_physical{201.0}=0x0 +phy_chain_rx_polarity_flip_physical{202.0}=0x0 +phy_chain_rx_polarity_flip_physical{203.0}=0x1 +phy_chain_rx_polarity_flip_physical{204.0}=0x0 +phy_chain_tx_polarity_flip_physical{201.0}=0x1 +phy_chain_tx_polarity_flip_physical{202.0}=0x1 +phy_chain_tx_polarity_flip_physical{203.0}=0x0 +phy_chain_tx_polarity_flip_physical{204.0}=0x1 +#Port58 +#FC54 +portmap_108=217:100 +phy_chain_rx_lane_map_physical{217.0}=0x1203 +phy_chain_tx_lane_map_physical{217.0}=0x2031 +phy_chain_rx_polarity_flip_physical{217.0}=0x1 +phy_chain_rx_polarity_flip_physical{218.0}=0x0 +phy_chain_rx_polarity_flip_physical{219.0}=0x1 +phy_chain_rx_polarity_flip_physical{220.0}=0x1 +phy_chain_tx_polarity_flip_physical{217.0}=0x1 +phy_chain_tx_polarity_flip_physical{218.0}=0x0 +phy_chain_tx_polarity_flip_physical{219.0}=0x1 +phy_chain_tx_polarity_flip_physical{220.0}=0x0 +#Port59 +#FC52 +portmap_106=209:100 +phy_chain_rx_lane_map_physical{209.0}=0x0321 +phy_chain_tx_lane_map_physical{209.0}=0x3102 +phy_chain_rx_polarity_flip_physical{209.0}=0x0 +phy_chain_rx_polarity_flip_physical{210.0}=0x0 +phy_chain_rx_polarity_flip_physical{211.0}=0x1 +phy_chain_rx_polarity_flip_physical{212.0}=0x0 +phy_chain_tx_polarity_flip_physical{209.0}=0x0 +phy_chain_tx_polarity_flip_physical{210.0}=0x0 +phy_chain_tx_polarity_flip_physical{211.0}=0x1 +phy_chain_tx_polarity_flip_physical{212.0}=0x0 +#Port60 +#FC56 +portmap_110=225:100 +phy_chain_rx_lane_map_physical{225.0}=0x2103 +phy_chain_tx_lane_map_physical{225.0}=0x2031 +phy_chain_rx_polarity_flip_physical{225.0}=0x0 +phy_chain_rx_polarity_flip_physical{226.0}=0x0 +phy_chain_rx_polarity_flip_physical{227.0}=0x1 +phy_chain_rx_polarity_flip_physical{228.0}=0x1 +phy_chain_tx_polarity_flip_physical{225.0}=0x1 +phy_chain_tx_polarity_flip_physical{226.0}=0x0 +phy_chain_tx_polarity_flip_physical{227.0}=0x1 +phy_chain_tx_polarity_flip_physical{228.0}=0x1 +#Port61 +#FC58 +portmap_112=233:100 +phy_chain_rx_lane_map_physical{233.0}=0x2130 +phy_chain_tx_lane_map_physical{233.0}=0x0312 +phy_chain_rx_polarity_flip_physical{233.0}=0x0 +phy_chain_rx_polarity_flip_physical{234.0}=0x1 +phy_chain_rx_polarity_flip_physical{235.0}=0x1 +phy_chain_rx_polarity_flip_physical{236.0}=0x0 +phy_chain_tx_polarity_flip_physical{233.0}=0x0 +phy_chain_tx_polarity_flip_physical{234.0}=0x0 +phy_chain_tx_polarity_flip_physical{235.0}=0x1 +phy_chain_tx_polarity_flip_physical{236.0}=0x0 +#Port62 +#FC62 +portmap_116=249:100 +phy_chain_rx_lane_map_physical{249.0}=0x1302 +phy_chain_tx_lane_map_physical{249.0}=0x1302 +phy_chain_rx_polarity_flip_physical{249.0}=0x0 +phy_chain_rx_polarity_flip_physical{250.0}=0x1 +phy_chain_rx_polarity_flip_physical{251.0}=0x0 +phy_chain_rx_polarity_flip_physical{252.0}=0x1 +phy_chain_tx_polarity_flip_physical{249.0}=0x1 +phy_chain_tx_polarity_flip_physical{250.0}=0x1 +phy_chain_tx_polarity_flip_physical{251.0}=0x1 +phy_chain_tx_polarity_flip_physical{252.0}=0x1 +#Port63 +#FC60 +portmap_114=241:100 +phy_chain_rx_lane_map_physical{241.0}=0x3012 +phy_chain_tx_lane_map_physical{241.0}=0x2301 +phy_chain_rx_polarity_flip_physical{241.0}=0x1 +phy_chain_rx_polarity_flip_physical{242.0}=0x1 +phy_chain_rx_polarity_flip_physical{243.0}=0x0 +phy_chain_rx_polarity_flip_physical{244.0}=0x1 +phy_chain_tx_polarity_flip_physical{241.0}=0x1 +phy_chain_tx_polarity_flip_physical{242.0}=0x0 +phy_chain_tx_polarity_flip_physical{243.0}=0x1 +phy_chain_tx_polarity_flip_physical{244.0}=0x0 diff --git a/device/juniper/x86_64-juniper_qfx5210-r0/default_sku b/device/juniper/x86_64-juniper_qfx5210-r0/default_sku new file mode 100644 index 0000000000..869e1625da --- /dev/null +++ b/device/juniper/x86_64-juniper_qfx5210-r0/default_sku @@ -0,0 +1 @@ +Juniper-QFX5210-64C t1 diff --git a/device/juniper/x86_64-juniper_qfx5210-r0/installer.conf b/device/juniper/x86_64-juniper_qfx5210-r0/installer.conf new file mode 100644 index 0000000000..5c03f5844b --- /dev/null +++ b/device/juniper/x86_64-juniper_qfx5210-r0/installer.conf @@ -0,0 +1,2 @@ +CONSOLE_SPEED=9600 +ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="tg3.short_preamble=1 tg3.bcm5718s_reset=1" diff --git a/device/juniper/x86_64-juniper_qfx5210-r0/led_proc_init.soc b/device/juniper/x86_64-juniper_qfx5210-r0/led_proc_init.soc new file mode 100755 index 0000000000..75a36c6f9c --- /dev/null +++ b/device/juniper/x86_64-juniper_qfx5210-r0/led_proc_init.soc @@ -0,0 +1,155 @@ +m CMIC_LEDUP0_CLK_PARAMS REFRESH_CYCLE_PERIOD=0xc00000 +m CMIC_LEDUP1_CLK_PARAMS REFRESH_CYCLE_PERIOD=0xc00000 +m CMIC_LEDUP2_CLK_PARAMS REFRESH_CYCLE_PERIOD=0xc00000 +m CMIC_LEDUP3_CLK_PARAMS REFRESH_CYCLE_PERIOD=0xc00000 + +m CMIC_LEDUP0_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=63 REMAP_PORT_1=62 REMAP_PORT_2=61 REMAP_PORT_3=60 +m CMIC_LEDUP0_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=59 REMAP_PORT_5=58 REMAP_PORT_6=57 REMAP_PORT_7=56 +m CMIC_LEDUP0_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=55 REMAP_PORT_9=54 REMAP_PORT_10=53 REMAP_PORT_11=52 +m CMIC_LEDUP0_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=51 REMAP_PORT_13=50 REMAP_PORT_14=49 REMAP_PORT_15=48 +m CMIC_LEDUP0_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=47 REMAP_PORT_17=46 REMAP_PORT_18=45 REMAP_PORT_19=44 +m CMIC_LEDUP0_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=43 REMAP_PORT_21=42 REMAP_PORT_22=41 REMAP_PORT_23=40 +m CMIC_LEDUP0_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=39 REMAP_PORT_25=38 REMAP_PORT_26=37 REMAP_PORT_27=36 +m CMIC_LEDUP0_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=35 REMAP_PORT_29=34 REMAP_PORT_30=33 REMAP_PORT_31=32 +m CMIC_LEDUP0_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=31 REMAP_PORT_33=30 REMAP_PORT_34=29 REMAP_PORT_35=28 +m CMIC_LEDUP0_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=27 REMAP_PORT_37=26 REMAP_PORT_38=25 REMAP_PORT_39=24 +m CMIC_LEDUP0_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=23 REMAP_PORT_41=22 REMAP_PORT_42=21 REMAP_PORT_43=20 +m CMIC_LEDUP0_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=19 REMAP_PORT_45=18 REMAP_PORT_46=17 REMAP_PORT_47=16 +m CMIC_LEDUP0_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=15 REMAP_PORT_49=14 REMAP_PORT_50=13 REMAP_PORT_51=12 +m CMIC_LEDUP0_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=11 REMAP_PORT_53=10 REMAP_PORT_54=9 REMAP_PORT_55=8 +m CMIC_LEDUP0_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=7 REMAP_PORT_57=6 REMAP_PORT_58=5 REMAP_PORT_59=4 +m CMIC_LEDUP0_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=3 REMAP_PORT_61=2 REMAP_PORT_62=1 REMAP_PORT_63=0 + +m CMIC_LEDUP1_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=3 REMAP_PORT_1=2 REMAP_PORT_2=1 REMAP_PORT_3=0 +m CMIC_LEDUP1_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=7 REMAP_PORT_5=6 REMAP_PORT_6=5 REMAP_PORT_7=4 +m CMIC_LEDUP1_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=11 REMAP_PORT_9=10 REMAP_PORT_10=9 REMAP_PORT_11=8 +m CMIC_LEDUP1_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=15 REMAP_PORT_13=14 REMAP_PORT_14=13 REMAP_PORT_15=12 +m CMIC_LEDUP1_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=19 REMAP_PORT_17=18 REMAP_PORT_18=17 REMAP_PORT_19=16 +m CMIC_LEDUP1_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=23 REMAP_PORT_21=22 REMAP_PORT_22=21 REMAP_PORT_23=20 +m CMIC_LEDUP1_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=27 REMAP_PORT_25=26 REMAP_PORT_26=25 REMAP_PORT_27=24 +m CMIC_LEDUP1_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=31 REMAP_PORT_29=30 REMAP_PORT_30=29 REMAP_PORT_31=28 +m CMIC_LEDUP1_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=35 REMAP_PORT_33=34 REMAP_PORT_34=33 REMAP_PORT_35=32 +m CMIC_LEDUP1_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=39 REMAP_PORT_37=38 REMAP_PORT_38=37 REMAP_PORT_39=36 +m CMIC_LEDUP1_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=43 REMAP_PORT_41=42 REMAP_PORT_42=41 REMAP_PORT_43=40 +m CMIC_LEDUP1_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=47 REMAP_PORT_45=46 REMAP_PORT_46=45 REMAP_PORT_47=44 +m CMIC_LEDUP1_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=51 REMAP_PORT_49=50 REMAP_PORT_50=49 REMAP_PORT_51=48 +m CMIC_LEDUP1_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=55 REMAP_PORT_53=54 REMAP_PORT_54=53 REMAP_PORT_55=52 +m CMIC_LEDUP1_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=59 REMAP_PORT_57=58 REMAP_PORT_58=57 REMAP_PORT_59=56 +m CMIC_LEDUP1_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=63 REMAP_PORT_61=62 REMAP_PORT_62=61 REMAP_PORT_63=60 + +m CMIC_LEDUP2_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=63 REMAP_PORT_1=62 REMAP_PORT_2=61 REMAP_PORT_3=60 +m CMIC_LEDUP2_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=59 REMAP_PORT_5=58 REMAP_PORT_6=57 REMAP_PORT_7=56 +m CMIC_LEDUP2_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=55 REMAP_PORT_9=54 REMAP_PORT_10=53 REMAP_PORT_11=52 +m CMIC_LEDUP2_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=51 REMAP_PORT_13=50 REMAP_PORT_14=49 REMAP_PORT_15=48 +m CMIC_LEDUP2_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=47 REMAP_PORT_17=46 REMAP_PORT_18=45 REMAP_PORT_19=44 +m CMIC_LEDUP2_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=43 REMAP_PORT_21=42 REMAP_PORT_22=41 REMAP_PORT_23=40 +m CMIC_LEDUP2_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=39 REMAP_PORT_25=38 REMAP_PORT_26=37 REMAP_PORT_27=36 +m CMIC_LEDUP2_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=35 REMAP_PORT_29=34 REMAP_PORT_30=33 REMAP_PORT_31=32 +m CMIC_LEDUP2_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=31 REMAP_PORT_33=30 REMAP_PORT_34=29 REMAP_PORT_35=28 +m CMIC_LEDUP2_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=27 REMAP_PORT_37=26 REMAP_PORT_38=25 REMAP_PORT_39=24 +m CMIC_LEDUP2_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=23 REMAP_PORT_41=22 REMAP_PORT_42=21 REMAP_PORT_43=20 +m CMIC_LEDUP2_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=19 REMAP_PORT_45=18 REMAP_PORT_46=17 REMAP_PORT_47=16 +m CMIC_LEDUP2_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=15 REMAP_PORT_49=14 REMAP_PORT_50=13 REMAP_PORT_51=12 +m CMIC_LEDUP2_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=11 REMAP_PORT_53=10 REMAP_PORT_54=9 REMAP_PORT_55=8 +m CMIC_LEDUP2_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=7 REMAP_PORT_57=6 REMAP_PORT_58=5 REMAP_PORT_59=4 +m CMIC_LEDUP2_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=3 REMAP_PORT_61=2 REMAP_PORT_62=1 REMAP_PORT_63=0 + +m CMIC_LEDUP3_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=3 REMAP_PORT_1=2 REMAP_PORT_2=1 REMAP_PORT_3=0 +m CMIC_LEDUP3_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=7 REMAP_PORT_5=6 REMAP_PORT_6=5 REMAP_PORT_7=4 +m CMIC_LEDUP3_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=11 REMAP_PORT_9=10 REMAP_PORT_10=9 REMAP_PORT_11=8 +m CMIC_LEDUP3_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=15 REMAP_PORT_13=14 REMAP_PORT_14=13 REMAP_PORT_15=12 +m CMIC_LEDUP3_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=19 REMAP_PORT_17=18 REMAP_PORT_18=17 REMAP_PORT_19=16 +m CMIC_LEDUP3_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=23 REMAP_PORT_21=22 REMAP_PORT_22=21 REMAP_PORT_23=20 +m CMIC_LEDUP3_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=27 REMAP_PORT_25=26 REMAP_PORT_26=25 REMAP_PORT_27=24 +m CMIC_LEDUP3_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=31 REMAP_PORT_29=30 REMAP_PORT_30=29 REMAP_PORT_31=28 +m CMIC_LEDUP3_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=35 REMAP_PORT_33=34 REMAP_PORT_34=33 REMAP_PORT_35=32 +m CMIC_LEDUP3_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=39 REMAP_PORT_37=38 REMAP_PORT_38=37 REMAP_PORT_39=36 +m CMIC_LEDUP3_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=43 REMAP_PORT_41=42 REMAP_PORT_42=41 REMAP_PORT_43=40 +m CMIC_LEDUP3_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=47 REMAP_PORT_45=46 REMAP_PORT_46=45 REMAP_PORT_47=44 +m CMIC_LEDUP3_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=51 REMAP_PORT_49=50 REMAP_PORT_50=49 REMAP_PORT_51=48 +m CMIC_LEDUP3_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=55 REMAP_PORT_53=54 REMAP_PORT_54=53 REMAP_PORT_55=52 +m CMIC_LEDUP3_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=59 REMAP_PORT_57=58 REMAP_PORT_58=57 REMAP_PORT_59=56 +m CMIC_LEDUP3_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=63 REMAP_PORT_61=62 REMAP_PORT_62=61 REMAP_PORT_63=60 + +led 0 stop +led 0 prog \ + 02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 E0 \ + 02 FB 42 40 06 F9 D2 00 74 1E 02 F9 42 03 67 AC \ + 67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 \ + 86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC \ + 3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 \ + 98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 \ + 4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 \ + F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 \ + 71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF \ + 52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 \ + 74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC \ + 98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 \ + 88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 \ + 88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 98 67 \ + 84 57 80 18 71 EB 67 84 67 98 57 67 84 67 84 57 \ + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + + +led 1 stop +led 1 prog \ + 02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 E0 \ + 02 FB 42 40 06 F9 D2 00 74 1E 02 F9 42 03 67 AC \ + 67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 \ + 86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC \ + 3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 \ + 98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 \ + 4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 \ + F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 \ + 71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF \ + 52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 \ + 74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC \ + 98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 \ + 88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 \ + 88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 98 67 \ + 84 57 80 18 71 EB 67 84 67 98 57 67 84 67 84 57 \ + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + +led 2 stop +led 2 prog \ + 02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 E0 \ + 02 FB 42 40 06 F9 D2 00 74 1E 02 F9 42 03 67 AC \ + 67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 \ + 86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC \ + 3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 \ + 98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 \ + 4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 \ + F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 \ + 71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF \ + 52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 \ + 74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC \ + 98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 \ + 88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 \ + 88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 98 67 \ + 84 57 80 18 71 EB 67 84 67 98 57 67 84 67 84 57 \ + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + +led 3 stop +led 3 prog \ + 02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 E0 \ + 02 FB 42 40 06 F9 D2 00 74 1E 02 F9 42 03 67 AC \ + 67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 \ + 86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC \ + 3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 \ + 98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 \ + 4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 \ + F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 \ + 71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF \ + 52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 \ + 74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC \ + 98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 \ + 88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 \ + 88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 98 67 \ + 84 57 80 18 71 EB 67 84 67 98 57 67 84 67 84 57 \ + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + +led auto on +led 0 start +led 1 start +led 2 start +led 3 start diff --git a/device/juniper/x86_64-juniper_qfx5210-r0/media_settings.json b/device/juniper/x86_64-juniper_qfx5210-r0/media_settings.json new file mode 100644 index 0000000000..d2b28c0aea --- /dev/null +++ b/device/juniper/x86_64-juniper_qfx5210-r0/media_settings.json @@ -0,0 +1,2823 @@ +{ + "GLOBAL_MEDIA_SETTINGS": { + }, + "PORT_MEDIA_SETTINGS": { + "0": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1c4503", + "lane2":"0x1c4503", + "lane3":"0x1c4503" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0x103f02", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "1": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1c4503", + "lane2":"0x1c4503", + "lane3":"0x1c4503" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0x113f02", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "2": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1c4503", + "lane2":"0x1c4503", + "lane3":"0x1c4503" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xf3f02", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "3": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1c4503", + "lane2":"0x1c4503", + "lane3":"0x1c4503" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xf3f02", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "4": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1b4603", + "lane1":"0x1b4603", + "lane2":"0x1b4603", + "lane3":"0x1b4603" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xd3a02", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "5": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1c4503", + "lane2":"0x1c4503", + "lane3":"0x1c4503" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xd3a02", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "6": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x174a03", + "lane1":"0x174a03", + "lane2":"0x174a03", + "lane3":"0x174a03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xd3a02", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "7": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x194803", + "lane1":"0x1b4603", + "lane2":"0x174a03", + "lane3":"0x174a03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xd3a02", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "8": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1c4503", + "lane2":"0x1c4503", + "lane3":"0x1c4503" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xd3a02", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "9": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1c4503", + "lane2":"0x1c4503", + "lane3":"0x1d4403" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xf3f02", + "lane2":"0xd3a02", + "lane3":"0xf3a04" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "10": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1a4703", + "lane1":"0x1a4703", + "lane2":"0x1a4703", + "lane3":"0x1a4703" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xd3a02", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "11": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1b4603", + "lane1":"0x1b4603", + "lane2":"0x1a4703", + "lane3":"0x1b4603" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xd3a02", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "12": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x154c03", + "lane1":"0x154c03", + "lane2":"0x154c03", + "lane3":"0x154c03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3402", + "lane1":"0xa3402", + "lane2":"0xa3402", + "lane3":"0xa3202" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "13": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x154c03", + "lane1":"0x154c03", + "lane2":"0x154c03", + "lane3":"0x154c03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3402", + "lane1":"0xb3402", + "lane2":"0xa3402", + "lane3":"0xa3202" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "14": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x154c03", + "lane1":"0x154c03", + "lane2":"0x154c03", + "lane3":"0x154c03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3002", + "lane1":"0xa3002", + "lane2":"0xa3002", + "lane3":"0x93002" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "15": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x154c03", + "lane1":"0x154c03", + "lane2":"0x154c03", + "lane3":"0x154c03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3002", + "lane1":"0xa3002", + "lane2":"0xa3002", + "lane3":"0xa3002" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "16": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x154901", + "lane1":"0x124901", + "lane2":"0x124903", + "lane3":"0x144900" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3002", + "lane1":"0xa3002", + "lane2":"0xa3002", + "lane3":"0x82d02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "17": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x154900", + "lane1":"0x124904", + "lane2":"0x124901", + "lane3":"0x144902" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3002", + "lane1":"0xa3002", + "lane2":"0xa3002", + "lane3":"0xa3002" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "18": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x154900", + "lane1":"0x124900", + "lane2":"0x124903", + "lane3":"0x144902" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3002", + "lane1":"0xa3002", + "lane2":"0xa3002", + "lane3":"0xa3002" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "19": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x154903", + "lane1":"0x124904", + "lane2":"0x124904", + "lane3":"0x144904" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3002", + "lane1":"0xa3002", + "lane2":"0xa3002", + "lane3":"0xa3002" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "20": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x194803", + "lane1":"0x194803", + "lane2":"0x194803", + "lane3":"0x194803" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3002", + "lane1":"0xa3002", + "lane2":"0xa3002", + "lane3":"0xc3002" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "21": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x194803", + "lane1":"0x194803", + "lane2":"0x194803", + "lane3":"0x194803" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3002", + "lane1":"0xa3002", + "lane2":"0xa3002", + "lane3":"0xa3002" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "22": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1c4503", + "lane2":"0x1c4503", + "lane3":"0x1c4503" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3402", + "lane1":"0xd3402", + "lane2":"0xd3402", + "lane3":"0xd3402" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "23": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1e4303", + "lane1":"0x1e4303", + "lane2":"0x1d4403", + "lane3":"0x1e4303" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xe3602", + "lane1":"0xf3a03", + "lane2":"0xf3d03", + "lane3":"0xf3d03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "24": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x154906", + "lane1":"0x154904", + "lane2":"0x154903", + "lane3":"0x154903" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3002", + "lane1":"0xa3002", + "lane2":"0xa3002", + "lane3":"0xa3002" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "25": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x174902", + "lane1":"0x174902", + "lane2":"0x174902", + "lane3":"0x174904" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3002", + "lane1":"0xa3002", + "lane2":"0xa3002", + "lane3":"0xa3002" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "26": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1a4703", + "lane1":"0x184903", + "lane2":"0x184903", + "lane3":"0x1a4703" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3002", + "lane1":"0xa3002", + "lane2":"0xa3002", + "lane3":"0xa3002" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "27": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1a4703", + "lane1":"0x1a4703", + "lane2":"0x1a4703", + "lane3":"0x1a4703" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xb3203", + "lane1":"0xc3403", + "lane2":"0xc3403", + "lane3":"0xd3403" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "28": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1a4505", + "lane1":"0x1a4505", + "lane2":"0x1a4505", + "lane3":"0x1a4505" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xc3402", + "lane1":"0xd3402", + "lane2":"0xc3402", + "lane3":"0xc3402" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "29": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1b4603", + "lane1":"0x1b4603", + "lane2":"0x1b4603", + "lane3":"0x1b4603" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xc3402", + "lane1":"0xc3402", + "lane2":"0xc3402", + "lane3":"0xc3402" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "30": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1a4604", + "lane1":"0x1a4604", + "lane2":"0x1a4604", + "lane3":"0x1a4604" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xc3402", + "lane1":"0xd3402", + "lane2":"0xc3402", + "lane3":"0xc3402" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "31": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1b4504", + "lane1":"0x1b4504", + "lane2":"0x1a4703", + "lane3":"0x1b4504" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3602", + "lane1":"0xd3602", + "lane2":"0xd3602", + "lane3":"0xd3602" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "32": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1c4404", + "lane2":"0x1c4503", + "lane3":"0x1c4404" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xf3a02", + "lane1":"0x113c03", + "lane2":"0xf3a03", + "lane3":"0xf3a03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "33": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1c4503", + "lane2":"0x1c4503", + "lane3":"0x1c4503" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xf3a03", + "lane1":"0xf3a03", + "lane2":"0xf3a03", + "lane3":"0xf3a03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "34": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1a4703", + "lane1":"0x1a4604", + "lane2":"0x1a4703", + "lane3":"0x1a4703" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3803", + "lane1":"0xe3803", + "lane2":"0xd3803", + "lane3":"0xc3403" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "35": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1b4603", + "lane2":"0x1b4603", + "lane3":"0x1b4603" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xe3804", + "lane1":"0xe3803", + "lane2":"0xe3804", + "lane3":"0xe3804" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "36": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1b4603", + "lane1":"0x1b4603", + "lane2":"0x1a4703", + "lane3":"0x1b4603" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3803", + "lane1":"0xd3803", + "lane2":"0xb3203", + "lane3":"0xc3403" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "37": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x194803", + "lane1":"0x194803", + "lane2":"0x194803", + "lane3":"0x194803" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xb3202", + "lane1":"0xb3202", + "lane2":"0xa3003", + "lane3":"0xb3003" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "38": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x164903", + "lane1":"0x164903", + "lane2":"0x164903", + "lane3":"0x164903" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3203", + "lane1":"0xa3203", + "lane2":"0xa3203", + "lane3":"0xa3203" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "39": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x164901", + "lane1":"0x184901", + "lane2":"0x184901", + "lane3":"0x184901" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3202", + "lane1":"0xa3202", + "lane2":"0xa3003", + "lane3":"0xa3003" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "40": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1c4503", + "lane2":"0x1c4503", + "lane3":"0x1c4404" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a03", + "lane1":"0xd3a03", + "lane2":"0xd3a03", + "lane3":"0xd3a03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "41": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1b4603", + "lane1":"0x1a4703", + "lane2":"0x1b4603", + "lane3":"0x1c4503" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xd3a03", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "42": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1a4703", + "lane1":"0x1a4703", + "lane2":"0x1a4703", + "lane3":"0x1a4703" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a03", + "lane1":"0xd3a03", + "lane2":"0xb3a03", + "lane3":"0xa3803" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "43": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1b4603", + "lane1":"0x1b4603", + "lane2":"0x1a4703", + "lane3":"0x1b4603" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a03", + "lane1":"0xd3a03", + "lane2":"0xd3a03", + "lane3":"0xd3a03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "44": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x184902", + "lane1":"0x184902", + "lane2":"0x154902", + "lane3":"0x184902" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0x93003", + "lane1":"0x93003", + "lane2":"0x93003", + "lane3":"0x82f03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "45": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x154900", + "lane1":"0x154900", + "lane2":"0x154900", + "lane3":"0x154900" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0x72d03", + "lane1":"0x93003", + "lane2":"0x93003", + "lane3":"0x83003" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "46": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x174900", + "lane1":"0x174900", + "lane2":"0x154900", + "lane3":"0x174904" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0x93003", + "lane1":"0x93003", + "lane2":"0x93003", + "lane3":"0x93003" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "47": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x154903", + "lane1":"0x154903", + "lane2":"0x154903", + "lane3":"0x154903" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0x93003", + "lane1":"0x93003", + "lane2":"0x82e03", + "lane3":"0x83003" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "48": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x184902", + "lane1":"0x164902", + "lane2":"0x164902", + "lane3":"0x144900" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0x93003", + "lane1":"0x93003", + "lane2":"0x93003", + "lane3":"0x93003" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "49": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x174901", + "lane1":"0x144902", + "lane2":"0x144902", + "lane3":"0x144903" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0x93003", + "lane1":"0x93003", + "lane2":"0x93003", + "lane3":"0x93003" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "50": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x184901", + "lane1":"0x174901", + "lane2":"0x164903", + "lane3":"0x154904" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0x93003", + "lane1":"0x93003", + "lane2":"0x83003", + "lane3":"0x93003" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "51": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x154903", + "lane1":"0x154903", + "lane2":"0x134903", + "lane3":"0x144904" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0x93003", + "lane1":"0x93002", + "lane2":"0x82f03", + "lane3":"0x82f03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "52": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x194803", + "lane1":"0x194803", + "lane2":"0x194803", + "lane3":"0x194803" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0x103f02", + "lane2":"0xd3a02", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "53": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x194803", + "lane1":"0x194803", + "lane2":"0x184803", + "lane3":"0x194803" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3403", + "lane1":"0xa3403", + "lane2":"0xa3403", + "lane3":"0xa3403" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "54": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4503", + "lane1":"0x1e4204", + "lane2":"0x1c4503", + "lane3":"0x1d4304" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xf3d02", + "lane2":"0xd3a03", + "lane3":"0xf3c03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "55": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1a4703", + "lane1":"0x1a4703", + "lane2":"0x1a4703", + "lane3":"0x1a4703" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xb3a03", + "lane1":"0xc3a03", + "lane2":"0xa3403", + "lane3":"0xb3a03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "56": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x184903", + "lane1":"0x184903", + "lane2":"0x184903", + "lane3":"0x184903" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xa3403", + "lane1":"0xa3403", + "lane2":"0xa3403", + "lane3":"0xa3403" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "57": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x194803", + "lane1":"0x194803", + "lane2":"0x194903", + "lane3":"0x194803" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0x93203", + "lane1":"0xa3603", + "lane2":"0x93203", + "lane3":"0x93203" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "58": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1a4703", + "lane1":"0x1a4703", + "lane2":"0x1a4703", + "lane3":"0x1a4703" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xb3403", + "lane1":"0xc3603", + "lane2":"0xb3403", + "lane3":"0xb3403" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "59": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1a4703", + "lane1":"0x1a4703", + "lane2":"0x1a4703", + "lane3":"0x1a4703" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xb3403", + "lane1":"0xc3603", + "lane2":"0xb3403", + "lane3":"0xb3403" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "60": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1a4703", + "lane1":"0x1a4703", + "lane2":"0x1a4703", + "lane3":"0x1a4505" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xb3403", + "lane1":"0xc3603", + "lane2":"0xc3603", + "lane3":"0xc3603" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "61": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1b4603", + "lane1":"0x1b4603", + "lane2":"0x1b4603", + "lane3":"0x1b4603" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xc3603", + "lane1":"0xd3a03", + "lane2":"0xc3603", + "lane3":"0xc3602" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "62": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1c4404", + "lane1":"0x1c4404", + "lane2":"0x1b4504", + "lane3":"0x1c4404" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a03", + "lane1":"0xd3a03", + "lane2":"0xd3a03", + "lane3":"0xd3a03" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + }, + "63": { + "Default": { + "preemphasis": { + "lane0":"0x14410a", + "lane1":"0x14410a", + "lane2":"0x14410a", + "lane3":"0x14410a" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-AVAGO-AFBR-89CDDZ-JU1": { + "preemphasis": { + "lane0":"0x1b4504", + "lane1":"0x1b4504", + "lane2":"0x1a4703", + "lane3":"0x1b4504" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + }, + "JUNIPER-INNO-TR-IQ13L-NJ3": { + "preemphasis": { + "lane0":"0xd3a02", + "lane1":"0xd3a02", + "lane2":"0xd3a03", + "lane3":"0xd3a02" + }, + "idriver": { + "lane0":"0x8", + "lane1":"0x8", + "lane2":"0x8", + "lane3":"0x8" + } + } + } + } +} + diff --git a/device/juniper/x86_64-juniper_qfx5210-r0/plugins/eeprom.py b/device/juniper/x86_64-juniper_qfx5210-r0/plugins/eeprom.py new file mode 100644 index 0000000000..a5453dc4f0 --- /dev/null +++ b/device/juniper/x86_64-juniper_qfx5210-r0/plugins/eeprom.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python + +try: + import exceptions + import binascii + import time + import optparse + import warnings + import os + import sys + from sonic_eeprom import eeprom_base + from sonic_eeprom import eeprom_tlvinfo + import subprocess + import syslog + from struct import * + from array import * + +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + +SYSLOG_IDENTIFIER = "eeprom.py" +EEPROM_PATH = "/sys/bus/i2c/devices/0-0056/eeprom" + +def log_error(msg): + syslog.openlog(SYSLOG_IDENTIFIER) + syslog.syslog(syslog.LOG_ERR, msg) + syslog.closelog() + +class board(eeprom_tlvinfo.TlvInfoDecoder): + _TLV_INFO_MAX_LEN = 256 + + def __init__(self, name, path, cpld_root, ro): + + if not os.path.exists(EEPROM_PATH): + log_error("Cannot find system eeprom") + raise RuntimeError("No syseeprom found") + + self.eeprom_path = EEPROM_PATH + super(board, self).__init__(self.eeprom_path, 0, '', True) + diff --git a/device/juniper/x86_64-juniper_qfx5210-r0/plugins/psuutil.py b/device/juniper/x86_64-juniper_qfx5210-r0/plugins/psuutil.py new file mode 100755 index 0000000000..707c7c897c --- /dev/null +++ b/device/juniper/x86_64-juniper_qfx5210-r0/plugins/psuutil.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python + +############################################################################# +# Accton +# +# Module contains an implementation of SONiC PSU Base API and +# provides the PSUs status which are available in the platform +# +############################################################################# + +import os.path + +try: + from sonic_psu.psu_base import PsuBase +except ImportError as e: + raise ImportError (str(e) + "- required module not found") + +class PsuUtil(PsuBase): + """Platform-specific PSUutil class""" + + def __init__(self): + PsuBase.__init__(self) + + self.psu_path = "/sys/bus/i2c/devices/" + self.psu_presence = "/psu_present" + self.psu_oper_status = "/psu_power_good" + self.psu_mapping = { + 1: "10-0053", + 2: "9-0050", + } + + def get_num_psus(self): + return len(self.psu_mapping) + + def get_psu_status(self, index): + if index is None: + return False + + status = 0 + node = self.psu_path + self.psu_mapping[index]+self.psu_oper_status + try: + with open(node, 'r') as power_status: + status = int(power_status.read()) + except IOError: + return False + + return status == 1 + + def get_psu_presence(self, index): + if index is None: + return False + + status = 0 + node = self.psu_path + self.psu_mapping[index] + self.psu_presence + try: + with open(node, 'r') as presence_status: + status = int(presence_status.read()) + except IOError: + return False + + return status == 1 diff --git a/device/juniper/x86_64-juniper_qfx5210-r0/plugins/sfputil.py b/device/juniper/x86_64-juniper_qfx5210-r0/plugins/sfputil.py new file mode 100644 index 0000000000..fb5d57a609 --- /dev/null +++ b/device/juniper/x86_64-juniper_qfx5210-r0/plugins/sfputil.py @@ -0,0 +1,761 @@ +#!/usr/bin/env python + +try: + import time + from sonic_sfp.sfputilbase import * + import sys + import os + import string + from ctypes import create_string_buffer + # sys.path.append('/usr/local/bin') + # import sfp_detect +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + + +qfx5210_qsfp_cable_length_tup = ('Length(km)', 'Length OM3(2m)', + 'Length OM2(m)', 'Length OM1(m)', + 'Length Cable Assembly(m)') + +qfx5210_sfp_cable_length_tup = ('LengthSMFkm-UnitsOfKm', 'LengthSMF(UnitsOf100m)', + 'Length50um(UnitsOf10m)', 'Length62.5um(UnitsOfm)', + 'LengthCable(UnitsOfm)', 'LengthOM3(UnitsOf10m)') + +qfx5210_sfp_compliance_code_tup = ('10GEthernetComplianceCode', 'InfinibandComplianceCode', + 'ESCONComplianceCodes', 'SONETComplianceCodes', + 'EthernetComplianceCodes','FibreChannelLinkLength', + 'FibreChannelTechnology', 'SFP+CableTechnology', + 'FibreChannelTransmissionMedia','FibreChannelSpeed') + +qfx5210_qsfp_compliance_code_tup = ('10/40G Ethernet Compliance Code', 'SONET Compliance codes', + 'SAS/SATA compliance codes', 'Gigabit Ethernet Compliant codes', + 'Fibre Channel link length/Transmitter Technology', + 'Fibre Channel transmission media', 'Fibre Channel Speed') + + + +class SfpUtil(SfpUtilBase): + """Platform specific SfpUtill class""" + + _port_start = 0 + _port_end = 63 + ports_in_block = 64 + cmd = '/var/run/sfppresence' + _port_to_eeprom_mapping = {} + port_to_i2c_mapping = { + 61 : 25, + 62 : 26, + 63 : 27, + 64 : 28, + 55 : 29, + 56 : 30, + 53 : 31, + 54 : 32, + 9 : 33, + 10 : 34, + 11 : 35, + 12 : 36, + 1 : 37, + 2 : 38, + 3 : 39, + 4 : 40, + 6 : 41, + 5 : 42, + 8 : 43, + 7 : 44, + 13 : 45, + 14 : 46, + 15 : 47, + 16 : 48, + 17 : 49, + 18 : 50, + 19 : 51, + 20 : 52, + 25 : 53, + 26 : 54, + 27 : 55, + 28 : 56, + 29 : 57, + 30 : 58, + 31 : 59, + 32 : 60, + 21 : 61, + 22 : 62, + 23 : 63, + 24 : 64, + 41 : 65, + 42 : 66, + 43 : 67, + 44 : 68, + 33 : 69, + 34 : 70, + 35 : 71, + 36 : 72, + 45 : 73, + 46 : 74, + 47 : 75, + 48 : 76, + 37 : 77, + 38 : 78, + 39 : 79, + 40 : 80, + 57 : 81, + 58 : 82, + 59 : 83, + 60 : 84, + 49 : 85, + 50 : 86, + 51 : 87, + 52 : 88,} + + port_to_sysfs_map = [ + '/sys/bus/i2c/devices/37-0050/sfp_is_present', + '/sys/bus/i2c/devices/38-0050/sfp_is_present', + '/sys/bus/i2c/devices/39-0050/sfp_is_present', + '/sys/bus/i2c/devices/40-0050/sfp_is_present', + '/sys/bus/i2c/devices/42-0050/sfp_is_present', + '/sys/bus/i2c/devices/41-0050/sfp_is_present', + '/sys/bus/i2c/devices/44-0050/sfp_is_present', + '/sys/bus/i2c/devices/43-0050/sfp_is_present', + '/sys/bus/i2c/devices/33-0050/sfp_is_present', + '/sys/bus/i2c/devices/34-0050/sfp_is_present', + '/sys/bus/i2c/devices/35-0050/sfp_is_present', + '/sys/bus/i2c/devices/36-0050/sfp_is_present', + '/sys/bus/i2c/devices/45-0050/sfp_is_present', + '/sys/bus/i2c/devices/46-0050/sfp_is_present', + '/sys/bus/i2c/devices/47-0050/sfp_is_present', + '/sys/bus/i2c/devices/48-0050/sfp_is_present', + '/sys/bus/i2c/devices/49-0050/sfp_is_present', + '/sys/bus/i2c/devices/50-0050/sfp_is_present', + '/sys/bus/i2c/devices/51-0050/sfp_is_present', + '/sys/bus/i2c/devices/52-0050/sfp_is_present', + '/sys/bus/i2c/devices/61-0050/sfp_is_present', + '/sys/bus/i2c/devices/62-0050/sfp_is_present', + '/sys/bus/i2c/devices/63-0050/sfp_is_present', + '/sys/bus/i2c/devices/64-0050/sfp_is_present', + '/sys/bus/i2c/devices/53-0050/sfp_is_present', + '/sys/bus/i2c/devices/54-0050/sfp_is_present', + '/sys/bus/i2c/devices/55-0050/sfp_is_present', + '/sys/bus/i2c/devices/56-0050/sfp_is_present', + '/sys/bus/i2c/devices/57-0050/sfp_is_present', + '/sys/bus/i2c/devices/58-0050/sfp_is_present', + '/sys/bus/i2c/devices/59-0050/sfp_is_present', + '/sys/bus/i2c/devices/60-0050/sfp_is_present', + '/sys/bus/i2c/devices/69-0050/sfp_is_present', + '/sys/bus/i2c/devices/70-0050/sfp_is_present', + '/sys/bus/i2c/devices/71-0050/sfp_is_present', + '/sys/bus/i2c/devices/72-0050/sfp_is_present', + '/sys/bus/i2c/devices/77-0050/sfp_is_present', + '/sys/bus/i2c/devices/78-0050/sfp_is_present', + '/sys/bus/i2c/devices/79-0050/sfp_is_present', + '/sys/bus/i2c/devices/80-0050/sfp_is_present', + '/sys/bus/i2c/devices/65-0050/sfp_is_present', + '/sys/bus/i2c/devices/66-0050/sfp_is_present', + '/sys/bus/i2c/devices/67-0050/sfp_is_present', + '/sys/bus/i2c/devices/68-0050/sfp_is_present', + '/sys/bus/i2c/devices/73-0050/sfp_is_present', + '/sys/bus/i2c/devices/74-0050/sfp_is_present', + '/sys/bus/i2c/devices/75-0050/sfp_is_present', + '/sys/bus/i2c/devices/76-0050/sfp_is_present', + '/sys/bus/i2c/devices/85-0050/sfp_is_present', + '/sys/bus/i2c/devices/86-0050/sfp_is_present', + '/sys/bus/i2c/devices/87-0050/sfp_is_present', + '/sys/bus/i2c/devices/88-0050/sfp_is_present', + '/sys/bus/i2c/devices/31-0050/sfp_is_present', + '/sys/bus/i2c/devices/32-0050/sfp_is_present', + '/sys/bus/i2c/devices/29-0050/sfp_is_present', + '/sys/bus/i2c/devices/30-0050/sfp_is_present', + '/sys/bus/i2c/devices/81-0050/sfp_is_present', + '/sys/bus/i2c/devices/82-0050/sfp_is_present', + '/sys/bus/i2c/devices/83-0050/sfp_is_present', + '/sys/bus/i2c/devices/84-0050/sfp_is_present', + '/sys/bus/i2c/devices/25-0050/sfp_is_present', + '/sys/bus/i2c/devices/26-0050/sfp_is_present', + '/sys/bus/i2c/devices/27-0050/sfp_is_present', + '/sys/bus/i2c/devices/28-0050/sfp_is_present' + + ] + # sys.path.append('/usr/local/bin') + _qsfp_ports = range(0, ports_in_block + 1) + + + def __init__(self): + eeprom_path = '/sys/bus/i2c/devices/{0}-0050/sfp_eeprom' + for x in range(0, self._port_end + 1): + port_eeprom_path = eeprom_path.format(self.port_to_i2c_mapping[x+1]) + self._port_to_eeprom_mapping[x] = port_eeprom_path + SfpUtilBase.__init__(self) + + def reset(self, port_num): + # Check for invalid port_num + if port_num < self._port_start or port_num > self._port_end: + return False + path = "/sys/bus/i2c/devices/19-0060/module_reset_{0}" + port_ps = path.format(port_num+1) + + try: + reg_file = open(port_ps, 'w') + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + #HW will clear reset after set. + reg_file.seek(0) + reg_file.write('1') + reg_file.close() + return True + + def get_presence(self, port_num): + # Check for invalid port_num + if port_num < self._port_start or port_num > self._port_end: + return False + + path = "/sys/bus/i2c/devices/{0}-0050/sfp_is_present" + port_ps = path.format(self.port_to_i2c_mapping[port_num+1]) + + + try: + reg_file = open(port_ps) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + reg_value = reg_file.readline().rstrip() + if reg_value == '1': + return True + + return False + + @property + def port_start(self): + return self._port_start + + @property + def port_end(self): + return self._port_end + + @property + def qsfp_ports(self): + return range(0, self.ports_in_block + 1) + + @property + def port_to_eeprom_mapping(self): + return self._port_to_eeprom_mapping + + # Writing to a file from a list + def write_to_file(self, file_name, from_list): + try: + fp1 = open(file_name, 'w') + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + for i in from_list: + fp1.write(i) + fp1.write('\n') + + fp1.close() + return True + + + # Reading from a file to a list + def read_from_file(self, file_name): + try: + fp = open(file_name, 'r') + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + to_list = fp.readlines() + to_list = [x.rstrip() for x in to_list] + fp.close() + return to_list + + def sfp_detect(self): + x = 0 + ret_dict = {} + defl_dict = {} + current_sfp_values = [0] * 64 + previous_sfp_values = [0] * 64 + + if not os.path.isfile(self.cmd): + pass + else: + if (self.read_from_file(self.cmd) == False): + return False, defl_dict + else: + previous_sfp_values = self.read_from_file(self.cmd) + + # Read the current values from sysfs + for x in range(len(self.port_to_sysfs_map)): + try: + reg_file = open(self.port_to_sysfs_map[x], 'r') + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False, defl_dict + + sfp_present = reg_file.readline().rstrip() + reg_file.close() + current_sfp_values[x] = sfp_present + if (current_sfp_values[x] != previous_sfp_values[x]): + ret_dict.update({x:current_sfp_values[x]}) + + if(self.write_to_file(self.cmd, current_sfp_values) == True): + return True, ret_dict + else: + return False, defl_dict + + def get_transceiver_change_event(self): + time.sleep(3) + return self.sfp_detect() + + def get_low_power_mode(self, port_num): + # Check for invalid port_num + if port_num < self._port_start or port_num > self._port_end: + return False + + try: + eeprom = None + + if not self.get_presence(port_num): + return False + + eeprom = open(self.port_to_eeprom_mapping[port_num], "rb") + eeprom.seek(93) + lpmode = ord(eeprom.read(1)) + + if ((lpmode & 0x3) == 0x3): + return True # Low Power Mode if "Power override" bit is 1 and "Power set" bit is 1 + else: + return False # High Power Mode if one of the following conditions is matched: + # 1. "Power override" bit is 0 + # 2. "Power override" bit is 1 and "Power set" bit is 0 + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + finally: + if eeprom is not None: + eeprom.close() + time.sleep(0.01) + + def set_low_power_mode(self, port_num, lpmode): + # Check for invalid port_num + if port_num < self._port_start or port_num > self._port_end: + return False + + try: + eeprom = None + + if not self.get_presence(port_num): + return False # Port is not present, unable to set the eeprom + + # Fill in write buffer + regval = 0x3 if lpmode else 0x1 # 0x3:Low Power Mode, 0x1:High Power Mode + buffer = create_string_buffer(1) + buffer[0] = chr(regval) + + # Write to eeprom + eeprom = open(self.port_to_eeprom_mapping[port_num], "r+b") + eeprom.seek(93) + eeprom.write(buffer[0]) + return True + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + finally: + if eeprom is not None: + eeprom.close() + time.sleep(0.01) + + # Read out SFP type, vendor name, PN, REV, SN from eeprom. + def get_transceiver_info_dict(self, port_num): + transceiver_info_dict = {} + compliance_code_dict = {} + + # ToDo: OSFP tranceiver info parsing not fully supported. + # in inf8628.py lack of some memory map definition + # will be implemented when the inf8628 memory map ready + if port_num in self.osfp_ports: + offset = 0 + vendor_rev_width = XCVR_HW_REV_WIDTH_OSFP + + sfpi_obj = inf8628InterfaceId() + if sfpi_obj is None: + print("Error: sfp_object open failed") + return None + + file_path = self._get_port_eeprom_path(port_num, self.IDENTITY_EEPROM_ADDR) + if not self._sfp_eeprom_present(file_path, 0): + print("Error, file not exist %s" % file_path) + return None + + try: + sysfsfile_eeprom = open(file_path, mode="rb", buffering=0) + except IOError: + print("Error: reading sysfs file %s" % file_path) + return None + + sfp_type_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + OSFP_TYPE_OFFSET), XCVR_TYPE_WIDTH) + if sfp_type_raw is not None: + sfp_type_data = sfpi_obj.parse_sfp_type(sfp_type_raw, 0) + else: + return None + + sfp_vendor_name_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + OSFP_VENDOR_NAME_OFFSET), XCVR_VENDOR_NAME_WIDTH) + if sfp_vendor_name_raw is not None: + sfp_vendor_name_data = sfpi_obj.parse_vendor_name(sfp_vendor_name_raw, 0) + else: + return None + + sfp_vendor_pn_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + OSFP_VENDOR_PN_OFFSET), XCVR_VENDOR_PN_WIDTH) + if sfp_vendor_pn_raw is not None: + sfp_vendor_pn_data = sfpi_obj.parse_vendor_pn(sfp_vendor_pn_raw, 0) + else: + return None + + sfp_vendor_rev_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + OSFP_HW_REV_OFFSET), vendor_rev_width) + if sfp_vendor_rev_raw is not None: + sfp_vendor_rev_data = sfpi_obj.parse_vendor_rev(sfp_vendor_rev_raw, 0) + else: + return None + + sfp_vendor_sn_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + OSFP_VENDOR_SN_OFFSET), XCVR_VENDOR_SN_WIDTH) + if sfp_vendor_sn_raw is not None: + sfp_vendor_sn_data = sfpi_obj.parse_vendor_sn(sfp_vendor_sn_raw, 0) + else: + return None + + try: + sysfsfile_eeprom.close() + except IOError: + print("Error: closing sysfs file %s" % file_path) + return None + + transceiver_info_dict['type'] = sfp_type_data['data']['type']['value'] + transceiver_info_dict['type_abbrv_name'] = sfp_type_data['data']['type_abbrv_name']['value'] + transceiver_info_dict['manufacturename'] = sfp_vendor_name_data['data']['Vendor Name']['value'] + transceiver_info_dict['modelname'] = sfp_vendor_pn_data['data']['Vendor PN']['value'] + transceiver_info_dict['hardwarerev'] = sfp_vendor_rev_data['data']['Vendor Rev']['value'] + transceiver_info_dict['serialnum'] = sfp_vendor_sn_data['data']['Vendor SN']['value'] + # Below part is added to avoid fail the xcvrd, shall be implemented later + transceiver_info_dict['vendor_oui'] = 'N/A' + transceiver_info_dict['vendor_date'] = 'N/A' + transceiver_info_dict['Connector'] = 'N/A' + transceiver_info_dict['encoding'] = 'N/A' + transceiver_info_dict['ext_identifier'] = 'N/A' + transceiver_info_dict['ext_rateselect_compliance'] = 'N/A' + transceiver_info_dict['cable_type'] = 'N/A' + transceiver_info_dict['cable_length'] = 'N/A' + transceiver_info_dict['specification_compliance'] = 'N/A' + transceiver_info_dict['nominal_bit_rate'] = 'N/A' + + else: + if port_num in self.qsfp_ports: + offset = 128 + vendor_rev_width = XCVR_HW_REV_WIDTH_QSFP + cable_length_width = XCVR_CABLE_LENGTH_WIDTH_QSFP + interface_info_bulk_width = XCVR_INTFACE_BULK_WIDTH_QSFP + sfp_type = 'QSFP' + + sfpi_obj = sff8436InterfaceId() + if sfpi_obj is None: + print("Error: sfp_object open failed") + return None + + else: + offset = 0 + vendor_rev_width = XCVR_HW_REV_WIDTH_SFP + cable_length_width = XCVR_CABLE_LENGTH_WIDTH_SFP + interface_info_bulk_width = XCVR_INTFACE_BULK_WIDTH_SFP + sfp_type = 'SFP' + + sfpi_obj = sff8472InterfaceId() + if sfpi_obj is None: + print("Error: sfp_object open failed") + return None + + file_path = self._get_port_eeprom_path(port_num, self.IDENTITY_EEPROM_ADDR) + if not self._sfp_eeprom_present(file_path, 0): + print("Error, file not exist %s" % file_path) + return None + + try: + sysfsfile_eeprom = open(file_path, mode="rb", buffering=0) + except IOError: + print("Error: reading sysfs file %s" % file_path) + return None + + sfp_interface_bulk_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + XCVR_INTFACE_BULK_OFFSET), interface_info_bulk_width) + if sfp_interface_bulk_raw is not None: + sfp_interface_bulk_data = sfpi_obj.parse_sfp_info_bulk(sfp_interface_bulk_raw, 0) + else: + return None + + sfp_vendor_name_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + XCVR_VENDOR_NAME_OFFSET), XCVR_VENDOR_NAME_WIDTH) + if sfp_vendor_name_raw is not None: + sfp_vendor_name_data = sfpi_obj.parse_vendor_name(sfp_vendor_name_raw, 0) + else: + return None + + sfp_vendor_pn_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + XCVR_VENDOR_PN_OFFSET), XCVR_VENDOR_PN_WIDTH) + if sfp_vendor_pn_raw is not None: + sfp_vendor_pn_data = sfpi_obj.parse_vendor_pn(sfp_vendor_pn_raw, 0) + else: + return None + + sfp_vendor_rev_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + XCVR_HW_REV_OFFSET), vendor_rev_width) + if sfp_vendor_rev_raw is not None: + sfp_vendor_rev_data = sfpi_obj.parse_vendor_rev(sfp_vendor_rev_raw, 0) + else: + return None + + sfp_vendor_sn_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + XCVR_VENDOR_SN_OFFSET), XCVR_VENDOR_SN_WIDTH) + if sfp_vendor_sn_raw is not None: + sfp_vendor_sn_data = sfpi_obj.parse_vendor_sn(sfp_vendor_sn_raw, 0) + else: + return None + + sfp_vendor_oui_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + XCVR_VENDOR_OUI_OFFSET), XCVR_VENDOR_OUI_WIDTH) + if sfp_vendor_oui_raw is not None: + sfp_vendor_oui_data = sfpi_obj.parse_vendor_oui(sfp_vendor_oui_raw, 0) + else: + return None + + sfp_vendor_date_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + XCVR_VENDOR_DATE_OFFSET), XCVR_VENDOR_DATE_WIDTH) + if sfp_vendor_date_raw is not None: + sfp_vendor_date_data = sfpi_obj.parse_vendor_date(sfp_vendor_date_raw, 0) + else: + return None + + try: + sysfsfile_eeprom.close() + except IOError: + print("Error: closing sysfs file %s" % file_path) + return None + + transceiver_info_dict['type'] = sfp_interface_bulk_data['data']['type']['value'] + transceiver_info_dict['type_abbrv_name'] = sfp_interface_bulk_data['data']['type_abbrv_name']['value'] + transceiver_info_dict['manufacturename'] = sfp_vendor_name_data['data']['Vendor Name']['value'] + transceiver_info_dict['modelname'] = sfp_vendor_pn_data['data']['Vendor PN']['value'] + transceiver_info_dict['hardwarerev'] = sfp_vendor_rev_data['data']['Vendor Rev']['value'] + transceiver_info_dict['serialnum'] = sfp_vendor_sn_data['data']['Vendor SN']['value'] + transceiver_info_dict['vendor_oui'] = sfp_vendor_oui_data['data']['Vendor OUI']['value'] + transceiver_info_dict['vendor_date'] = sfp_vendor_date_data['data']['VendorDataCode(YYYY-MM-DD Lot)']['value'] + transceiver_info_dict['Connector'] = sfp_interface_bulk_data['data']['Connector']['value'] + transceiver_info_dict['encoding'] = sfp_interface_bulk_data['data']['EncodingCodes']['value'] + transceiver_info_dict['ext_identifier'] = sfp_interface_bulk_data['data']['Extended Identifier']['value'] + transceiver_info_dict['ext_rateselect_compliance'] = sfp_interface_bulk_data['data']['RateIdentifier']['value'] + if sfp_type == 'QSFP': + for key in qfx5210_qsfp_cable_length_tup: + if key in sfp_interface_bulk_data['data']: + transceiver_info_dict['cable_type'] = key + transceiver_info_dict['cable_length'] = str(sfp_interface_bulk_data['data'][key]['value']) + break + else: + transceiver_info_dict['cable_type'] = key + transceiver_info_dict['cable_length'] = 'N/A' + + for key in qfx5210_qsfp_compliance_code_tup: + if key in sfp_interface_bulk_data['data']['Specification compliance']['value']: + compliance_code_dict[key] = sfp_interface_bulk_data['data']['Specification compliance']['value'][key]['value'] + transceiver_info_dict['specification_compliance'] = str(compliance_code_dict) + + if sfp_interface_bulk_data['data'].has_key('Nominal Bit Rate(100Mbs)'): + transceiver_info_dict['nominal_bit_rate'] = str(sfp_interface_bulk_data['data']['Nominal Bit Rate(100Mbs)']['value']) + else: + transceiver_info_dict['nominal_bit_rate'] = 'N/A' + else: + for key in qfx5210_sfp_cable_length_tup: + if key in sfp_interface_bulk_data['data']: + transceiver_info_dict['cable_type'] = key + transceiver_info_dict['cable_length'] = str(sfp_interface_bulk_data['data'][key]['value']) + else: + transceiver_info_dict['cable_type'] = key + transceiver_info_dict['cable_length'] = 'N/A' + + for key in qfx5210_sfp_compliance_code_tup: + if key in sfp_interface_bulk_data['data']['Specification compliance']['value']: + compliance_code_dict[key] = sfp_interface_bulk_data['data']['Specification compliance']['value'][key]['value'] + transceiver_info_dict['specification_compliance'] = str(compliance_code_dict) + + if sfp_interface_bulk_data['data'].has_key('NominalSignallingRate(UnitsOf100Mbd)'): + transceiver_info_dict['nominal_bit_rate'] = str(sfp_interface_bulk_data['data']['NominalSignallingRate(UnitsOf100Mbd)']['value']) + else: + transceiver_info_dict['nominal_bit_rate'] = 'N/A' + #transceiver_info_dict['nominal_bit_rate'] = str(sfp_interface_bulk_data['data']['NominalSignallingRate(UnitsOf100Mbd)']['value']) + + return transceiver_info_dict + + def get_transceiver_dom_info_dict(self, port_num): + transceiver_dom_info_dict = {} + + if port_num in self.osfp_ports: + # Below part is added to avoid fail xcvrd, shall be implemented later + transceiver_dom_info_dict['temperature'] = 'N/A' + transceiver_dom_info_dict['voltage'] = 'N/A' + transceiver_dom_info_dict['rx1power'] = 'N/A' + transceiver_dom_info_dict['rx2power'] = 'N/A' + transceiver_dom_info_dict['rx3power'] = 'N/A' + transceiver_dom_info_dict['rx4power'] = 'N/A' + transceiver_dom_info_dict['tx1bias'] = 'N/A' + transceiver_dom_info_dict['tx2bias'] = 'N/A' + transceiver_dom_info_dict['tx3bias'] = 'N/A' + transceiver_dom_info_dict['tx4bias'] = 'N/A' + transceiver_dom_info_dict['tx1power'] = 'N/A' + transceiver_dom_info_dict['tx2power'] = 'N/A' + transceiver_dom_info_dict['tx3power'] = 'N/A' + transceiver_dom_info_dict['tx4power'] = 'N/A' + + elif port_num in self.qsfp_ports: + offset = 0 + offset_xcvr = 128 + file_path = self._get_port_eeprom_path(port_num, self.IDENTITY_EEPROM_ADDR) + if not self._sfp_eeprom_present(file_path, 0): + return None + + try: + sysfsfile_eeprom = open(file_path, mode="rb", buffering=0) + except IOError: + print("Error: reading sysfs file %s" % file_path) + return None + + sfpd_obj = sff8436Dom() + if sfpd_obj is None: + return None + + sfpi_obj = sff8436InterfaceId() + if sfpi_obj is None: + return None + + # QSFP capability byte parse, through this byte can know whether it support tx_power or not. + # TODO: in the future when decided to migrate to support SFF-8636 instead of SFF-8436, + # need to add more code for determining the capability and version compliance + # in SFF-8636 dom capability definitions evolving with the versions. + qsfp_dom_capability_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset_xcvr + XCVR_DOM_CAPABILITY_OFFSET), XCVR_DOM_CAPABILITY_WIDTH) + if qsfp_dom_capability_raw is not None: + qspf_dom_capability_data = sfpi_obj.parse_qsfp_dom_capability(qsfp_dom_capability_raw, 0) + else: + return None + + dom_temperature_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + QSFP_TEMPE_OFFSET), QSFP_TEMPE_WIDTH) + if dom_temperature_raw is not None: + dom_temperature_data = sfpd_obj.parse_temperature(dom_temperature_raw, 0) + else: + return None + + dom_voltage_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + QSFP_VOLT_OFFSET), QSFP_VOLT_WIDTH) + if dom_voltage_raw is not None: + dom_voltage_data = sfpd_obj.parse_voltage(dom_voltage_raw, 0) + else: + return None + + qsfp_dom_rev_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + QSFP_DOM_REV_OFFSET), QSFP_DOM_REV_WIDTH) + if qsfp_dom_rev_raw is not None: + qsfp_dom_rev_data = sfpd_obj.parse_sfp_dom_rev(qsfp_dom_rev_raw, 0) + else: + return None + + transceiver_dom_info_dict['temperature'] = dom_temperature_data['data']['Temperature']['value'] + transceiver_dom_info_dict['voltage'] = dom_voltage_data['data']['Vcc']['value'] + + # The tx_power monitoring is only available on QSFP which compliant with SFF-8636 + # and claimed that it support tx_power with one indicator bit. + dom_channel_monitor_data = {} + qsfp_dom_rev = qsfp_dom_rev_data['data']['dom_rev']['value'] + qsfp_tx_power_support = qspf_dom_capability_data['data']['Tx_power_support']['value'] + if (qsfp_dom_rev[0:8] != 'SFF-8636' or (qsfp_dom_rev[0:8] == 'SFF-8636' and qsfp_tx_power_support != 'on')): + dom_channel_monitor_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + QSFP_CHANNL_MON_OFFSET), QSFP_CHANNL_MON_WIDTH) + if dom_channel_monitor_raw is not None: + dom_channel_monitor_data = sfpd_obj.parse_channel_monitor_params(dom_channel_monitor_raw, 0) + else: + return None + + transceiver_dom_info_dict['tx1power'] = 'N/A' + transceiver_dom_info_dict['tx2power'] = 'N/A' + transceiver_dom_info_dict['tx3power'] = 'N/A' + transceiver_dom_info_dict['tx4power'] = 'N/A' + else: + dom_channel_monitor_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + QSFP_CHANNL_MON_OFFSET), QSFP_CHANNL_MON_WITH_TX_POWER_WIDTH) + if dom_channel_monitor_raw is not None: + dom_channel_monitor_data = sfpd_obj.parse_channel_monitor_params_with_tx_power(dom_channel_monitor_raw, 0) + else: + return None + + transceiver_dom_info_dict['tx1power'] = dom_channel_monitor_data['data']['TX1Power']['value'] + transceiver_dom_info_dict['tx2power'] = dom_channel_monitor_data['data']['TX2Power']['value'] + transceiver_dom_info_dict['tx3power'] = dom_channel_monitor_data['data']['TX3Power']['value'] + transceiver_dom_info_dict['tx4power'] = dom_channel_monitor_data['data']['TX4Power']['value'] + + try: + sysfsfile_eeprom.close() + except IOError: + print("Error: closing sysfs file %s" % file_path) + return None + + transceiver_dom_info_dict['temperature'] = dom_temperature_data['data']['Temperature']['value'] + transceiver_dom_info_dict['voltage'] = dom_voltage_data['data']['Vcc']['value'] + transceiver_dom_info_dict['rx1power'] = dom_channel_monitor_data['data']['RX1Power']['value'] + transceiver_dom_info_dict['rx2power'] = dom_channel_monitor_data['data']['RX2Power']['value'] + transceiver_dom_info_dict['rx3power'] = dom_channel_monitor_data['data']['RX3Power']['value'] + transceiver_dom_info_dict['rx4power'] = dom_channel_monitor_data['data']['RX4Power']['value'] + transceiver_dom_info_dict['tx1bias'] = dom_channel_monitor_data['data']['TX1Bias']['value'] + transceiver_dom_info_dict['tx2bias'] = dom_channel_monitor_data['data']['TX2Bias']['value'] + transceiver_dom_info_dict['tx3bias'] = dom_channel_monitor_data['data']['TX3Bias']['value'] + transceiver_dom_info_dict['tx4bias'] = dom_channel_monitor_data['data']['TX4Bias']['value'] + + else: + offset = 256 + file_path = self._get_port_eeprom_path(port_num, self.DOM_EEPROM_ADDR) + if not self._sfp_eeprom_present(file_path, 0): + return None + + try: + sysfsfile_eeprom = open(file_path, mode="rb", buffering=0) + except IOError: + print("Error: reading sysfs file %s" % file_path) + return None + + sfpd_obj = sff8472Dom() + if sfpd_obj is None: + return None + + dom_temperature_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + SFP_TEMPE_OFFSET), SFP_TEMPE_WIDTH) + if dom_temperature_raw is not None: + dom_temperature_data = sfpd_obj.parse_temperature(dom_temperature_raw, 0) + else: + return None + + dom_voltage_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + SFP_VOLT_OFFSET), SFP_VOLT_WIDTH) + if dom_voltage_raw is not None: + dom_voltage_data = sfpd_obj.parse_voltage(dom_voltage_raw, 0) + else: + return None + + dom_channel_monitor_raw = self._read_eeprom_specific_bytes(sysfsfile_eeprom, (offset + SFP_CHANNL_MON_OFFSET), SFP_CHANNL_MON_WIDTH) + if dom_channel_monitor_raw is not None: + dom_channel_monitor_data = sfpd_obj.parse_channel_monitor_params(dom_channel_monitor_raw, 0) + else: + return None + + try: + sysfsfile_eeprom.close() + except IOError: + print("Error: closing sysfs file %s" % file_path) + return None + + transceiver_dom_info_dict['temperature'] = dom_temperature_data['data']['Temperature']['value'] + transceiver_dom_info_dict['voltage'] = dom_voltage_data['data']['Vcc']['value'] + transceiver_dom_info_dict['rx1power'] = dom_channel_monitor_data['data']['RXPower']['value'] + transceiver_dom_info_dict['rx2power'] = 'N/A' + transceiver_dom_info_dict['rx3power'] = 'N/A' + transceiver_dom_info_dict['rx4power'] = 'N/A' + transceiver_dom_info_dict['tx1bias'] = dom_channel_monitor_data['data']['TXBias']['value'] + transceiver_dom_info_dict['tx2bias'] = 'N/A' + transceiver_dom_info_dict['tx3bias'] = 'N/A' + transceiver_dom_info_dict['tx4bias'] = 'N/A' + transceiver_dom_info_dict['tx1power'] = dom_channel_monitor_data['data']['TXPower']['value'] + transceiver_dom_info_dict['tx2power'] = 'N/A' + transceiver_dom_info_dict['tx3power'] = 'N/A' + transceiver_dom_info_dict['tx4power'] = 'N/A' + + return transceiver_dom_info_dict diff --git a/platform/broadcom/one-image.mk b/platform/broadcom/one-image.mk index 0d69d63c02..451e22ba37 100644 --- a/platform/broadcom/one-image.mk +++ b/platform/broadcom/one-image.mk @@ -51,7 +51,8 @@ $(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(DELL_S6000_PLATFORM_MODULE) \ $(ALPHANETWORKS_SNH60A0_320FV2_PLATFORM_MODULE) \ $(ALPHANETWORKS_SNH60B0_640F_PLATFORM_MODULE) \ $(BRCM_XLR_GTS_PLATFORM_MODULE) \ - $(DELTA_AG9032V2A_PLATFORM_MODULE) + $(DELTA_AG9032V2A_PLATFORM_MODULE) \ + $(JUNIPER_QFX5210_PLATFORM_MODULE) ifeq ($(INSTALL_DEBUG_TOOLS),y) $(SONIC_ONE_IMAGE)_DOCKERS += $(SONIC_INSTALL_DOCKER_DBG_IMAGES) $(SONIC_ONE_IMAGE)_DOCKERS += $(filter-out $(patsubst %-$(DBG_IMAGE_MARK).gz,%.gz, $(SONIC_INSTALL_DOCKER_DBG_IMAGES)), $(SONIC_INSTALL_DOCKER_IMAGES)) diff --git a/platform/broadcom/platform-modules-juniper.mk b/platform/broadcom/platform-modules-juniper.mk new file mode 100755 index 0000000000..083dabda6d --- /dev/null +++ b/platform/broadcom/platform-modules-juniper.mk @@ -0,0 +1,13 @@ +# Juniper Platform modules + +JUNIPER_QFX5210_PLATFORM_MODULE_VERSION = 1.1 + +export JUNIPER_QFX5210_PLATFORM_MODULE_VERSION + +JUNIPER_QFX5210_PLATFORM_MODULE = sonic-platform-juniper-qfx5210_$(JUNIPER_QFX5210_PLATFORM_MODULE_VERSION)_amd64.deb +$(JUNIPER_QFX5210_PLATFORM_MODULE)_SRC_PATH = $(PLATFORM_PATH)/sonic-platform-modules-juniper +$(JUNIPER_QFX5210_PLATFORM_MODULE)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON) +$(JUNIPER_QFX5210_PLATFORM_MODULE)_PLATFORM = x86_64-juniper_qfx5210-r0 +SONIC_DPKG_DEBS += $(JUNIPER_QFX5210_PLATFORM_MODULE) + +SONIC_STRETCH_DEBS += $(JUNIPER_QFX5210_PLATFORM_MODULE) diff --git a/platform/broadcom/rules.mk b/platform/broadcom/rules.mk index 884a50a1ac..8dd7b2c8cb 100644 --- a/platform/broadcom/rules.mk +++ b/platform/broadcom/rules.mk @@ -10,6 +10,7 @@ include $(PLATFORM_PATH)/platform-modules-cel.mk include $(PLATFORM_PATH)/platform-modules-delta.mk include $(PLATFORM_PATH)/platform-modules-quanta.mk #include $(PLATFORM_PATH)/platform-modules-mitac.mk +include $(PLATFORM_PATH)/platform-modules-juniper.mk include $(PLATFORM_PATH)/platform-modules-brcm-xlr-gts.mk include $(PLATFORM_PATH)/docker-syncd-brcm.mk include $(PLATFORM_PATH)/docker-syncd-brcm-rpc.mk diff --git a/platform/broadcom/sonic-platform-modules-juniper/.gitignore b/platform/broadcom/sonic-platform-modules-juniper/.gitignore new file mode 100644 index 0000000000..7f287d5382 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/.gitignore @@ -0,0 +1,50 @@ +# Object files +*.o +*.ko +*.obj +*.elf + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su + +# Kernel Module Compile Results +*.mod* +*.cmd +*.o.d +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + +# Debian packaging +*.debhelper.log +*.postinst.debhelper +*.postrm.debhelper +*.prerm.debhelper +*.substvars diff --git a/platform/broadcom/sonic-platform-modules-juniper/LICENSE b/platform/broadcom/sonic-platform-modules-juniper/LICENSE new file mode 100644 index 0000000000..c819eacfeb --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/LICENSE @@ -0,0 +1,16 @@ +Copyright (C) 2016 Microsoft, Inc +Copyright (C) 2019 Juniper Networks + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. diff --git a/platform/broadcom/sonic-platform-modules-juniper/README.md b/platform/broadcom/sonic-platform-modules-juniper/README.md new file mode 100644 index 0000000000..8d2820a74b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/README.md @@ -0,0 +1 @@ +platform drivers for Juniper QFX5210 for the SONiC project diff --git a/platform/broadcom/sonic-platform-modules-juniper/common/modules/juniper_i2c_cpld.c b/platform/broadcom/sonic-platform-modules-juniper/common/modules/juniper_i2c_cpld.c new file mode 100644 index 0000000000..25860a6ac1 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/common/modules/juniper_i2c_cpld.c @@ -0,0 +1,892 @@ +/* + * A hwmon driver for the juniper_i2c_cpld + * + * Tested and validated on Juniper QFX5210 + * Ciju Rajan K + * + * Copyright (C) 2013 Accton Technology Corporation. + * Brandon Chuang + * + * Based on ad7414.c + * Copyright 2006 Stefan Roese , DENX Software Engineering + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MAX_PORT_NUM 64 +#define I2C_RW_RETRY_COUNT 10 +#define I2C_RW_RETRY_INTERVAL 60 /* ms */ + +#define I2C_ADDR_CPLD1 0x60 +#define I2C_ADDR_CPLD2 0x62 +#define I2C_ADDR_CPLD3 0x64 +#define CPLD_ADDRS {I2C_ADDR_CPLD1, I2C_ADDR_CPLD2, I2C_ADDR_CPLD3} + + +/* + * Number of additional attribute pointers to allocate + * with each call to krealloc + */ +#define ATTR_ALLOC_SIZE 1 /*For last attribute which is NUll.*/ + +#define NAME_SIZE 24 +#define MAX_RESP_LENGTH 48 + +typedef ssize_t (*show_func)( struct device *dev, + struct device_attribute *attr, + char *buf); +typedef ssize_t (*store_func)(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count); + +enum models { + AS7712_32X, + AS7716_32X, + qfx5210_64X, + AS7312_54X, + PLAIN_CPLD, /*No attribute but add i2c addr to the list.*/ + NUM_MODEL +}; + +enum sfp_func { + HAS_SFP = 1<<0 , + HAS_QSFP = 1<<1 , +}; + +enum common_attrs { + CMN_VERSION, + CMN_ACCESS, + CMN_PRESENT_ALL, + NUM_COMMON_ATTR +}; + +enum sfp_attrs { + SFP_PRESENT, + SFP_RESET, + SFP_LP_MODE, + NUM_SFP_ATTR +}; + +struct cpld_sensor { + struct cpld_sensor *next; + char name[NAME_SIZE+1]; /* sysfs sensor name */ + struct device_attribute attribute; + bool update; /* runtime sensor update needed */ + int data; /* Sensor data. Negative if there was a read error */ + + u8 reg; /* register */ + u8 mask; /* bit mask */ + bool invert; /* inverted value*/ + +}; + +#define to_cpld_sensor(_attr) \ + container_of(_attr, struct cpld_sensor, attribute) + +struct cpld_data { + struct device *dev; + struct device *hwmon_dev; + + int num_attributes; + struct attribute_group group; + + enum models model; + struct cpld_sensor *sensors; + struct mutex update_lock; + bool valid; + unsigned long last_updated; /* in jiffies */ + + int attr_index; + u16 sfp_num; + u8 sfp_types; + struct model_attrs *cmn_attr; +}; + +struct cpld_client_node { + struct i2c_client *client; + struct list_head list; +}; + + +struct base_attrs { + const char *name; + umode_t mode; + show_func get; + store_func set; +}; + +struct attrs { + int reg; + bool invert; + struct base_attrs *base; +}; + +struct model_attrs { + struct attrs **cmn; + struct attrs **portly; +}; + + +static ssize_t show_bit(struct device *dev, + struct device_attribute *devattr, char *buf); +static ssize_t show_presnet_all(struct device *dev, + struct device_attribute *devattr, char *buf); +static ssize_t set_1bit(struct device *dev, struct device_attribute *da, + const char *buf, size_t count); +static ssize_t set_byte(struct device *dev, struct device_attribute *da, + const char *buf, size_t count); +static ssize_t access(struct device *dev, struct device_attribute *da, + const char *buf, size_t count); + +int juniper_i2c_cpld_read(u8 cpld_addr, u8 reg); +int juniper_i2c_cpld_write(unsigned short cpld_addr, u8 reg, u8 value); + + +struct base_attrs common_attrs[NUM_COMMON_ATTR] = +{ + [CMN_VERSION] = {"version", S_IRUGO, show_bit, NULL}, + [CMN_ACCESS] = {"access", S_IWUSR, NULL, set_byte}, + [CMN_PRESENT_ALL] = {"module_present_all", S_IRUGO, show_presnet_all, NULL}, +}; + +struct attrs as7712_common[] = { + [CMN_VERSION] = {0x01, false, &common_attrs[CMN_VERSION]}, + [CMN_ACCESS] = {0x00, false, &common_attrs[CMN_ACCESS]}, + [CMN_PRESENT_ALL] = {0x30, false, &common_attrs[CMN_PRESENT_ALL]}, +}; +struct attrs qfx5210_common[] = { + [CMN_VERSION] = {0x01, false, &common_attrs[CMN_VERSION]}, + [CMN_ACCESS] = {0x00, false, &common_attrs[CMN_ACCESS]}, + [CMN_PRESENT_ALL] = {0x30, false, &common_attrs[CMN_PRESENT_ALL]}, +}; +struct attrs as7312_common[] = { + [CMN_VERSION] = {0x01, false, &common_attrs[CMN_VERSION]}, + [CMN_ACCESS] = {0x00, false, &common_attrs[CMN_ACCESS]}, + [CMN_PRESENT_ALL] = {-1, false, &common_attrs[CMN_PRESENT_ALL]}, +}; +struct attrs plain_common[] = { + [CMN_VERSION] = {0x01, false, &common_attrs[CMN_VERSION]}, +}; + +struct base_attrs portly_attrs[] = +{ + [SFP_PRESENT] = {"module_present", S_IRUGO, show_bit, NULL}, + // Only root user will have the privilege to write to sysfs + // [SFP_RESET] = {"module_reset", S_IRUGO|S_IWUGO, show_bit, set_1bit}, + [SFP_RESET] = {"module_reset", S_IRUGO|S_IWUSR, show_bit, set_1bit}, +}; + +struct attrs as7712_port[] = { + {0x30, true, &portly_attrs[SFP_PRESENT]}, + {0x04, true, &portly_attrs[SFP_RESET]}, +}; + +struct attrs qfx5210_port[] = { + {0x70, true, &portly_attrs[SFP_PRESENT]}, + {0x40, true, &portly_attrs[SFP_RESET]}, +}; + +struct attrs *as7712_cmn_list[] = { + &as7712_common[CMN_VERSION], + &as7712_common[CMN_ACCESS], + &as7712_common[CMN_PRESENT_ALL], + NULL +}; + +struct attrs *qfx5210_cmn_list[] = { + &qfx5210_common[CMN_VERSION], + &qfx5210_common[CMN_ACCESS], + &qfx5210_common[CMN_PRESENT_ALL], + NULL +}; + +struct attrs *as7312_cmn_list[] = { + &as7312_common[CMN_VERSION], + &as7312_common[CMN_ACCESS], + &as7312_common[CMN_PRESENT_ALL], + NULL +}; + +struct attrs *plain_cmn_list[] = { + &plain_common[CMN_VERSION], + NULL +}; + +struct attrs *as7712_port_list[] = { + &as7712_port[SFP_PRESENT], + &as7712_port[SFP_RESET], + NULL +}; +struct attrs *qfx5210_port_list[] = { + &qfx5210_port[SFP_PRESENT], + &qfx5210_port[SFP_RESET], + NULL +}; + +struct model_attrs models_attr[NUM_MODEL] = { + {.cmn = as7712_cmn_list, .portly=as7712_port_list}, + {.cmn = as7712_cmn_list, .portly=as7712_port_list}, /*7716's as 7712*/ + {.cmn = qfx5210_cmn_list, .portly=qfx5210_port_list}, + {.cmn = as7312_cmn_list, .portly=qfx5210_port_list}, + {.cmn = plain_cmn_list, .portly=NULL}, +}; + +static LIST_HEAD(cpld_client_list); +static struct mutex list_lock; +/* Addresses scanned for juniper_i2c_cpld + */ +static const unsigned short normal_i2c[] = { I2C_CLIENT_END }; + +static int get_sfp_spec(int model, u16 *num, u8 *types) +{ + switch (model) { + case AS7712_32X: + case AS7716_32X: + *num = 32; + *types = HAS_QSFP; + break; + case qfx5210_64X: + *num = 64; + *types = HAS_QSFP; + break; + case AS7312_54X: + *num = 54; + *types = HAS_QSFP|HAS_SFP; + default: + *types = 0; + *num = 0; + break; + } + + return 0; +} + +static int get_present_reg(int model, u8 port, u8 *cpld_addr, u8 *reg, u8 *num) +{ + u8 cpld_address[] = CPLD_ADDRS; + + switch (model) { + case AS7312_54X: + if (port < 48) { + *cpld_addr = cpld_address[1 + port/24]; + *reg = 0x09 + (port%24)/8; + *num = 8; + } + else + { + *reg = 0x18; + *num = 4; + *cpld_addr = ( port < 52)? cpld_address[1]: cpld_address[2]; + } + break; + default: + return -EINVAL; + } +} + + +/*Assume the bits for ports are listed in-a-row.*/ +static int get_reg_bit(u8 reg_start, int port, + u8 *reg ,u8 *mask) +{ + *reg = reg_start + ((port)/8); + *mask = 1 << ((port)%8); + + return 0; +} + +static int cpld_write_internal( + struct i2c_client *client, u8 reg, u8 value) +{ + int status = 0, retry = I2C_RW_RETRY_COUNT; + + while (retry) { + status = i2c_smbus_write_byte_data(client, reg, value); + if (unlikely(status < 0)) { + msleep(I2C_RW_RETRY_INTERVAL); + retry--; + continue; + } + + break; + } + + return status; +} + +static int cpld_read_internal(struct i2c_client *client, u8 reg) +{ + int status = 0, retry = I2C_RW_RETRY_COUNT; + + while (retry) { + status = i2c_smbus_read_byte_data(client, reg); + if (unlikely(status < 0)) { + msleep(I2C_RW_RETRY_INTERVAL); + retry--; + continue; + } + + break; + } + + return status; +} + + +/*Turn a numberic array into string with " " between each element. + * e.g., {0x11, 0x33, 0xff, 0xf1} => "11 33 ff f1" + */ +static ssize_t array_stringify(char *buf, u8 *input, size_t size) { + + int i; + char t[MAX_RESP_LENGTH+1]; + + buf[0] = '\0'; + for (i = 0; i < size; i++) { + snprintf(t, MAX_RESP_LENGTH, "%x ", input[i]); + strncat(buf, t, MAX_RESP_LENGTH); + } + + if (strlen(buf) > 0) + buf[strlen(buf)-1] = '\0'; /*Remove tailing blank*/ + + return snprintf(buf, MAX_RESP_LENGTH, "%s\n", buf); +} + +static ssize_t show_presnet_all_distinct(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + struct cpld_data *data = i2c_get_clientdata(client); + u8 i, value, reg; + u8 cpld_addr, num; + u8 _value[8]; + u64 *values = (u64 *)_value; + + values = 0; + mutex_lock(&data->update_lock); + while(i < data->sfp_num) + { + get_present_reg(data->model, i, &cpld_addr, ®, &num); + if(cpld_addr == client->addr) + value = cpld_read_internal(client, reg); + else + value = juniper_i2c_cpld_read(cpld_addr, reg); + + if (unlikely(value < 0)) { + goto exit; + } + + *values |= (value&((1<<(num))-1)) << i; + i += num; + } + mutex_unlock(&data->update_lock); + + *values = cpu_to_le64(*values); + return array_stringify(buf, _value, i); +exit: + mutex_unlock(&data->update_lock); + return value; +} + +static ssize_t show_presnet_all(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + struct cpld_data *data = i2c_get_clientdata(client); + struct cpld_sensor *sensor = to_cpld_sensor(devattr); + u8 i, values[MAX_RESP_LENGTH/8]; + + if (sensor->reg < 0) { + return show_presnet_all_distinct(dev, devattr, buf); + } + + mutex_lock(&data->update_lock); + for (i = 0; i < ((data->sfp_num+7)/8); i++) { + values[i] = cpld_read_internal(client, sensor->reg + i); + if (unlikely(values[i] < 0)) { + goto exit; + } + } + mutex_unlock(&data->update_lock); + return array_stringify(buf, values, i); + +exit: + mutex_unlock(&data->update_lock); + return values[i]; +} + +static ssize_t show_bit(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + int value; + struct i2c_client *client = to_i2c_client(dev); + struct cpld_data *data = i2c_get_clientdata(client); + struct cpld_sensor *sensor = to_cpld_sensor(devattr); + + mutex_lock(&data->update_lock); + value = cpld_read_internal(client, sensor->reg); + value = value & sensor->mask; + if (sensor->invert) + value = !value; + mutex_unlock(&data->update_lock); + + return snprintf(buf, PAGE_SIZE, "%x\n", value); +} + +static ssize_t set_1bit(struct device *dev, struct device_attribute *devattr, + const char *buf, size_t count) +{ + long is_reset; + int value, status; + struct i2c_client *client = to_i2c_client(dev); + struct cpld_data *data = i2c_get_clientdata(client); + struct cpld_sensor *sensor = to_cpld_sensor(devattr); + u8 cpld_bit, reg; + + status = kstrtol(buf, 10, &is_reset); + if (status) { + return status; + } + reg = sensor->reg; + cpld_bit = sensor->mask; + mutex_lock(&data->update_lock); + value = cpld_read_internal(client, reg); + if (unlikely(status < 0)) { + goto exit; + } + + if (sensor->invert) + is_reset = !is_reset; + + if (is_reset) { + value |= cpld_bit; + } + else { + value &= ~cpld_bit; + } + + status = cpld_write_internal(client, reg, value); + if (unlikely(status < 0)) { + goto exit; + } + mutex_unlock(&data->update_lock); + return count; + +exit: + mutex_unlock(&data->update_lock); + return status; +} + +static ssize_t set_byte(struct device *dev, struct device_attribute *da, + const char *buf, size_t count) +{ + return access(dev, da, buf, count); +} + +static ssize_t access(struct device *dev, struct device_attribute *da, + const char *buf, size_t count) +{ + int status; + u32 addr, val; + struct i2c_client *client = to_i2c_client(dev); + struct cpld_data *data = i2c_get_clientdata(client); + + if (sscanf(buf, "0x%x 0x%x", &addr, &val) != 2) { + return -EINVAL; + } + + if (addr > 0xFF || val > 0xFF) { + return -EINVAL; + } + + mutex_lock(&data->update_lock); + status = cpld_write_internal(client, addr, val); + if (unlikely(status < 0)) { + goto exit; + } + mutex_unlock(&data->update_lock); + return count; + +exit: + mutex_unlock(&data->update_lock); + return status; +} + +static void juniper_i2c_cpld_add_client(struct i2c_client *client) +{ + struct cpld_client_node *node = + kzalloc(sizeof(struct cpld_client_node), GFP_KERNEL); + + if (!node) { + dev_dbg(&client->dev, "Can't allocate cpld_client_node (0x%x)\n", + client->addr); + return; + } + node->client = client; + + mutex_lock(&list_lock); + list_add(&node->list, &cpld_client_list); + mutex_unlock(&list_lock); +} + +static void juniper_i2c_cpld_remove_client(struct i2c_client *client) +{ + struct list_head *list_node = NULL; + struct cpld_client_node *cpld_node = NULL; + int found = 0; + + mutex_lock(&list_lock); + + list_for_each(list_node, &cpld_client_list) + { + cpld_node = list_entry(list_node, struct cpld_client_node, list); + + if (cpld_node->client == client) { + found = 1; + break; + } + } + + if (found) { + list_del(list_node); + kfree(cpld_node); + } + + mutex_unlock(&list_lock); +} + +static int cpld_add_attribute(struct cpld_data *data, struct attribute *attr) +{ + int new_max_attrs = ++data->num_attributes + ATTR_ALLOC_SIZE; + void *new_attrs = krealloc(data->group.attrs, + new_max_attrs * sizeof(void *), + GFP_KERNEL); + if (!new_attrs) + return -ENOMEM; + data->group.attrs = new_attrs; + + + data->group.attrs[data->num_attributes-1] = attr; + data->group.attrs[data->num_attributes] = NULL; + + return 0; +} + +static void cpld_dev_attr_init(struct device_attribute *dev_attr, + const char *name, umode_t mode, + show_func show, store_func store) +{ + sysfs_attr_init(&dev_attr->attr); + dev_attr->attr.name = name; + dev_attr->attr.mode = mode; + dev_attr->show = show; + dev_attr->store = store; +} + +static struct cpld_sensor * add_sensor(struct cpld_data *data, + const char *name, + u8 reg, u8 mask, bool invert, + bool update, umode_t mode, + show_func get, store_func set) +{ + struct cpld_sensor *sensor; + struct device_attribute *a; + + sensor = devm_kzalloc(data->dev, sizeof(*sensor), GFP_KERNEL); + if (!sensor) + return NULL; + a = &sensor->attribute; + + snprintf(sensor->name, sizeof(sensor->name), name); + sensor->reg = reg; + sensor->mask = mask; + sensor->update = update; + sensor->invert = invert; + cpld_dev_attr_init(a, sensor->name, + mode, + get, set); + + if (cpld_add_attribute(data, &a->attr)) + return NULL; + + sensor->next = data->sensors; + data->sensors = sensor; + + return sensor; +} + +static int add_attributes_cmn(struct cpld_data *data, struct attrs **cmn) +{ + u8 reg, i ; + bool invert; + struct attrs *a; + struct base_attrs *b; + + if (NULL == cmn) + return -1; + + for (i = 0; cmn[i]; i++) + { + a = cmn[i]; + + reg = a->reg; + invert = a->invert; + + b = a->base; + if (NULL == b) + break; + + if (add_sensor(data, b->name, + reg, 0xff, invert, + true, b->mode, + b->get, b->set) == NULL) + { + return -ENOMEM; + } + } + return 0; +} + +static int add_attributes_portly(struct cpld_data *data, struct attrs **pa) +{ + char name[NAME_SIZE+1]; + int i, j; + u8 reg, mask, invert; + struct attrs *a; + struct base_attrs *b; + + if (NULL == pa) + return -1; + + + for (i = 0; pa[i]; i++) { + a = pa[i]; + + invert = a->invert; + b = a->base; + if (b == NULL) + break; + + for (j = 0; j < data->sfp_num; j++) + { + snprintf(name, NAME_SIZE, "%s_%d", b->name, j+1); + get_reg_bit(a->reg, j, ®, &mask); + + if (add_sensor(data, name, reg, mask, invert, + true, b->mode, b->get, b->set) == NULL) + { + return -ENOMEM; + } + } + } + return 0; +} + +static int add_attributes(struct i2c_client *client, + struct cpld_data *data) +{ + struct model_attrs *m = data->cmn_attr; + + if (m == NULL) + return -EINVAL; + + /* Common attributes.*/ + add_attributes_cmn(data, m->cmn); + + /* Port-wise attributes.*/ + add_attributes_portly(data, m->portly); + + return 0; +} + +static int juniper_i2c_cpld_probe(struct i2c_client *client, + const struct i2c_device_id *dev_id) +{ + int status; + struct cpld_data *data = NULL; + struct device *dev = &client->dev; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA)) { + dev_dbg(dev, "i2c_check_functionality failed (0x%x)\n", client->addr); + return -EIO; + } + + data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); + if (!data) { + return -ENOMEM; + } + + data->model = dev_id->driver_data; + data->cmn_attr = &models_attr[data->model]; + get_sfp_spec(data->model, &data->sfp_num, &data->sfp_types); + + i2c_set_clientdata(client, data); + mutex_init(&data->update_lock); + data->dev = dev; + dev_info(dev, "chip found\n"); + + status = add_attributes(client, data); + if (status) + goto out_kfree; + + /* + * If there are no attributes, something is wrong. + * Bail out instead of trying to register nothing. + */ + if (!data->num_attributes) { + dev_err(dev, "No attributes found\n"); + status = -ENODEV; + goto out_kfree; + } + + /* Register sysfs hooks */ + status = sysfs_create_group(&client->dev.kobj, &data->group); + if (status) { + goto out_kfree; + } + + data->hwmon_dev = hwmon_device_register(&client->dev); + if (IS_ERR(data->hwmon_dev)) { + status = PTR_ERR(data->hwmon_dev); + goto exit_remove; + } + + juniper_i2c_cpld_add_client(client); + dev_info(dev, "%s: cpld '%s'\n", + dev_name(data->hwmon_dev), client->name); + + return 0; +exit_remove: + sysfs_remove_group(&client->dev.kobj, &data->group); +out_kfree: + kfree(data->group.attrs); + return status; + +} + +static int juniper_i2c_cpld_remove(struct i2c_client *client) +{ + struct cpld_data *data = i2c_get_clientdata(client); + + hwmon_device_unregister(data->hwmon_dev); + sysfs_remove_group(&client->dev.kobj, &data->group); + kfree(data->group.attrs); + juniper_i2c_cpld_remove_client(client); + return 0; +} + +int juniper_i2c_cpld_read(u8 cpld_addr, u8 reg) +{ + struct list_head *list_node = NULL; + struct cpld_client_node *cpld_node = NULL; + int ret = -EPERM; + + mutex_lock(&list_lock); + + list_for_each(list_node, &cpld_client_list) + { + cpld_node = list_entry(list_node, struct cpld_client_node, list); + + if (cpld_node->client->addr == cpld_addr) { + ret = i2c_smbus_read_byte_data(cpld_node->client, reg); + break; + } + } + + mutex_unlock(&list_lock); + + return ret; +} +EXPORT_SYMBOL(juniper_i2c_cpld_read); + +int juniper_i2c_cpld_write(unsigned short cpld_addr, u8 reg, u8 value) +{ + struct list_head *list_node = NULL; + struct cpld_client_node *cpld_node = NULL; + int ret = -EIO; + + mutex_lock(&list_lock); + + list_for_each(list_node, &cpld_client_list) + { + cpld_node = list_entry(list_node, struct cpld_client_node, list); + + if (cpld_node->client->addr == cpld_addr) { + ret = i2c_smbus_write_byte_data(cpld_node->client, reg, value); + break; + } + } + + mutex_unlock(&list_lock); + + return ret; +} +EXPORT_SYMBOL(juniper_i2c_cpld_write); + + +static const struct i2c_device_id juniper_i2c_cpld_id[] = { + { "cpld_as7712", AS7712_32X}, + { "cpld_as7716", AS7716_32X}, + { "cpld_qfx5210", qfx5210_64X}, + { "cpld_as7312", AS7312_54X}, + { "cpld_plain", PLAIN_CPLD}, + { }, +}; +MODULE_DEVICE_TABLE(i2c, juniper_i2c_cpld_id); + +static struct i2c_driver juniper_i2c_cpld_driver = { + .class = I2C_CLASS_HWMON, + .driver = { + .name = "juniper_i2c_cpld", + }, + .probe = juniper_i2c_cpld_probe, + .remove = juniper_i2c_cpld_remove, + .id_table = juniper_i2c_cpld_id, + .address_list = normal_i2c, +}; + + +static int __init juniper_i2c_cpld_init(void) +{ + mutex_init(&list_lock); + return i2c_add_driver(&juniper_i2c_cpld_driver); +} + +static void __exit juniper_i2c_cpld_exit(void) +{ + i2c_del_driver(&juniper_i2c_cpld_driver); +} + +module_init(juniper_i2c_cpld_init); +module_exit(juniper_i2c_cpld_exit); + +MODULE_AUTHOR("Brandon Chuang "); +MODULE_DESCRIPTION("juniper_i2c_cpld driver"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-juniper/common/modules/ym2651y.c b/platform/broadcom/sonic-platform-modules-juniper/common/modules/ym2651y.c new file mode 100644 index 0000000000..3ade568410 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/common/modules/ym2651y.c @@ -0,0 +1,622 @@ +/* + * An hwmon driver for the 3Y Power YM-2651Y Power Module + * + * Tested and validated on Juniper QFX5210 + * Ciju Rajan K + * + * Copyright (C) 2014 Accton Technology Corporation. + * Brandon Chuang + * + * Based on ad7414.c + * Copyright 2006 Stefan Roese , DENX Software Engineering + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MAX_FAN_DUTY_CYCLE 100 + +/* Addresses scanned + */ +static const unsigned short normal_i2c[] = { 0x58, 0x5b, I2C_CLIENT_END }; + +enum chips { + YM2651, + YM2401, + YM2851, +}; + +/* Each client has this additional data + */ +struct ym2651y_data { + struct device *hwmon_dev; + struct mutex update_lock; + char valid; /* !=0 if registers are valid */ + unsigned long last_updated; /* In jiffies */ + u8 capability; /* Register value */ + u16 status_word; /* Register value */ + u8 fan_fault; /* Register value */ + u8 over_temp; /* Register value */ + u16 v_out; /* Register value */ + u16 i_out; /* Register value */ + u16 p_out; /* Register value */ + u16 temp; /* Register value */ + u16 fan_speed; /* Register value */ + u16 fan_duty_cycle[2]; /* Register value */ + u8 fan_dir[4]; /* Register value */ + u8 pmbus_revision; /* Register value */ + u8 mfr_id[10]; /* Register value */ + u8 mfr_model[10]; /* Register value */ + u8 mfr_revsion[3]; /* Register value */ + u16 mfr_vin_min; /* Register value */ + u16 mfr_vin_max; /* Register value */ + u16 mfr_iin_max; /* Register value */ + u16 mfr_iout_max; /* Register value */ + u16 mfr_pin_max; /* Register value */ + u16 mfr_pout_max; /* Register value */ + u16 mfr_vout_min; /* Register value */ + u16 mfr_vout_max; /* Register value */ +}; + +static ssize_t show_byte(struct device *dev, struct device_attribute *da, + char *buf); +static ssize_t show_word(struct device *dev, struct device_attribute *da, + char *buf); +static ssize_t show_linear(struct device *dev, struct device_attribute *da, + char *buf); +static ssize_t show_fan_fault(struct device *dev, struct device_attribute *da, + char *buf); +static ssize_t show_over_temp(struct device *dev, struct device_attribute *da, + char *buf); +static ssize_t show_ascii(struct device *dev, struct device_attribute *da, + char *buf); +static struct ym2651y_data *ym2651y_update_device(struct device *dev); +static ssize_t set_fan_duty_cycle(struct device *dev, struct device_attribute *da, + const char *buf, size_t count); +static int ym2651y_write_word(struct i2c_client *client, u8 reg, u16 value); + +enum ym2651y_sysfs_attributes { + PSU_POWER_ON = 0, + PSU_TEMP_FAULT, + PSU_POWER_GOOD, + PSU_FAN1_FAULT, + PSU_FAN_DIRECTION, + PSU_OVER_TEMP, + PSU_V_OUT, + PSU_I_OUT, + PSU_P_OUT, + PSU_P_OUT_UV, /*In Unit of microVolt, instead of mini.*/ + PSU_TEMP1_INPUT, + PSU_FAN1_SPEED, + PSU_FAN1_DUTY_CYCLE, + PSU_PMBUS_REVISION, + PSU_MFR_ID, + PSU_MFR_MODEL, + PSU_MFR_REVISION, + PSU_MFR_VIN_MIN, + PSU_MFR_VIN_MAX, + PSU_MFR_VOUT_MIN, + PSU_MFR_VOUT_MAX, + PSU_MFR_IIN_MAX, + PSU_MFR_IOUT_MAX, + PSU_MFR_PIN_MAX, + PSU_MFR_POUT_MAX +}; + +/* sysfs attributes for hwmon + */ +static SENSOR_DEVICE_ATTR(psu_power_on, S_IRUGO, show_word, NULL, PSU_POWER_ON); +static SENSOR_DEVICE_ATTR(psu_temp_fault, S_IRUGO, show_word, NULL, PSU_TEMP_FAULT); +static SENSOR_DEVICE_ATTR(psu_power_good, S_IRUGO, show_word, NULL, PSU_POWER_GOOD); +static SENSOR_DEVICE_ATTR(psu_fan1_fault, S_IRUGO, show_fan_fault, NULL, PSU_FAN1_FAULT); +static SENSOR_DEVICE_ATTR(psu_over_temp, S_IRUGO, show_over_temp, NULL, PSU_OVER_TEMP); +static SENSOR_DEVICE_ATTR(psu_v_out, S_IRUGO, show_linear, NULL, PSU_V_OUT); +static SENSOR_DEVICE_ATTR(psu_i_out, S_IRUGO, show_linear, NULL, PSU_I_OUT); +static SENSOR_DEVICE_ATTR(psu_p_out, S_IRUGO, show_linear, NULL, PSU_P_OUT); +static SENSOR_DEVICE_ATTR(psu_temp1_input, S_IRUGO, show_linear, NULL, PSU_TEMP1_INPUT); +static SENSOR_DEVICE_ATTR(psu_fan1_speed_rpm, S_IRUGO, show_linear, NULL, PSU_FAN1_SPEED); +static SENSOR_DEVICE_ATTR(psu_fan1_duty_cycle_percentage, S_IWUSR | S_IRUGO, show_linear, set_fan_duty_cycle, PSU_FAN1_DUTY_CYCLE); +static SENSOR_DEVICE_ATTR(psu_fan_dir, S_IRUGO, show_ascii, NULL, PSU_FAN_DIRECTION); +static SENSOR_DEVICE_ATTR(psu_pmbus_revision, S_IRUGO, show_byte, NULL, PSU_PMBUS_REVISION); +static SENSOR_DEVICE_ATTR(psu_mfr_id, S_IRUGO, show_ascii, NULL, PSU_MFR_ID); +static SENSOR_DEVICE_ATTR(psu_mfr_model, S_IRUGO, show_ascii, NULL, PSU_MFR_MODEL); +static SENSOR_DEVICE_ATTR(psu_mfr_revision, S_IRUGO, show_ascii, NULL, PSU_MFR_REVISION); +static SENSOR_DEVICE_ATTR(psu_mfr_vin_min, S_IRUGO, show_linear, NULL, PSU_MFR_VIN_MIN); +static SENSOR_DEVICE_ATTR(psu_mfr_vin_max, S_IRUGO, show_linear, NULL, PSU_MFR_VIN_MAX); +static SENSOR_DEVICE_ATTR(psu_mfr_vout_min, S_IRUGO, show_linear, NULL, PSU_MFR_VOUT_MIN); +static SENSOR_DEVICE_ATTR(psu_mfr_vout_max, S_IRUGO, show_linear, NULL, PSU_MFR_VOUT_MAX); +static SENSOR_DEVICE_ATTR(psu_mfr_iin_max, S_IRUGO, show_linear, NULL, PSU_MFR_IIN_MAX); +static SENSOR_DEVICE_ATTR(psu_mfr_iout_max, S_IRUGO, show_linear, NULL, PSU_MFR_IOUT_MAX); +static SENSOR_DEVICE_ATTR(psu_mfr_pin_max, S_IRUGO, show_linear, NULL, PSU_MFR_PIN_MAX); +static SENSOR_DEVICE_ATTR(psu_mfr_pout_max, S_IRUGO, show_linear, NULL, PSU_MFR_POUT_MAX); + +/*Duplicate nodes for lm-sensors.*/ +static SENSOR_DEVICE_ATTR(in3_input, S_IRUGO, show_linear, NULL, PSU_V_OUT); +static SENSOR_DEVICE_ATTR(curr2_input, S_IRUGO, show_linear, NULL, PSU_I_OUT); +static SENSOR_DEVICE_ATTR(power2_input, S_IRUGO, show_linear, NULL, PSU_P_OUT_UV); +static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, show_linear, NULL, PSU_TEMP1_INPUT); +static SENSOR_DEVICE_ATTR(fan1_input, S_IRUGO, show_linear, NULL, PSU_FAN1_SPEED); +static SENSOR_DEVICE_ATTR(temp1_fault, S_IRUGO, show_word, NULL, PSU_TEMP_FAULT); + +static struct attribute *ym2651y_attributes[] = { + &sensor_dev_attr_psu_power_on.dev_attr.attr, + &sensor_dev_attr_psu_temp_fault.dev_attr.attr, + &sensor_dev_attr_psu_power_good.dev_attr.attr, + &sensor_dev_attr_psu_fan1_fault.dev_attr.attr, + &sensor_dev_attr_psu_over_temp.dev_attr.attr, + &sensor_dev_attr_psu_v_out.dev_attr.attr, + &sensor_dev_attr_psu_i_out.dev_attr.attr, + &sensor_dev_attr_psu_p_out.dev_attr.attr, + &sensor_dev_attr_psu_temp1_input.dev_attr.attr, + &sensor_dev_attr_psu_fan1_speed_rpm.dev_attr.attr, + &sensor_dev_attr_psu_fan1_duty_cycle_percentage.dev_attr.attr, + &sensor_dev_attr_psu_fan_dir.dev_attr.attr, + &sensor_dev_attr_psu_pmbus_revision.dev_attr.attr, + &sensor_dev_attr_psu_mfr_id.dev_attr.attr, + &sensor_dev_attr_psu_mfr_model.dev_attr.attr, + &sensor_dev_attr_psu_mfr_revision.dev_attr.attr, + &sensor_dev_attr_psu_mfr_vin_min.dev_attr.attr, + &sensor_dev_attr_psu_mfr_vin_max.dev_attr.attr, + &sensor_dev_attr_psu_mfr_pout_max.dev_attr.attr, + &sensor_dev_attr_psu_mfr_iin_max.dev_attr.attr, + &sensor_dev_attr_psu_mfr_pin_max.dev_attr.attr, + &sensor_dev_attr_psu_mfr_vout_min.dev_attr.attr, + &sensor_dev_attr_psu_mfr_vout_max.dev_attr.attr, + &sensor_dev_attr_psu_mfr_iout_max.dev_attr.attr, + /*Duplicate nodes for lm-sensors.*/ + &sensor_dev_attr_curr2_input.dev_attr.attr, + &sensor_dev_attr_in3_input.dev_attr.attr, + &sensor_dev_attr_power2_input.dev_attr.attr, + &sensor_dev_attr_temp1_input.dev_attr.attr, + &sensor_dev_attr_fan1_input.dev_attr.attr, + &sensor_dev_attr_temp1_fault.dev_attr.attr, + NULL +}; + +static ssize_t show_byte(struct device *dev, struct device_attribute *da, + char *buf) +{ + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct ym2651y_data *data = ym2651y_update_device(dev); + + return (attr->index == PSU_PMBUS_REVISION) ? sprintf(buf, "%d\n", data->pmbus_revision) : + sprintf(buf, "0\n"); +} + +static ssize_t show_word(struct device *dev, struct device_attribute *da, + char *buf) +{ + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct ym2651y_data *data = ym2651y_update_device(dev); + u16 status = 0; + + switch (attr->index) { + case PSU_POWER_ON: /* psu_power_on, low byte bit 6 of status_word, 0=>ON, 1=>OFF */ + status = (data->status_word & 0x40) ? 0 : 1; + break; + case PSU_TEMP_FAULT: /* psu_temp_fault, low byte bit 2 of status_word, 0=>Normal, 1=>temp fault */ + status = (data->status_word & 0x4) >> 2; + break; + case PSU_POWER_GOOD: /* psu_power_good, high byte bit 3 of status_word, 0=>OK, 1=>FAIL */ + status = (data->status_word & 0x800) ? 0 : 1; + break; + } + + return sprintf(buf, "%d\n", status); +} + +static int two_complement_to_int(u16 data, u8 valid_bit, int mask) +{ + u16 valid_data = data & mask; + bool is_negative = valid_data >> (valid_bit - 1); + + return is_negative ? (-(((~valid_data) & mask) + 1)) : valid_data; +} + +static ssize_t set_fan_duty_cycle(struct device *dev, struct device_attribute *da, + const char *buf, size_t count) +{ + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct i2c_client *client = to_i2c_client(dev); + struct ym2651y_data *data = i2c_get_clientdata(client); + int nr = (attr->index == PSU_FAN1_DUTY_CYCLE) ? 0 : 1; + long speed; + int error; + + error = kstrtol(buf, 10, &speed); + if (error) + return error; + + if (speed < 0 || speed > MAX_FAN_DUTY_CYCLE) + return -EINVAL; + + mutex_lock(&data->update_lock); + data->fan_duty_cycle[nr] = speed; + ym2651y_write_word(client, 0x3B + nr, data->fan_duty_cycle[nr]); + mutex_unlock(&data->update_lock); + + return count; +} + +static ssize_t show_linear(struct device *dev, struct device_attribute *da, + char *buf) +{ + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct ym2651y_data *data = ym2651y_update_device(dev); + + u16 value = 0; + int exponent, mantissa; + int multiplier = 1000; + + switch (attr->index) { + case PSU_V_OUT: + value = data->v_out; + break; + case PSU_I_OUT: + value = data->i_out; + break; + case PSU_P_OUT_UV: + multiplier = 1000000; /*For lm-sensors, unit is micro-Volt.*/ + /*Passing through*/ + case PSU_P_OUT: + value = data->p_out; + break; + case PSU_TEMP1_INPUT: + value = data->temp; + break; + case PSU_FAN1_SPEED: + value = data->fan_speed; + multiplier = 1; + break; + case PSU_FAN1_DUTY_CYCLE: + value = data->fan_duty_cycle[0]; + multiplier = 1; + break; + case PSU_MFR_VIN_MIN: + value = data->mfr_vin_min; + break; + case PSU_MFR_VIN_MAX: + value = data->mfr_vin_max; + break; + case PSU_MFR_VOUT_MIN: + value = data->mfr_vout_min; + break; + case PSU_MFR_VOUT_MAX: + value = data->mfr_vout_max; + break; + case PSU_MFR_PIN_MAX: + value = data->mfr_pin_max; + break; + case PSU_MFR_POUT_MAX: + value = data->mfr_pout_max; + break; + case PSU_MFR_IOUT_MAX: + value = data->mfr_iout_max; + break; + case PSU_MFR_IIN_MAX: + value = data->mfr_iin_max; + break; + } + + exponent = two_complement_to_int(value >> 11, 5, 0x1f); + mantissa = two_complement_to_int(value & 0x7ff, 11, 0x7ff); + return (exponent >= 0) ? sprintf(buf, "%d\n", (mantissa << exponent) * multiplier) : + sprintf(buf, "%d\n", (mantissa * multiplier) / (1 << -exponent)); +} + +static ssize_t show_fan_fault(struct device *dev, struct device_attribute *da, + char *buf) +{ + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct ym2651y_data *data = ym2651y_update_device(dev); + + u8 shift = (attr->index == PSU_FAN1_FAULT) ? 7 : 6; + + return sprintf(buf, "%d\n", data->fan_fault >> shift); +} + +static ssize_t show_over_temp(struct device *dev, struct device_attribute *da, + char *buf) +{ + struct ym2651y_data *data = ym2651y_update_device(dev); + + return sprintf(buf, "%d\n", data->over_temp >> 7); +} + +static ssize_t show_ascii(struct device *dev, struct device_attribute *da, + char *buf) +{ + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct ym2651y_data *data = ym2651y_update_device(dev); + u8 *ptr = NULL; + + switch (attr->index) { + case PSU_FAN_DIRECTION: /* psu_fan_dir */ + ptr = data->fan_dir; + break; + case PSU_MFR_ID: /* psu_mfr_id */ + ptr = data->mfr_id; + break; + case PSU_MFR_MODEL: /* psu_mfr_model */ + ptr = data->mfr_model; + break; + case PSU_MFR_REVISION: /* psu_mfr_revision */ + ptr = data->mfr_revsion; + break; + default: + return 0; + } + + return sprintf(buf, "%s\n", ptr); +} + +static const struct attribute_group ym2651y_group = { + .attrs = ym2651y_attributes, +}; + +static int ym2651y_probe(struct i2c_client *client, + const struct i2c_device_id *dev_id) +{ + struct ym2651y_data *data; + int status; + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_BYTE_DATA | + I2C_FUNC_SMBUS_WORD_DATA | + I2C_FUNC_SMBUS_I2C_BLOCK)) { + status = -EIO; + goto exit; + } + + data = kzalloc(sizeof(struct ym2651y_data), GFP_KERNEL); + if (!data) { + status = -ENOMEM; + goto exit; + } + + i2c_set_clientdata(client, data); + mutex_init(&data->update_lock); + + dev_info(&client->dev, "chip found\n"); + + /* Register sysfs hooks */ + status = sysfs_create_group(&client->dev.kobj, &ym2651y_group); + if (status) { + goto exit_free; + } + + data->hwmon_dev = hwmon_device_register(&client->dev); + if (IS_ERR(data->hwmon_dev)) { + status = PTR_ERR(data->hwmon_dev); + goto exit_remove; + } + + dev_info(&client->dev, "%s: psu '%s'\n", + dev_name(data->hwmon_dev), client->name); + + return 0; + +exit_remove: + sysfs_remove_group(&client->dev.kobj, &ym2651y_group); +exit_free: + kfree(data); +exit: + + return status; +} + +static int ym2651y_remove(struct i2c_client *client) +{ + struct ym2651y_data *data = i2c_get_clientdata(client); + + hwmon_device_unregister(data->hwmon_dev); + sysfs_remove_group(&client->dev.kobj, &ym2651y_group); + kfree(data); + + return 0; +} + +static const struct i2c_device_id ym2651y_id[] = { + { "ym2651", YM2651 }, + { "ym2401", YM2401 }, + { "ym2851", YM2851 }, + {} +}; +MODULE_DEVICE_TABLE(i2c, ym2651y_id); + +static struct i2c_driver ym2651y_driver = { + .class = I2C_CLASS_HWMON, + .driver = { + .name = "ym2651", + }, + .probe = ym2651y_probe, + .remove = ym2651y_remove, + .id_table = ym2651y_id, + .address_list = normal_i2c, +}; + +static int ym2651y_read_byte(struct i2c_client *client, u8 reg) +{ + return i2c_smbus_read_byte_data(client, reg); +} + +static int ym2651y_read_word(struct i2c_client *client, u8 reg) +{ + return i2c_smbus_read_word_data(client, reg); +} + +static int ym2651y_write_word(struct i2c_client *client, u8 reg, u16 value) +{ + return i2c_smbus_write_word_data(client, reg, value); +} + +static int ym2651y_read_block(struct i2c_client *client, u8 command, u8 *data, + int data_len) +{ + int result = i2c_smbus_read_i2c_block_data(client, command, data_len, data); + + if (unlikely(result < 0)) + goto abort; + if (unlikely(result != data_len)) { + result = -EIO; + goto abort; + } + + result = 0; + +abort: + return result; +} + +struct reg_data_byte { + u8 reg; + u8 *value; +}; + +struct reg_data_word { + u8 reg; + u16 *value; +}; + +static struct ym2651y_data *ym2651y_update_device(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct ym2651y_data *data = i2c_get_clientdata(client); + + mutex_lock(&data->update_lock); + + if (time_after(jiffies, data->last_updated + HZ + HZ / 2) + || !data->valid) { + int i, status; + u8 command; + u8 fan_dir[5] = {0}; + struct reg_data_byte regs_byte[] = { {0x19, &data->capability}, + {0x7d, &data->over_temp}, + {0x81, &data->fan_fault}, + {0x98, &data->pmbus_revision} + }; + struct reg_data_word regs_word[] = { {0x79, &data->status_word}, + {0x8b, &data->v_out}, + {0x8c, &data->i_out}, + {0x96, &data->p_out}, + {0x8d, &data->temp}, + {0x3b, &(data->fan_duty_cycle[0])}, + {0x3c, &(data->fan_duty_cycle[1])}, + {0x90, &data->fan_speed}, + {0xa0, &data->mfr_vin_min}, + {0xa1, &data->mfr_vin_max}, + {0xa2, &data->mfr_iin_max}, + {0xa3, &data->mfr_pin_max}, + {0xa4, &data->mfr_vout_min}, + {0xa5, &data->mfr_vout_max}, + {0xa6, &data->mfr_iout_max}, + {0xa7, &data->mfr_pout_max} + }; + + dev_dbg(&client->dev, "Starting ym2651 update\n"); + + /* Read byte data */ + for (i = 0; i < ARRAY_SIZE(regs_byte); i++) { + status = ym2651y_read_byte(client, regs_byte[i].reg); + + if (status < 0) + { + dev_dbg(&client->dev, "reg %d, err %d\n", + regs_byte[i].reg, status); + *(regs_byte[i].value) = 0; + } + else { + *(regs_byte[i].value) = status; + } + } + + /* Read word data */ + for (i = 0; i < ARRAY_SIZE(regs_word); i++) { + status = ym2651y_read_word(client, regs_word[i].reg); + + if (status < 0) + { + dev_dbg(&client->dev, "reg %d, err %d\n", + regs_word[i].reg, status); + *(regs_word[i].value) = 0; + } + else { + *(regs_word[i].value) = status; + } + } + + /* Read fan_direction */ + command = 0xC3; + status = ym2651y_read_block(client, command, fan_dir, ARRAY_SIZE(fan_dir)-1); + + if (status < 0) { + dev_dbg(&client->dev, "reg %d, err %d\n", command, status); + } + + strncpy(data->fan_dir, fan_dir+1, ARRAY_SIZE(data->fan_dir)-1); + data->fan_dir[ARRAY_SIZE(data->fan_dir)-1] = '\0'; + + /* Read mfr_id */ + command = 0x99; + status = ym2651y_read_block(client, command, data->mfr_id, + ARRAY_SIZE(data->mfr_id)-1); + data->mfr_id[ARRAY_SIZE(data->mfr_id)-1] = '\0'; + + if (status < 0) + dev_dbg(&client->dev, "reg %d, err %d\n", command, status); + + /* Read mfr_model */ + command = 0x9a; + status = ym2651y_read_block(client, command, data->mfr_model, + ARRAY_SIZE(data->mfr_model)-1); + data->mfr_model[ARRAY_SIZE(data->mfr_model)-1] = '\0'; + + if (status < 0) + dev_dbg(&client->dev, "reg %d, err %d\n", command, status); + + /* Read mfr_revsion */ + command = 0x9b; + status = ym2651y_read_block(client, command, data->mfr_revsion, + ARRAY_SIZE(data->mfr_revsion)-1); + data->mfr_revsion[ARRAY_SIZE(data->mfr_revsion)-1] = '\0'; + + if (status < 0) + dev_dbg(&client->dev, "reg %d, err %d\n", command, status); + + data->last_updated = jiffies; + data->valid = 1; + } + + mutex_unlock(&data->update_lock); + + return data; +} + +module_i2c_driver(ym2651y_driver); + +MODULE_AUTHOR("Brandon Chuang "); +MODULE_DESCRIPTION("3Y Power YM-2651Y driver"); +MODULE_LICENSE("GPL"); + + diff --git a/platform/broadcom/sonic-platform-modules-juniper/debian/changelog b/platform/broadcom/sonic-platform-modules-juniper/debian/changelog new file mode 100755 index 0000000000..bc640fa563 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/debian/changelog @@ -0,0 +1,6 @@ +sonic-juniper-platform-modules (1.1) unstable; urgency=low + + * Initial release: Add support for QFX5210. + -- Juniper Networks + Ciju Rajan K Tue, 30 July 2019 + diff --git a/platform/broadcom/sonic-platform-modules-juniper/debian/compat b/platform/broadcom/sonic-platform-modules-juniper/debian/compat new file mode 100644 index 0000000000..ec635144f6 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/debian/compat @@ -0,0 +1 @@ +9 diff --git a/platform/broadcom/sonic-platform-modules-juniper/debian/control b/platform/broadcom/sonic-platform-modules-juniper/debian/control new file mode 100755 index 0000000000..c9310069f9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/debian/control @@ -0,0 +1,11 @@ +Source: sonic-juniper-platform-modules +Section: main +Priority: extra +Maintainer: Juniper Networks +Build-Depends: debhelper (>= 9), bzip2 +Standards-Version: 3.9.3 + +Package: sonic-platform-juniper-qfx5210 +Architecture: amd64 +Description: kernel modules for platform devices such as fan, led, sfp + diff --git a/platform/broadcom/sonic-platform-modules-juniper/debian/files b/platform/broadcom/sonic-platform-modules-juniper/debian/files new file mode 100644 index 0000000000..24ef0ffef2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/debian/files @@ -0,0 +1,2 @@ +sonic-juniper-platform-modules_1.1_amd64.buildinfo main extra +sonic-platform-juniper-qfx5210_1.1_amd64.deb main extra diff --git a/platform/broadcom/sonic-platform-modules-juniper/debian/rules b/platform/broadcom/sonic-platform-modules-juniper/debian/rules new file mode 100755 index 0000000000..2be5594acd --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/debian/rules @@ -0,0 +1,86 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +include /usr/share/dpkg/pkg-info.mk + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +export INSTALL_MOD_DIR:=extra + +PYTHON ?= python2 + +PACKAGE_PRE_NAME := sonic-platform-juniper +KVERSION ?= $(shell uname -r) +KERNEL_SRC := /lib/modules/$(KVERSION) +MOD_SRC_DIR:= $(shell pwd) +MODULE_DIRS:= qfx5210 +MODULE_DIR := modules +UTILS_DIR := utils +SERVICE_DIR := service +PLATFORM_DIR := sonic_platform +CONF_DIR := conf + +%: + dh $@ --with systemd,python2,python3 --buildsystem=pybuild + +clean: + dh_testdir + dh_testroot + dh_clean + +build: + #make modules -C $(KERNEL_SRC)/build M=$(MODULE_SRC) + (for mod in $(MODULE_DIRS); do \ + make modules -C $(KERNEL_SRC)/build M=$(MOD_SRC_DIR)/$${mod}/modules || exit 1; \ + $(PYTHON) $${mod}/setup.py build; \ + done) + +binary: binary-arch binary-indep + # Nothing to do + +binary-arch: + # Nothing to do + +#install: build + #dh_testdir + #dh_testroot + #dh_clean -k + #dh_installdirs + +binary-indep: + dh_testdir + dh_installdirs + + # Custom package commands + (for mod in $(MODULE_DIRS); do \ + dh_installdirs -p$(PACKAGE_PRE_NAME)-$${mod} /$(KERNEL_SRC)/$(INSTALL_MOD_DIR); \ + dh_installdirs -p$(PACKAGE_PRE_NAME)-$${mod} /usr/local/bin; \ + dh_installdirs -p$(PACKAGE_PRE_NAME)-$${mod} /lib/systemd/system; \ + cp $(MOD_SRC_DIR)/$${mod}/$(MODULE_DIR)/*.ko debian/$(PACKAGE_PRE_NAME)-$${mod}/$(KERNEL_SRC)/$(INSTALL_MOD_DIR); \ + cp $(MOD_SRC_DIR)/$${mod}/$(UTILS_DIR)/* debian/$(PACKAGE_PRE_NAME)-$${mod}/usr/local/bin/; \ + cp $(MOD_SRC_DIR)/$${mod}/$(SERVICE_DIR)/*.service debian/$(PACKAGE_PRE_NAME)-$${mod}/lib/systemd/system/; \ + $(PYTHON) $${mod}/setup.py install --root=$(MOD_SRC_DIR)/debian/$(PACKAGE_PRE_NAME)-$${mod} --install-layout=deb; \ + done) + # Resuming debhelper scripts + dh_testroot + dh_install + dh_installchangelogs + dh_installdocs + dh_systemd_enable + dh_installinit + dh_systemd_start + dh_link + dh_fixperms + dh_compress + dh_strip + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb +.PHONY: build binary binary-arch binary-indep clean diff --git a/platform/broadcom/sonic-platform-modules-juniper/debian/sonic-platform-juniper-qfx5210.install b/platform/broadcom/sonic-platform-modules-juniper/debian/sonic-platform-juniper-qfx5210.install new file mode 100644 index 0000000000..db8c036fdd --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/debian/sonic-platform-juniper-qfx5210.install @@ -0,0 +1,4 @@ +qfx5210/utils/juniper_qfx5210_util.py usr/local/bin +qfx5210/utils/juniper_qfx5210_monitor.py usr/local/bin +qfx5210/utils/platform_poweroff usr/local/bin +qfx5210/service/qfx5210-platform-init.service etc/systemd/system diff --git a/platform/broadcom/sonic-platform-modules-juniper/debian/sonic-platform-juniper-qfx5210.postinst b/platform/broadcom/sonic-platform-modules-juniper/debian/sonic-platform-juniper-qfx5210.postinst new file mode 100644 index 0000000000..1b00ceb568 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/debian/sonic-platform-juniper-qfx5210.postinst @@ -0,0 +1,2 @@ +systemctl enable qfx5210-platform-init.service +systemctl start qfx5210-platform-init.service diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/Makefile b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/Makefile new file mode 100644 index 0000000000..85f96f1dd8 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/Makefile @@ -0,0 +1,2 @@ +obj-m:=x86-64-juniper-qfx5210-64x-fan.o x86-64-juniper-qfx5210-64x-sfp.o x86-64-juniper-qfx5210-64x-leds.o \ + x86-64-juniper-qfx5210-64x-psu.o juniper_i2c_cpld.o ym2651y.o diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/juniper_i2c_cpld.c b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/juniper_i2c_cpld.c new file mode 120000 index 0000000000..843ce05a43 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/juniper_i2c_cpld.c @@ -0,0 +1 @@ +../../common/modules/juniper_i2c_cpld.c \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-fan.c b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-fan.c new file mode 100644 index 0000000000..3e9b67a5da --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-fan.c @@ -0,0 +1,470 @@ +/* + * A hwmon driver for the juniper qfx5210-64x fan + * + * Modified and tested to work on Juniper QFX5210 + * Ciju Rajan K + * + * Copyright (C) 2014 juniper Technology Corporation. + * Brandon Chuang + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRVNAME "qfx5210_64x_fan" + +static struct qfx5210_64x_fan_data *qfx5210_64x_fan_update_device(struct device *dev); +static ssize_t fan_show_value(struct device *dev, struct device_attribute *da, char *buf); +static ssize_t set_duty_cycle(struct device *dev, struct device_attribute *da, + const char *buf, size_t count); + +/* fan related data, the index should match sysfs_fan_attributes + */ +static const u8 fan_reg[] = { + 0x80, /* fan 1-4 present status */ + 0x81, /* fan 1-4 direction(0:F2B 1:B2F) */ + 0x87, /* fan PWM(for all fan) */ + 0x90, /* front fan 1 speed(rpm) */ + 0x91, /* front fan 2 speed(rpm) */ + 0x92, /* front fan 3 speed(rpm) */ + 0x93, /* front fan 4 speed(rpm) */ + 0x98, /* rear fan 1 speed(rpm) */ + 0x99, /* rear fan 2 speed(rpm) */ + 0x9A, /* rear fan 3 speed(rpm) */ + 0x9B, /* rear fan 4 speed(rpm) */ +}; + +/* Each client has this additional data */ +struct qfx5210_64x_fan_data { + struct device *hwmon_dev; + struct mutex update_lock; + char valid; /* != 0 if registers are valid */ + unsigned long last_updated; /* In jiffies */ + u8 reg_val[ARRAY_SIZE(fan_reg)]; /* Register value */ +}; + +enum fan_id { + FAN1_ID, + FAN2_ID, + FAN3_ID, + FAN4_ID +}; + +enum sysfs_fan_attributes { + FAN_PRESENT_REG, + FAN_DIRECTION_REG, + FAN_DUTY_CYCLE_PERCENTAGE, /* Only one CPLD register to control duty cycle for all fans */ + FAN1_FRONT_SPEED_RPM, + FAN2_FRONT_SPEED_RPM, + FAN3_FRONT_SPEED_RPM, + FAN4_FRONT_SPEED_RPM, + FAN1_REAR_SPEED_RPM, + FAN2_REAR_SPEED_RPM, + FAN3_REAR_SPEED_RPM, + FAN4_REAR_SPEED_RPM, + FAN1_DIRECTION, + FAN2_DIRECTION, + FAN3_DIRECTION, + FAN4_DIRECTION, + FAN1_PRESENT, + FAN2_PRESENT, + FAN3_PRESENT, + FAN4_PRESENT, + FAN1_FAULT, + FAN2_FAULT, + FAN3_FAULT, + FAN4_FAULT +}; + +/* Define attributes + */ +#define DECLARE_FAN_FAULT_SENSOR_DEV_ATTR(index, index2) \ + static SENSOR_DEVICE_ATTR(fan##index##_fault, S_IRUGO, fan_show_value, NULL, FAN##index##_FAULT);\ + static SENSOR_DEVICE_ATTR(fan##index2##_fault, S_IRUGO, fan_show_value, NULL, FAN##index##_FAULT) +#define DECLARE_FAN_FAULT_ATTR(index, index2) &sensor_dev_attr_fan##index##_fault.dev_attr.attr, \ + &sensor_dev_attr_fan##index2##_fault.dev_attr.attr + +#define DECLARE_FAN_DIRECTION_SENSOR_DEV_ATTR(index) \ + static SENSOR_DEVICE_ATTR(fan##index##_direction, S_IRUGO, fan_show_value, NULL, FAN##index##_DIRECTION) +#define DECLARE_FAN_DIRECTION_ATTR(index) &sensor_dev_attr_fan##index##_direction.dev_attr.attr + +#define DECLARE_FAN_DUTY_CYCLE_SENSOR_DEV_ATTR(index) \ + static SENSOR_DEVICE_ATTR(fan_duty_cycle_percentage, S_IWUSR | S_IRUGO, fan_show_value, set_duty_cycle, FAN_DUTY_CYCLE_PERCENTAGE);\ + static SENSOR_DEVICE_ATTR(pwm##index, S_IWUSR | S_IRUGO, fan_show_value, set_duty_cycle, FAN_DUTY_CYCLE_PERCENTAGE) + +#define DECLARE_FAN_DUTY_CYCLE_ATTR(index) &sensor_dev_attr_fan_duty_cycle_percentage.dev_attr.attr, \ + &sensor_dev_attr_pwm##index.dev_attr.attr + + +#define DECLARE_FAN_PRESENT_SENSOR_DEV_ATTR(index) \ + static SENSOR_DEVICE_ATTR(fan##index##_present, S_IRUGO, fan_show_value, NULL, FAN##index##_PRESENT) +#define DECLARE_FAN_PRESENT_ATTR(index) &sensor_dev_attr_fan##index##_present.dev_attr.attr + +#define DECLARE_FAN_SPEED_RPM_SENSOR_DEV_ATTR(index, index2) \ + static SENSOR_DEVICE_ATTR(fan##index##_front_speed_rpm, S_IRUGO, fan_show_value, NULL, FAN##index##_FRONT_SPEED_RPM);\ + static SENSOR_DEVICE_ATTR(fan##index##_rear_speed_rpm, S_IRUGO, fan_show_value, NULL, FAN##index##_REAR_SPEED_RPM);\ + static SENSOR_DEVICE_ATTR(fan##index##_input, S_IRUGO, fan_show_value, NULL, FAN##index##_FRONT_SPEED_RPM);\ + static SENSOR_DEVICE_ATTR(fan##index2##_input, S_IRUGO, fan_show_value, NULL, FAN##index##_REAR_SPEED_RPM) +#define DECLARE_FAN_SPEED_RPM_ATTR(index, index2) &sensor_dev_attr_fan##index##_front_speed_rpm.dev_attr.attr, \ + &sensor_dev_attr_fan##index##_rear_speed_rpm.dev_attr.attr, \ + &sensor_dev_attr_fan##index##_input.dev_attr.attr, \ + &sensor_dev_attr_fan##index2##_input.dev_attr.attr + +/* 6 fan fault attributes in this platform */ +DECLARE_FAN_FAULT_SENSOR_DEV_ATTR(1,11); +DECLARE_FAN_FAULT_SENSOR_DEV_ATTR(2,12); +DECLARE_FAN_FAULT_SENSOR_DEV_ATTR(3,13); +DECLARE_FAN_FAULT_SENSOR_DEV_ATTR(4,14); +/* 6 fan speed(rpm) attributes in this platform */ +DECLARE_FAN_SPEED_RPM_SENSOR_DEV_ATTR(1,11); +DECLARE_FAN_SPEED_RPM_SENSOR_DEV_ATTR(2,12); +DECLARE_FAN_SPEED_RPM_SENSOR_DEV_ATTR(3,13); +DECLARE_FAN_SPEED_RPM_SENSOR_DEV_ATTR(4,14); +/* 6 fan present attributes in this platform */ +DECLARE_FAN_PRESENT_SENSOR_DEV_ATTR(1); +DECLARE_FAN_PRESENT_SENSOR_DEV_ATTR(2); +DECLARE_FAN_PRESENT_SENSOR_DEV_ATTR(3); +DECLARE_FAN_PRESENT_SENSOR_DEV_ATTR(4); +/* 6 fan direction attribute in this platform */ +DECLARE_FAN_DIRECTION_SENSOR_DEV_ATTR(1); +DECLARE_FAN_DIRECTION_SENSOR_DEV_ATTR(2); +DECLARE_FAN_DIRECTION_SENSOR_DEV_ATTR(3); +DECLARE_FAN_DIRECTION_SENSOR_DEV_ATTR(4); +/* 1 fan duty cycle attribute in this platform */ +DECLARE_FAN_DUTY_CYCLE_SENSOR_DEV_ATTR(1); + +static struct attribute *qfx5210_64x_fan_attributes[] = { + /* fan related attributes */ + DECLARE_FAN_FAULT_ATTR(1,11), + DECLARE_FAN_FAULT_ATTR(2,12), + DECLARE_FAN_FAULT_ATTR(3,13), + DECLARE_FAN_FAULT_ATTR(4,14), + DECLARE_FAN_SPEED_RPM_ATTR(1,11), + DECLARE_FAN_SPEED_RPM_ATTR(2,12), + DECLARE_FAN_SPEED_RPM_ATTR(3,13), + DECLARE_FAN_SPEED_RPM_ATTR(4,14), + DECLARE_FAN_PRESENT_ATTR(1), + DECLARE_FAN_PRESENT_ATTR(2), + DECLARE_FAN_PRESENT_ATTR(3), + DECLARE_FAN_PRESENT_ATTR(4), + DECLARE_FAN_DIRECTION_ATTR(1), + DECLARE_FAN_DIRECTION_ATTR(2), + DECLARE_FAN_DIRECTION_ATTR(3), + DECLARE_FAN_DIRECTION_ATTR(4), + DECLARE_FAN_DUTY_CYCLE_ATTR(1), + NULL +}; + +#define FAN_DUTY_CYCLE_REG_MASK 0xF +#define FAN_MAX_DUTY_CYCLE 100 +#define FAN_REG_VAL_TO_SPEED_RPM_STEP 100 + +static int qfx5210_64x_fan_read_value(struct i2c_client *client, u8 reg) +{ + return i2c_smbus_read_byte_data(client, reg); +} + +static int qfx5210_64x_fan_write_value(struct i2c_client *client, u8 reg, u8 value) +{ + return i2c_smbus_write_byte_data(client, reg, value); +} + +/* fan utility functions + */ +static u32 reg_val_to_duty_cycle(u8 reg_val) +{ + reg_val &= FAN_DUTY_CYCLE_REG_MASK; + + if (!reg_val) { + return 0; + } + + if (reg_val == 0xF) { + return FAN_MAX_DUTY_CYCLE; + } + + return (reg_val * 6) + 10; +} + +static u8 duty_cycle_to_reg_val(u8 duty_cycle) +{ + if (duty_cycle < 16) { + return 0; + } + + if (duty_cycle >= 100) { + return 0xF; + } + + return (duty_cycle - 10) / 6; +} + +static u32 reg_val_to_speed_rpm(u8 reg_val) +{ + return (u32)reg_val * FAN_REG_VAL_TO_SPEED_RPM_STEP; +} + +static u8 reg_val_to_direction(u8 reg_val, enum fan_id id) +{ + u8 mask = (1 << id); + return !!(reg_val & mask); +} + +static u8 reg_val_to_is_present(u8 reg_val, enum fan_id id) +{ + u8 mask = (1 << id); + return !(reg_val & mask); +} + +static u8 is_fan_fault(struct qfx5210_64x_fan_data *data, enum fan_id id) +{ + u8 ret = 1; + int front_fan_index = FAN1_FRONT_SPEED_RPM + id; + int rear_fan_index = FAN1_REAR_SPEED_RPM + id; + + /* Check if the speed of front or rear fan is ZERO, + */ + if (reg_val_to_speed_rpm(data->reg_val[front_fan_index]) && + reg_val_to_speed_rpm(data->reg_val[rear_fan_index])) { + ret = 0; + } + + return ret; +} + +static ssize_t set_duty_cycle(struct device *dev, struct device_attribute *da, + const char *buf, size_t count) +{ + int error, value; + struct i2c_client *client = to_i2c_client(dev); + + error = kstrtoint(buf, 10, &value); + if (error) + return error; + if (value > FAN_MAX_DUTY_CYCLE) + value = FAN_MAX_DUTY_CYCLE; + if (value < 0) + return -EINVAL; + + qfx5210_64x_fan_write_value(client, 0x28, 0); /* Disable fan speed watch dog */ + qfx5210_64x_fan_write_value(client, fan_reg[FAN_DUTY_CYCLE_PERCENTAGE], duty_cycle_to_reg_val(value)); + return count; +} + +static ssize_t fan_show_value(struct device *dev, struct device_attribute *da, + char *buf) +{ + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct qfx5210_64x_fan_data *data = qfx5210_64x_fan_update_device(dev); + ssize_t ret = 0; + + if (data->valid) { + switch (attr->index) { + case FAN_DUTY_CYCLE_PERCENTAGE: + { + u32 duty_cycle = reg_val_to_duty_cycle(data->reg_val[FAN_DUTY_CYCLE_PERCENTAGE]); + ret = sprintf(buf, "%u\n", duty_cycle); + break; + } + case FAN1_FRONT_SPEED_RPM: + case FAN2_FRONT_SPEED_RPM: + case FAN3_FRONT_SPEED_RPM: + case FAN4_FRONT_SPEED_RPM: + case FAN1_REAR_SPEED_RPM: + case FAN2_REAR_SPEED_RPM: + case FAN3_REAR_SPEED_RPM: + case FAN4_REAR_SPEED_RPM: + { + ret = sprintf(buf, "%u\n", reg_val_to_speed_rpm(data->reg_val[attr->index])); + break; + } + case FAN1_PRESENT: + case FAN2_PRESENT: + case FAN3_PRESENT: + case FAN4_PRESENT: + ret = sprintf(buf, "%d\n", + reg_val_to_is_present(data->reg_val[FAN_PRESENT_REG], + attr->index - FAN1_PRESENT)); + break; + case FAN1_FAULT: + case FAN2_FAULT: + case FAN3_FAULT: + case FAN4_FAULT: + ret = sprintf(buf, "%d\n", is_fan_fault(data, attr->index - FAN1_FAULT)); + break; + case FAN1_DIRECTION: + case FAN2_DIRECTION: + case FAN3_DIRECTION: + case FAN4_DIRECTION: + ret = sprintf(buf, "%d\n", + reg_val_to_direction(data->reg_val[FAN_DIRECTION_REG], + attr->index - FAN1_DIRECTION)); + break; + default: + break; + } + } + + return ret; +} + +static const struct attribute_group qfx5210_64x_fan_group = { + .attrs = qfx5210_64x_fan_attributes, +}; + +static struct qfx5210_64x_fan_data *qfx5210_64x_fan_update_device(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct qfx5210_64x_fan_data *data = i2c_get_clientdata(client); + + mutex_lock(&data->update_lock); + + if (time_after(jiffies, data->last_updated + HZ + HZ / 2) || + !data->valid) { + int i; + + dev_dbg(&client->dev, "Starting qfx5210_64x_fan update\n"); + data->valid = 0; + + /* Update fan data + */ + for (i = 0; i < ARRAY_SIZE(data->reg_val); i++) { + int status = qfx5210_64x_fan_read_value(client, fan_reg[i]); + + if (status < 0) { + data->valid = 0; + mutex_unlock(&data->update_lock); + dev_dbg(&client->dev, "reg %d, err %d\n", fan_reg[i], status); + return data; + } + else { + data->reg_val[i] = status; + } + } + + data->last_updated = jiffies; + data->valid = 1; + } + + mutex_unlock(&data->update_lock); + + return data; +} + +static int qfx5210_64x_fan_probe(struct i2c_client *client, + const struct i2c_device_id *dev_id) +{ + struct qfx5210_64x_fan_data *data; + int status; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA)) { + status = -EIO; + goto exit; + } + + data = kzalloc(sizeof(struct qfx5210_64x_fan_data), GFP_KERNEL); + if (!data) { + status = -ENOMEM; + goto exit; + } + + i2c_set_clientdata(client, data); + data->valid = 0; + mutex_init(&data->update_lock); + + dev_info(&client->dev, "chip found\n"); + + /* Register sysfs hooks */ + status = sysfs_create_group(&client->dev.kobj, &qfx5210_64x_fan_group); + if (status) { + goto exit_free; + } + + data->hwmon_dev = hwmon_device_register(&client->dev); + if (IS_ERR(data->hwmon_dev)) { + status = PTR_ERR(data->hwmon_dev); + goto exit_remove; + } + + dev_info(&client->dev, "%s: fan '%s'\n", + dev_name(data->hwmon_dev), client->name); + + return 0; + +exit_remove: + sysfs_remove_group(&client->dev.kobj, &qfx5210_64x_fan_group); +exit_free: + kfree(data); +exit: + + return status; +} + +static int qfx5210_64x_fan_remove(struct i2c_client *client) +{ + struct qfx5210_64x_fan_data *data = i2c_get_clientdata(client); + hwmon_device_unregister(data->hwmon_dev); + sysfs_remove_group(&client->dev.kobj, &qfx5210_64x_fan_group); + + return 0; +} + +/* Addresses to scan */ +static const unsigned short normal_i2c[] = { I2C_CLIENT_END }; + +static const struct i2c_device_id qfx5210_64x_fan_id[] = { + { "qfx5210_64x_fan", 0 }, + {} +}; +MODULE_DEVICE_TABLE(i2c, qfx5210_64x_fan_id); + +static struct i2c_driver qfx5210_64x_fan_driver = { + .class = I2C_CLASS_HWMON, + .driver = { + .name = DRVNAME, + }, + .probe = qfx5210_64x_fan_probe, + .remove = qfx5210_64x_fan_remove, + .id_table = qfx5210_64x_fan_id, + .address_list = normal_i2c, +}; + +static int __init qfx5210_64x_fan_init(void) +{ + return i2c_add_driver(&qfx5210_64x_fan_driver); +} + +static void __exit qfx5210_64x_fan_exit(void) +{ + i2c_del_driver(&qfx5210_64x_fan_driver); +} + +module_init(qfx5210_64x_fan_init); +module_exit(qfx5210_64x_fan_exit); + +MODULE_AUTHOR("Brandon Chuang "); +MODULE_DESCRIPTION("qfx5210_64x_fan driver"); +MODULE_LICENSE("GPL"); + diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-leds.c b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-leds.c new file mode 100644 index 0000000000..66d0977343 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-leds.c @@ -0,0 +1,450 @@ +/* + * LED driver for the qfx5210 + * + * Modified and tested to work on Juniper QFX5210 + * Ciju Rajan K + * + * Copyright (C) 2014 Accton Technology Corporation. + * Brandon Chuang + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +/*#define DEBUG*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +extern int juniper_i2c_cpld_read (u8 cpld_addr, u8 reg); +extern int juniper_i2c_cpld_write(unsigned short cpld_addr, u8 reg, u8 value); + +extern void led_classdev_unregister(struct led_classdev *led_cdev); +extern int led_classdev_register(struct device *parent, struct led_classdev *led_cdev); +extern void led_classdev_resume(struct led_classdev *led_cdev); +extern void led_classdev_suspend(struct led_classdev *led_cdev); + +#define DRVNAME "qfx5210_64x_led" + +struct qfx5210_64x_led_data { + struct platform_device *pdev; + struct mutex update_lock; + char valid; /* != 0 if registers are valid */ + unsigned long last_updated; /* In jiffies */ + u8 reg_val[1]; /* only 1 register*/ +}; + +static struct qfx5210_64x_led_data *ledctl = NULL; + +/* + * LED related data + */ + +#define LED_CNTRLER_I2C_ADDRESS (0x60) /* CPLD1 i2c address */ + +#define LED_TYPE_ALARM_REG_MASK (0x03) +#define LED_MODE_ALARM_RED_VALUE (0x01) +#define LED_MODE_ALARM_AMBER_VALUE (0x02) +#define LED_MODE_ALARM_OFF_VALUE (0x00) + +#define LED_TYPE_SYSTEM_REG_MASK (0x0C) +#define LED_MODE_SYSTEM_GREEN_VALUE (0x04) +#define LED_MODE_SYSTEM_GREEN_BLINKING_VALUE (0x08) +#define LED_MODE_SYSTEM_OFF_VALUE (0x00) + +#define LED_TYPE_MASTER_REG_MASK (0x30) +#define LED_MODE_MASTER_GREEN_VALUE (0x10) +#define LED_MODE_MASTER_GREEN_BLINKING_VALUE (0x20) +#define LED_MODE_MASTER_OFF_VALUE (0x00) + +#define LED_TYPE_BEACON_REG_MASK (0xC0) +#define LED_MODE_BEACON_VALUE (0x40) +#define LED_MODE_BEACON_OFF_VALUE (0x00) + +enum led_type { + LED_TYPE_ALARM, + LED_TYPE_SYSTEM, + LED_TYPE_MASTER, + LED_TYPE_BEACON +}; + +struct led_reg { + u32 types; + u8 reg_addr; +}; + +static const struct led_reg led_reg_map[] = { + {(1 << LED_TYPE_ALARM) | (1 << LED_TYPE_SYSTEM) | (1 << LED_TYPE_MASTER) | (1 << LED_TYPE_BEACON), 0x30}, +}; + +enum led_light_mode { + LED_MODE_OFF = 0, + LED_MODE_RED = 1, + LED_MODE_AMBER = 2, + LED_MODE_GREEN = 1, + LED_MODE_GREEN_BLINKING = 2, + LED_MODE_BLUE_BLINKING = 1 +}; + +struct led_type_mode { + enum led_type type; + enum led_light_mode mode; + int reg_bit_mask; + int mode_value; +}; + +static struct led_type_mode led_type_mode_data[] = { + {LED_TYPE_ALARM, LED_MODE_RED, LED_TYPE_ALARM_REG_MASK, LED_MODE_ALARM_RED_VALUE}, + {LED_TYPE_ALARM, LED_MODE_AMBER, LED_TYPE_ALARM_REG_MASK, LED_MODE_ALARM_AMBER_VALUE}, + {LED_TYPE_ALARM, LED_MODE_OFF, LED_TYPE_ALARM_REG_MASK, LED_MODE_ALARM_OFF_VALUE}, + + {LED_TYPE_SYSTEM, LED_MODE_GREEN, LED_TYPE_SYSTEM_REG_MASK, LED_MODE_SYSTEM_GREEN_VALUE}, + {LED_TYPE_SYSTEM, LED_MODE_GREEN_BLINKING, LED_TYPE_SYSTEM_REG_MASK, LED_MODE_SYSTEM_GREEN_BLINKING_VALUE}, + {LED_TYPE_SYSTEM, LED_MODE_OFF, LED_TYPE_SYSTEM_REG_MASK, LED_MODE_SYSTEM_OFF_VALUE}, + + {LED_TYPE_MASTER, LED_MODE_GREEN, LED_TYPE_MASTER_REG_MASK, LED_MODE_MASTER_GREEN_VALUE}, + {LED_TYPE_MASTER, LED_MODE_GREEN_BLINKING, LED_TYPE_MASTER_REG_MASK, LED_MODE_MASTER_GREEN_BLINKING_VALUE}, + {LED_TYPE_MASTER, LED_MODE_OFF, LED_TYPE_MASTER_REG_MASK, LED_MODE_MASTER_OFF_VALUE}, + + {LED_TYPE_BEACON, LED_MODE_BLUE_BLINKING, LED_TYPE_BEACON_REG_MASK, LED_MODE_BEACON_VALUE}, + {LED_TYPE_BEACON, LED_MODE_OFF, LED_TYPE_BEACON_REG_MASK, LED_MODE_BEACON_OFF_VALUE} +}; + +static int get_led_reg(enum led_type type, u8 *reg) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(led_reg_map); i++) { + if(led_reg_map[i].types & (1 << type)) { + *reg = led_reg_map[i].reg_addr; + return 0; + } + } + + return 1; +} + +static int led_reg_val_to_light_mode(enum led_type type, u8 reg_val) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(led_type_mode_data); i++) { + + if (type != led_type_mode_data[i].type) + continue; + + if ((led_type_mode_data[i].reg_bit_mask & reg_val) == + led_type_mode_data[i].mode_value) + { + return led_type_mode_data[i].mode; + } + } + + return 0; +} + +static u8 led_light_mode_to_reg_val(enum led_type type, + enum led_light_mode mode, u8 reg_val) { + int i; + + for (i = 0; i < ARRAY_SIZE(led_type_mode_data); i++) { + if (type != led_type_mode_data[i].type) + continue; + + if (mode != led_type_mode_data[i].mode) + continue; + + reg_val = led_type_mode_data[i].mode_value | + (reg_val & (~led_type_mode_data[i].reg_bit_mask)); + break; + } + + return reg_val; +} + +static int qfx5210_64x_led_read_value(u8 reg) +{ + return juniper_i2c_cpld_read(LED_CNTRLER_I2C_ADDRESS, reg); +} + +static int qfx5210_64x_led_write_value(u8 reg, u8 value) +{ + return juniper_i2c_cpld_write(LED_CNTRLER_I2C_ADDRESS, reg, value); +} + +static void qfx5210_64x_led_update(void) +{ + mutex_lock(&ledctl->update_lock); + + if (time_after(jiffies, ledctl->last_updated + HZ + HZ / 2) + || !ledctl->valid) { + int i; + + dev_dbg(&ledctl->pdev->dev, "Starting qfx5210_64x_led update\n"); + + /* Update LED data + */ + for (i = 0; i < ARRAY_SIZE(ledctl->reg_val); i++) { + int status = qfx5210_64x_led_read_value(led_reg_map[i].reg_addr); + + if (status < 0) { + ledctl->valid = 0; + dev_dbg(&ledctl->pdev->dev, "reg %d, err %d\n", led_reg_map[i].reg_addr, status); + goto exit; + } + else + { + ledctl->reg_val[i] = status; + } + } + + ledctl->last_updated = jiffies; + ledctl->valid = 1; + } + +exit: + mutex_unlock(&ledctl->update_lock); +} + +static void qfx5210_64x_led_set(struct led_classdev *led_cdev, + enum led_brightness led_light_mode, + enum led_type type) +{ + int reg_val; + u8 reg ; + mutex_lock(&ledctl->update_lock); + + if( !get_led_reg(type, ®)) { + dev_dbg(&ledctl->pdev->dev, "Not match register for %d.\n", type); + } + + reg_val = qfx5210_64x_led_read_value(reg); + if (reg_val < 0) { + dev_dbg(&ledctl->pdev->dev, "reg %d, err %d\n", reg, reg_val); + goto exit; + } + + reg_val = led_light_mode_to_reg_val(type, led_light_mode, reg_val); + qfx5210_64x_led_write_value(reg, reg_val); + + /* to prevent the slow-update issue */ + ledctl->valid = 0; + +exit: + mutex_unlock(&ledctl->update_lock); +} + + +static void qfx5210_64x_led_system_set(struct led_classdev *led_cdev, + enum led_brightness led_light_mode) +{ + qfx5210_64x_led_set(led_cdev, led_light_mode, LED_TYPE_SYSTEM); +} + +static enum led_brightness qfx5210_64x_led_system_get(struct led_classdev *cdev) +{ + qfx5210_64x_led_update(); + return led_reg_val_to_light_mode(LED_TYPE_SYSTEM, ledctl->reg_val[0]); +} + +static void qfx5210_64x_led_master_set(struct led_classdev *led_cdev, + enum led_brightness led_light_mode) +{ + qfx5210_64x_led_set(led_cdev, led_light_mode, LED_TYPE_MASTER); +} + +static enum led_brightness qfx5210_64x_led_master_get(struct led_classdev *cdev) +{ + qfx5210_64x_led_update(); + return led_reg_val_to_light_mode(LED_TYPE_MASTER, ledctl->reg_val[0]); +} + +static void qfx5210_64x_led_alarm_set(struct led_classdev *led_cdev, + enum led_brightness led_light_mode) +{ + qfx5210_64x_led_set(led_cdev, led_light_mode, LED_TYPE_ALARM); +} + +static enum led_brightness qfx5210_64x_led_alarm_get(struct led_classdev *cdev) +{ + qfx5210_64x_led_update(); + return led_reg_val_to_light_mode(LED_TYPE_ALARM, ledctl->reg_val[0]); +} + +static void qfx5210_64x_led_beacon_set(struct led_classdev *led_cdev, + enum led_brightness led_light_mode) +{ + qfx5210_64x_led_set(led_cdev, led_light_mode, LED_TYPE_BEACON); +} + +static enum led_brightness qfx5210_64x_led_beacon_get(struct led_classdev *cdev) +{ + qfx5210_64x_led_update(); + return led_reg_val_to_light_mode(LED_TYPE_BEACON, ledctl->reg_val[0]); +} + +static struct led_classdev qfx5210_64x_leds[] = { + [LED_TYPE_ALARM] = { + .name = "alarm", + .default_trigger = "unused", + .brightness_set = qfx5210_64x_led_alarm_set, + .brightness_get = qfx5210_64x_led_alarm_get, + .flags = LED_CORE_SUSPENDRESUME, + .max_brightness = LED_MODE_AMBER, + }, + [LED_TYPE_SYSTEM] = { + .name = "system", + .default_trigger = "unused", + .brightness_set = qfx5210_64x_led_system_set, + .brightness_get = qfx5210_64x_led_system_get, + .flags = LED_CORE_SUSPENDRESUME, + .max_brightness = LED_MODE_GREEN_BLINKING, + }, + [LED_TYPE_MASTER] = { + .name = "master", + .default_trigger = "unused", + .brightness_set = qfx5210_64x_led_master_set, + .brightness_get = qfx5210_64x_led_master_get, + .flags = LED_CORE_SUSPENDRESUME, + .max_brightness = LED_MODE_GREEN_BLINKING, + }, + [LED_TYPE_BEACON] = { + .name = "beacon", + .default_trigger = "unused", + .brightness_set = qfx5210_64x_led_beacon_set, + .brightness_get = qfx5210_64x_led_beacon_get, + .flags = LED_CORE_SUSPENDRESUME, + .max_brightness = LED_MODE_BLUE_BLINKING, + }, +}; + +static int qfx5210_64x_led_suspend(struct platform_device *dev, + pm_message_t state) +{ + int i = 0; + + for (i = 0; i < ARRAY_SIZE(qfx5210_64x_leds); i++) { + led_classdev_suspend(&qfx5210_64x_leds[i]); + } + + return 0; +} + +static int qfx5210_64x_led_resume(struct platform_device *dev) +{ + int i = 0; + + for (i = 0; i < ARRAY_SIZE(qfx5210_64x_leds); i++) { + led_classdev_resume(&qfx5210_64x_leds[i]); + } + + return 0; +} + +static int qfx5210_64x_led_probe(struct platform_device *pdev) +{ + int ret, i; + + for (i = 0; i < ARRAY_SIZE(qfx5210_64x_leds); i++) { + ret = led_classdev_register(&pdev->dev, &qfx5210_64x_leds[i]); + + if (ret < 0) + break; + } + + /* Check if all LEDs were successfully registered */ + if (i != ARRAY_SIZE(qfx5210_64x_leds)){ + int j; + + /* only unregister the LEDs that were successfully registered */ + for (j = 0; j < i; j++) { + led_classdev_unregister(&qfx5210_64x_leds[i]); + } + } + + return ret; +} + +static int qfx5210_64x_led_remove(struct platform_device *pdev) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(qfx5210_64x_leds); i++) { + led_classdev_unregister(&qfx5210_64x_leds[i]); + } + + return 0; +} + +static struct platform_driver qfx5210_64x_led_driver = { + .probe = qfx5210_64x_led_probe, + .remove = qfx5210_64x_led_remove, + .suspend = qfx5210_64x_led_suspend, + .resume = qfx5210_64x_led_resume, + .driver = { + .name = DRVNAME, + .owner = THIS_MODULE, + }, +}; + +static int __init qfx5210_64x_led_init(void) +{ + int ret; + + ret = platform_driver_register(&qfx5210_64x_led_driver); + if (ret < 0) { + goto exit; + } + + ledctl = kzalloc(sizeof(struct qfx5210_64x_led_data), GFP_KERNEL); + if (!ledctl) { + ret = -ENOMEM; + platform_driver_unregister(&qfx5210_64x_led_driver); + goto exit; + } + + mutex_init(&ledctl->update_lock); + + ledctl->pdev = platform_device_register_simple(DRVNAME, -1, NULL, 0); + if (IS_ERR(ledctl->pdev)) { + ret = PTR_ERR(ledctl->pdev); + platform_driver_unregister(&qfx5210_64x_led_driver); + kfree(ledctl); + goto exit; + } + +exit: + return ret; +} + +static void __exit qfx5210_64x_led_exit(void) +{ + platform_device_unregister(ledctl->pdev); + platform_driver_unregister(&qfx5210_64x_led_driver); + kfree(ledctl); +} + +module_init(qfx5210_64x_led_init); +module_exit(qfx5210_64x_led_exit); + +MODULE_AUTHOR("Ciju Rajan K "); +MODULE_DESCRIPTION("qfx5210_64x_led driver"); +MODULE_LICENSE("GPL"); + diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-psu.c b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-psu.c new file mode 100644 index 0000000000..526e46433c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-psu.c @@ -0,0 +1,242 @@ +/* + * An hwmon driver for juniper qfx5210_64x Power Module + * + * Tested and validated on Juniper QFX5210 + * Ciju Rajan K + * + * Copyright (C) 2014 Accton Technology Corporation. + * Brandon Chuang + * + * Based on ad7414.c + * Copyright 2006 Stefan Roese , DENX Software Engineering + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PSU_STATUS_I2C_ADDR 0x60 +#define PSU_STATUS_I2C_REG_OFFSET 0x03 + +#define IS_POWER_GOOD(id, value) (!!(value & BIT(2+id))) +#define IS_PRESENT(id, value) (!(value & BIT(id))) + +static ssize_t show_status(struct device *dev, struct device_attribute *da, char *buf); +static struct qfx5210_64x_psu_data *qfx5210_64x_psu_update_device(struct device *dev); +extern int juniper_i2c_cpld_read (u8 cpld_addr, u8 reg); + +/* Addresses scanned + */ +static const unsigned short normal_i2c[] = { I2C_CLIENT_END }; + +/* Each client has this additional data + */ +struct qfx5210_64x_psu_data { + struct device *hwmon_dev; + struct mutex update_lock; + char valid; /* !=0 if registers are valid */ + unsigned long last_updated; /* In jiffies */ + u8 index; /* PSU index */ + u8 status; /* Status(present/power_good) register read from CPLD */ +}; + +enum qfx5210_64x_psu_sysfs_attributes { + PSU_PRESENT, + PSU_POWER_GOOD +}; + +/* sysfs attributes for hwmon + */ +static SENSOR_DEVICE_ATTR(psu_present, S_IRUGO, show_status, NULL, PSU_PRESENT); +static SENSOR_DEVICE_ATTR(psu_power_good, S_IRUGO, show_status, NULL, PSU_POWER_GOOD); + +static struct attribute *qfx5210_64x_psu_attributes[] = { + &sensor_dev_attr_psu_present.dev_attr.attr, + &sensor_dev_attr_psu_power_good.dev_attr.attr, + NULL +}; + +static ssize_t show_status(struct device *dev, struct device_attribute *da, + char *buf) +{ + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct qfx5210_64x_psu_data *data = qfx5210_64x_psu_update_device(dev); + u8 status = 0; + + if (!data->valid) { + return -EIO; + } + + if (attr->index == PSU_PRESENT) { + status = IS_PRESENT(data->index, data->status); + } + else { /* PSU_POWER_GOOD */ + status = IS_POWER_GOOD(data->index, data->status); + } + + return sprintf(buf, "%d\n", status); +} + +static const struct attribute_group qfx5210_64x_psu_group = { + .attrs = qfx5210_64x_psu_attributes, +}; + +static int qfx5210_64x_psu_probe(struct i2c_client *client, + const struct i2c_device_id *dev_id) +{ + struct qfx5210_64x_psu_data *data; + int status; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_I2C_BLOCK)) { + status = -EIO; + goto exit; + } + + data = kzalloc(sizeof(struct qfx5210_64x_psu_data), GFP_KERNEL); + if (!data) { + status = -ENOMEM; + goto exit; + } + + i2c_set_clientdata(client, data); + data->valid = 0; + data->index = dev_id->driver_data; + mutex_init(&data->update_lock); + + dev_info(&client->dev, "chip found\n"); + + /* Register sysfs hooks */ + status = sysfs_create_group(&client->dev.kobj, &qfx5210_64x_psu_group); + if (status) { + goto exit_free; + } + + data->hwmon_dev = hwmon_device_register(&client->dev); + if (IS_ERR(data->hwmon_dev)) { + status = PTR_ERR(data->hwmon_dev); + goto exit_remove; + } + + dev_info(&client->dev, "%s: psu '%s'\n", + dev_name(data->hwmon_dev), client->name); + + return 0; + +exit_remove: + sysfs_remove_group(&client->dev.kobj, &qfx5210_64x_psu_group); +exit_free: + kfree(data); +exit: + + return status; +} + +static int qfx5210_64x_psu_remove(struct i2c_client *client) +{ + struct qfx5210_64x_psu_data *data = i2c_get_clientdata(client); + + hwmon_device_unregister(data->hwmon_dev); + sysfs_remove_group(&client->dev.kobj, &qfx5210_64x_psu_group); + kfree(data); + + return 0; +} + +enum psu_index +{ + qfx5210_64x_psu1, + qfx5210_64x_psu2 +}; + +static const struct i2c_device_id qfx5210_64x_psu_id[] = { + { "qfx5210_64x_psu1", qfx5210_64x_psu1 }, + { "qfx5210_64x_psu2", qfx5210_64x_psu2 }, + {} +}; +MODULE_DEVICE_TABLE(i2c, qfx5210_64x_psu_id); + +static struct i2c_driver qfx5210_64x_psu_driver = { + .class = I2C_CLASS_HWMON, + .driver = { + .name = "qfx5210_64x_psu", + }, + .probe = qfx5210_64x_psu_probe, + .remove = qfx5210_64x_psu_remove, + .id_table = qfx5210_64x_psu_id, + .address_list = normal_i2c, +}; + +static struct qfx5210_64x_psu_data *qfx5210_64x_psu_update_device(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct qfx5210_64x_psu_data *data = i2c_get_clientdata(client); + + mutex_lock(&data->update_lock); + + if (time_after(jiffies, data->last_updated + HZ + HZ / 2) + || !data->valid) { + int status; + + data->valid = 0; + dev_dbg(&client->dev, "Starting qfx5210_64x update\n"); + + /* Read psu status */ + status = juniper_i2c_cpld_read(PSU_STATUS_I2C_ADDR, PSU_STATUS_I2C_REG_OFFSET); + + if (status < 0) { + dev_dbg(&client->dev, "cpld reg (0x%x) err %d\n", PSU_STATUS_I2C_ADDR, status); + goto exit; + } + else { + data->status = status; + } + + data->last_updated = jiffies; + data->valid = 1; + } + +exit: + mutex_unlock(&data->update_lock); + + return data; +} + +static int __init qfx5210_64x_psu_init(void) +{ + return i2c_add_driver(&qfx5210_64x_psu_driver); +} + +static void __exit qfx5210_64x_psu_exit(void) +{ + i2c_del_driver(&qfx5210_64x_psu_driver); +} + +module_init(qfx5210_64x_psu_init); +module_exit(qfx5210_64x_psu_exit); + +MODULE_AUTHOR("Brandon Chuang "); +MODULE_DESCRIPTION("qfx5210_64x_psu driver"); +MODULE_LICENSE("GPL"); + diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-sfp.c b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-sfp.c new file mode 100644 index 0000000000..0a173965fd --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/x86-64-juniper-qfx5210-64x-sfp.c @@ -0,0 +1,1579 @@ +/* + * SFP driver for juniper qfx5210_64x sfp + * + * Tested and validated on Juniper QFX5210 + * Ciju Rajan K + * + * Copyright (C) Brandon Chuang + * + * Based on ad7414.c + * Copyright 2006 Stefan Roese , DENX Software Engineering + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRIVER_NAME "qfx5210_64x_sfp" /* Platform dependent */ + +#define DEBUG_MODE 0 + +#if (DEBUG_MODE == 1) + #define DEBUG_PRINT(fmt, args...) \ + printk (KERN_INFO "%s:%s[%d]: " fmt "\r\n", __FILE__, __FUNCTION__, __LINE__, ##args) +#else + #define DEBUG_PRINT(fmt, args...) +#endif + +#define NUM_OF_SFP_PORT 24 +#define EEPROM_NAME "sfp_eeprom" +#define EEPROM_SIZE 256 /* 256 byte eeprom */ +#define BIT_INDEX(i) (1ULL << (i)) +#define USE_I2C_BLOCK_READ 1 /* Platform dependent */ +#define I2C_RW_RETRY_COUNT 10 +#define I2C_RW_RETRY_INTERVAL 60 /* ms */ + +#define SFP_EEPROM_A0_I2C_ADDR (0xA0 >> 1) + +#define SFF8024_PHYSICAL_DEVICE_ID_ADDR 0x0 +#define SFF8024_DEVICE_ID_SFP 0x3 +#define SFF8024_DEVICE_ID_QSFP 0xC +#define SFF8024_DEVICE_ID_QSFP_PLUS 0xD +#define SFF8024_DEVICE_ID_QSFP28 0x11 + +#define SFF8436_RX_LOS_ADDR 3 +#define SFF8436_TX_FAULT_ADDR 4 +#define SFF8436_TX_DISABLE_ADDR 86 + +#define MULTIPAGE_SUPPORT 1 + +#if (MULTIPAGE_SUPPORT == 1) +/* fundamental unit of addressing for SFF_8472/SFF_8436 */ +#define SFF_8436_PAGE_SIZE 128 +/* + * The current 8436 (QSFP) spec provides for only 4 supported + * pages (pages 0-3). + * This driver is prepared to support more, but needs a register in the + * EEPROM to indicate how many pages are supported before it is safe + * to implement more pages in the driver. + */ +#define SFF_8436_SPECED_PAGES 4 +#define SFF_8436_EEPROM_SIZE ((1 + SFF_8436_SPECED_PAGES) * SFF_8436_PAGE_SIZE) +#define SFF_8436_EEPROM_UNPAGED_SIZE (2 * SFF_8436_PAGE_SIZE) +/* + * The current 8472 (SFP) spec provides for only 3 supported + * pages (pages 0-2). + * This driver is prepared to support more, but needs a register in the + * EEPROM to indicate how many pages are supported before it is safe + * to implement more pages in the driver. + */ +#define SFF_8472_SPECED_PAGES 3 +#define SFF_8472_EEPROM_SIZE ((3 + SFF_8472_SPECED_PAGES) * SFF_8436_PAGE_SIZE) +#define SFF_8472_EEPROM_UNPAGED_SIZE (4 * SFF_8436_PAGE_SIZE) + +/* a few constants to find our way around the EEPROM */ +#define SFF_8436_PAGE_SELECT_REG 0x7F +#define SFF_8436_PAGEABLE_REG 0x02 +#define SFF_8436_NOT_PAGEABLE (1<<2) +#define SFF_8472_PAGEABLE_REG 0x40 +#define SFF_8472_PAGEABLE (1<<4) + +/* + * This parameter is to help this driver avoid blocking other drivers out + * of I2C for potentially troublesome amounts of time. With a 100 kHz I2C + * clock, one 256 byte read takes about 1/43 second which is excessive; + * but the 1/170 second it takes at 400 kHz may be quite reasonable; and + * at 1 MHz (Fm+) a 1/430 second delay could easily be invisible. + * + * This value is forced to be a power of two so that writes align on pages. + */ +static unsigned io_limit = SFF_8436_PAGE_SIZE; + +/* + * specs often allow 5 msec for a page write, sometimes 20 msec; + * it's important to recover from write timeouts. + */ +static unsigned write_timeout = 25; + +typedef enum qsfp_opcode { + QSFP_READ_OP = 0, + QSFP_WRITE_OP = 1 +} qsfp_opcode_e; +#endif + +static ssize_t show_port_number(struct device *dev, struct device_attribute *da, char *buf); +static ssize_t show_present(struct device *dev, struct device_attribute *da, char *buf); +static ssize_t qsfp_show_tx_rx_status(struct device *dev, struct device_attribute *da, char *buf); +static ssize_t qsfp_set_tx_disable(struct device *dev, struct device_attribute *da, const char *buf, size_t count);; +static ssize_t sfp_eeprom_read(struct i2c_client *, u8, u8 *,int); +static ssize_t sfp_eeprom_write(struct i2c_client *, u8 , const char *,int); +extern int juniper_i2c_cpld_read (u8 cpld_addr, u8 reg); + +enum sfp_sysfs_attributes { + PRESENT, + PRESENT_ALL, + PORT_NUMBER, + PORT_TYPE, + DDM_IMPLEMENTED, + TX_FAULT, + TX_FAULT1, + TX_FAULT2, + TX_FAULT3, + TX_FAULT4, + TX_DISABLE, + TX_DISABLE1, + TX_DISABLE2, + TX_DISABLE3, + TX_DISABLE4, + RX_LOS, + RX_LOS1, + RX_LOS2, + RX_LOS3, + RX_LOS4, + RX_LOS_ALL +}; + +/* SFP/QSFP common attributes for sysfs */ +static SENSOR_DEVICE_ATTR(sfp_port_number, S_IRUGO, show_port_number, NULL, PORT_NUMBER); +static SENSOR_DEVICE_ATTR(sfp_is_present, S_IRUGO, show_present, NULL, PRESENT); +static SENSOR_DEVICE_ATTR(sfp_is_present_all, S_IRUGO, show_present, NULL, PRESENT_ALL); +static SENSOR_DEVICE_ATTR(sfp_tx_disable, S_IWUSR | S_IRUGO, qsfp_show_tx_rx_status, qsfp_set_tx_disable, TX_DISABLE); +static SENSOR_DEVICE_ATTR(sfp_tx_fault, S_IRUGO, qsfp_show_tx_rx_status, NULL, TX_FAULT); + +/* QSFP attributes for sysfs */ +static SENSOR_DEVICE_ATTR(sfp_rx_los, S_IRUGO, qsfp_show_tx_rx_status, NULL, RX_LOS); +static SENSOR_DEVICE_ATTR(sfp_rx_los1, S_IRUGO, qsfp_show_tx_rx_status, NULL, RX_LOS1); +static SENSOR_DEVICE_ATTR(sfp_rx_los2, S_IRUGO, qsfp_show_tx_rx_status, NULL, RX_LOS2); +static SENSOR_DEVICE_ATTR(sfp_rx_los3, S_IRUGO, qsfp_show_tx_rx_status, NULL, RX_LOS3); +static SENSOR_DEVICE_ATTR(sfp_rx_los4, S_IRUGO, qsfp_show_tx_rx_status, NULL, RX_LOS4); +static SENSOR_DEVICE_ATTR(sfp_tx_disable1, S_IWUSR | S_IRUGO, qsfp_show_tx_rx_status, qsfp_set_tx_disable, TX_DISABLE1); +static SENSOR_DEVICE_ATTR(sfp_tx_disable2, S_IWUSR | S_IRUGO, qsfp_show_tx_rx_status, qsfp_set_tx_disable, TX_DISABLE2); +static SENSOR_DEVICE_ATTR(sfp_tx_disable3, S_IWUSR | S_IRUGO, qsfp_show_tx_rx_status, qsfp_set_tx_disable, TX_DISABLE3); +static SENSOR_DEVICE_ATTR(sfp_tx_disable4, S_IWUSR | S_IRUGO, qsfp_show_tx_rx_status, qsfp_set_tx_disable, TX_DISABLE4); +static SENSOR_DEVICE_ATTR(sfp_tx_fault1, S_IRUGO, qsfp_show_tx_rx_status, NULL, TX_FAULT1); +static SENSOR_DEVICE_ATTR(sfp_tx_fault2, S_IRUGO, qsfp_show_tx_rx_status, NULL, TX_FAULT2); +static SENSOR_DEVICE_ATTR(sfp_tx_fault3, S_IRUGO, qsfp_show_tx_rx_status, NULL, TX_FAULT3); +static SENSOR_DEVICE_ATTR(sfp_tx_fault4, S_IRUGO, qsfp_show_tx_rx_status, NULL, TX_FAULT4); +static struct attribute *qsfp_attributes[] = { + &sensor_dev_attr_sfp_port_number.dev_attr.attr, + &sensor_dev_attr_sfp_is_present.dev_attr.attr, + &sensor_dev_attr_sfp_is_present_all.dev_attr.attr, + &sensor_dev_attr_sfp_rx_los.dev_attr.attr, + &sensor_dev_attr_sfp_rx_los1.dev_attr.attr, + &sensor_dev_attr_sfp_rx_los2.dev_attr.attr, + &sensor_dev_attr_sfp_rx_los3.dev_attr.attr, + &sensor_dev_attr_sfp_rx_los4.dev_attr.attr, + &sensor_dev_attr_sfp_tx_disable.dev_attr.attr, + &sensor_dev_attr_sfp_tx_disable1.dev_attr.attr, + &sensor_dev_attr_sfp_tx_disable2.dev_attr.attr, + &sensor_dev_attr_sfp_tx_disable3.dev_attr.attr, + &sensor_dev_attr_sfp_tx_disable4.dev_attr.attr, + &sensor_dev_attr_sfp_tx_fault.dev_attr.attr, + &sensor_dev_attr_sfp_tx_fault1.dev_attr.attr, + &sensor_dev_attr_sfp_tx_fault2.dev_attr.attr, + &sensor_dev_attr_sfp_tx_fault3.dev_attr.attr, + &sensor_dev_attr_sfp_tx_fault4.dev_attr.attr, + NULL +}; + +/* Platform dependent +++ */ +#define CPLD_PORT_TO_FRONT_PORT(port) (port+1) + +enum port_numbers { +qfx5210_64x_port1, qfx5210_64x_port2, qfx5210_64x_port3, qfx5210_64x_port4, +qfx5210_64x_port5, qfx5210_64x_port6, qfx5210_64x_port7, qfx5210_64x_port8, +qfx5210_64x_port9, qfx5210_64x_port10, qfx5210_64x_port11, qfx5210_64x_port12, +qfx5210_64x_port13, qfx5210_64x_port14, qfx5210_64x_port15, qfx5210_64x_port16, +qfx5210_64x_port17, qfx5210_64x_port18, qfx5210_64x_port19, qfx5210_64x_port20, +qfx5210_64x_port21, qfx5210_64x_port22, qfx5210_64x_port23, qfx5210_64x_port24, +qfx5210_64x_port25, qfx5210_64x_port26, qfx5210_64x_port27, qfx5210_64x_port28, +qfx5210_64x_port29, qfx5210_64x_port30, qfx5210_64x_port31, qfx5210_64x_port32, +qfx5210_64x_port33, qfx5210_64x_port34, qfx5210_64x_port35, qfx5210_64x_port36, +qfx5210_64x_port37, qfx5210_64x_port38, qfx5210_64x_port39, qfx5210_64x_port40, +qfx5210_64x_port41, qfx5210_64x_port42, qfx5210_64x_port43, qfx5210_64x_port44, +qfx5210_64x_port45, qfx5210_64x_port46, qfx5210_64x_port47, qfx5210_64x_port48, +qfx5210_64x_port49, qfx5210_64x_port50, qfx5210_64x_port51, qfx5210_64x_port52, +qfx5210_64x_port53, qfx5210_64x_port54, qfx5210_64x_port55, qfx5210_64x_port56, +qfx5210_64x_port57, qfx5210_64x_port58, qfx5210_64x_port59, qfx5210_64x_port60, +qfx5210_64x_port61, qfx5210_64x_port62, qfx5210_64x_port63, qfx5210_64x_port64 +}; + +#define I2C_DEV_ID(x) { #x, x} + +static const struct i2c_device_id sfp_device_id[] = { +I2C_DEV_ID(qfx5210_64x_port1), +I2C_DEV_ID(qfx5210_64x_port2), +I2C_DEV_ID(qfx5210_64x_port3), +I2C_DEV_ID(qfx5210_64x_port4), +I2C_DEV_ID(qfx5210_64x_port5), +I2C_DEV_ID(qfx5210_64x_port6), +I2C_DEV_ID(qfx5210_64x_port7), +I2C_DEV_ID(qfx5210_64x_port8), +I2C_DEV_ID(qfx5210_64x_port9), +I2C_DEV_ID(qfx5210_64x_port10), +I2C_DEV_ID(qfx5210_64x_port11), +I2C_DEV_ID(qfx5210_64x_port12), +I2C_DEV_ID(qfx5210_64x_port13), +I2C_DEV_ID(qfx5210_64x_port14), +I2C_DEV_ID(qfx5210_64x_port15), +I2C_DEV_ID(qfx5210_64x_port16), +I2C_DEV_ID(qfx5210_64x_port17), +I2C_DEV_ID(qfx5210_64x_port18), +I2C_DEV_ID(qfx5210_64x_port19), +I2C_DEV_ID(qfx5210_64x_port20), +I2C_DEV_ID(qfx5210_64x_port21), +I2C_DEV_ID(qfx5210_64x_port22), +I2C_DEV_ID(qfx5210_64x_port23), +I2C_DEV_ID(qfx5210_64x_port24), +I2C_DEV_ID(qfx5210_64x_port25), +I2C_DEV_ID(qfx5210_64x_port26), +I2C_DEV_ID(qfx5210_64x_port27), +I2C_DEV_ID(qfx5210_64x_port28), +I2C_DEV_ID(qfx5210_64x_port29), +I2C_DEV_ID(qfx5210_64x_port30), +I2C_DEV_ID(qfx5210_64x_port31), +I2C_DEV_ID(qfx5210_64x_port32), +I2C_DEV_ID(qfx5210_64x_port33), +I2C_DEV_ID(qfx5210_64x_port34), +I2C_DEV_ID(qfx5210_64x_port35), +I2C_DEV_ID(qfx5210_64x_port36), +I2C_DEV_ID(qfx5210_64x_port37), +I2C_DEV_ID(qfx5210_64x_port38), +I2C_DEV_ID(qfx5210_64x_port39), +I2C_DEV_ID(qfx5210_64x_port40), +I2C_DEV_ID(qfx5210_64x_port41), +I2C_DEV_ID(qfx5210_64x_port42), +I2C_DEV_ID(qfx5210_64x_port43), +I2C_DEV_ID(qfx5210_64x_port44), +I2C_DEV_ID(qfx5210_64x_port45), +I2C_DEV_ID(qfx5210_64x_port46), +I2C_DEV_ID(qfx5210_64x_port47), +I2C_DEV_ID(qfx5210_64x_port48), +I2C_DEV_ID(qfx5210_64x_port49), +I2C_DEV_ID(qfx5210_64x_port50), +I2C_DEV_ID(qfx5210_64x_port51), +I2C_DEV_ID(qfx5210_64x_port52), +I2C_DEV_ID(qfx5210_64x_port53), +I2C_DEV_ID(qfx5210_64x_port54), +I2C_DEV_ID(qfx5210_64x_port55), +I2C_DEV_ID(qfx5210_64x_port56), +I2C_DEV_ID(qfx5210_64x_port57), +I2C_DEV_ID(qfx5210_64x_port58), +I2C_DEV_ID(qfx5210_64x_port59), +I2C_DEV_ID(qfx5210_64x_port60), +I2C_DEV_ID(qfx5210_64x_port61), +I2C_DEV_ID(qfx5210_64x_port62), +I2C_DEV_ID(qfx5210_64x_port63), +I2C_DEV_ID(qfx5210_64x_port64), +{ /* LIST END */ } +}; +MODULE_DEVICE_TABLE(i2c, sfp_device_id); +/* Platform dependent --- */ + +enum driver_type_e { + DRIVER_TYPE_SFP_MSA, + DRIVER_TYPE_SFP_DDM, + DRIVER_TYPE_QSFP, + DRIVER_TYPE_XFP +}; + +/* Each client has this additional data + */ +struct eeprom_data { + char valid; /* !=0 if registers are valid */ + unsigned long last_updated; /* In jiffies */ + struct bin_attribute bin; /* eeprom data */ +}; + +struct qsfp_data { + char valid; /* !=0 if registers are valid */ + unsigned long last_updated; /* In jiffies */ + u8 status[3]; /* bit0:port0, bit1:port1 and so on */ + /* index 0 => tx_fail + 1 => tx_disable + 2 => rx_loss */ + u8 device_id; + struct eeprom_data eeprom; +}; + +struct sfp_port_data { + struct mutex update_lock; + enum driver_type_e driver_type; + int port; /* CPLD port index */ + u64 present; /* present status, bit0:port0, bit1:port1 and so on */ + + struct qsfp_data *qsfp; + + struct i2c_client *client; +#if (MULTIPAGE_SUPPORT == 1) + int use_smbus; + u8 *writebuf; + unsigned write_max; +#endif +}; + +#if (MULTIPAGE_SUPPORT == 1) +static ssize_t sfp_port_read_write(struct sfp_port_data *port_data, + char *buf, loff_t off, size_t len, qsfp_opcode_e opcode); +#endif +static ssize_t show_port_number(struct device *dev, struct device_attribute *da, + char *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + struct sfp_port_data *data = i2c_get_clientdata(client); + return sprintf(buf, "%d\n", CPLD_PORT_TO_FRONT_PORT(data->port)); +} + +/* Platform dependent +++ */ +static struct sfp_port_data *sfp_update_present(struct i2c_client *client) +{ + struct sfp_port_data *data = i2c_get_clientdata(client); + int i = 0; + int status = -1; + u8 regs[] = {0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77}; + + DEBUG_PRINT("Starting sfp present status update"); + mutex_lock(&data->update_lock); + + /* Read present status of port 1~64 */ + data->present = 0; + + for (i = 0; i < ARRAY_SIZE(regs); i++) { + status = juniper_i2c_cpld_read(0x60, regs[i]); + + if (status < 0) { + DEBUG_PRINT("cpld(0x60) reg(0x%x) err %d", regs[i], status); + goto exit; + } + + DEBUG_PRINT("Present status = 0x%lx", data->present); + data->present |= (u64)status << (i*8); + } + + DEBUG_PRINT("Present status = 0x%lx", data->present); +exit: + mutex_unlock(&data->update_lock); + return (status < 0) ? ERR_PTR(status) : data; +} + +/* Platform dependent --- */ + +static int sfp_is_port_present(struct i2c_client *client, int port) +{ + struct sfp_port_data *data = i2c_get_clientdata(client); + + data = sfp_update_present(client); + if (IS_ERR(data)) { + return PTR_ERR(data); + } + + return (data->present & BIT_INDEX(data->port)) ? 0 : 1; /* Platform dependent */ +} + +/* Platform dependent +++ */ +static ssize_t show_present(struct device *dev, struct device_attribute *da, + char *buf) +{ + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct i2c_client *client = to_i2c_client(dev); + + if (PRESENT_ALL == attr->index) { + int i; + u8 values[8] = {0}; + struct sfp_port_data *data = sfp_update_present(client); + + if (IS_ERR(data)) { + return PTR_ERR(data); + } + + for (i = 0; i < ARRAY_SIZE(values); i++) { + values[i] = ~(u8)(data->present >> (i * 8)); + } + + /* Return values 1 -> 64 in order */ + return sprintf(buf, "%.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x\n", + values[0], values[1], values[2], values[3], + values[4], values[5], values[6], values[7]); + } + else { + struct sfp_port_data *data = i2c_get_clientdata(client); + int present = sfp_is_port_present(client, data->port); + + if (IS_ERR_VALUE(present)) { + return present; + } + + /* PRESENT */ + return sprintf(buf, "%d\n", present); + } +} +/* Platform dependent --- */ + +static struct sfp_port_data *qsfp_update_tx_rx_status(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct sfp_port_data *data = i2c_get_clientdata(client); + int i, status = -1; + u8 buf = 0; + u8 reg[] = {SFF8436_TX_FAULT_ADDR, SFF8436_TX_DISABLE_ADDR, SFF8436_RX_LOS_ADDR}; + + if (time_before(jiffies, data->qsfp->last_updated + HZ + HZ / 2) && data->qsfp->valid) { + return data; + } + + DEBUG_PRINT("Starting sfp tx rx status update"); + mutex_lock(&data->update_lock); + data->qsfp->valid = 0; + memset(data->qsfp->status, 0, sizeof(data->qsfp->status)); + + /* Notify device to update tx fault/ tx disable/ rx los status */ + for (i = 0; i < ARRAY_SIZE(reg); i++) { + status = sfp_eeprom_read(client, reg[i], &buf, sizeof(buf)); + if (unlikely(status < 0)) { + goto exit; + } + } + msleep(200); + + /* Read actual tx fault/ tx disable/ rx los status */ + for (i = 0; i < ARRAY_SIZE(reg); i++) { + status = sfp_eeprom_read(client, reg[i], &buf, sizeof(buf)); + if (unlikely(status < 0)) { + goto exit; + } + + DEBUG_PRINT("qsfp reg(0x%x) status = (0x%x)", reg[i], data->qsfp->status[i]); + data->qsfp->status[i] = (buf & 0xF); + } + + data->qsfp->valid = 1; + data->qsfp->last_updated = jiffies; + +exit: + mutex_unlock(&data->update_lock); + return (status < 0) ? ERR_PTR(status) : data; +} + +static ssize_t qsfp_show_tx_rx_status(struct device *dev, struct device_attribute *da, + char *buf) +{ + int present; + u8 val = 0; + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct i2c_client *client = to_i2c_client(dev); + struct sfp_port_data *data = i2c_get_clientdata(client); + + present = sfp_is_port_present(client, data->port); + if (IS_ERR_VALUE(present)) { + return present; + } + + if (present == 0) { + /* port is not present */ + return -ENXIO; + } + + data = qsfp_update_tx_rx_status(dev); + if (IS_ERR(data)) { + return PTR_ERR(data); + } + + switch (attr->index) { + case TX_FAULT: + val = !!(data->qsfp->status[2] & 0xF); + break; + case TX_FAULT1: + case TX_FAULT2: + case TX_FAULT3: + case TX_FAULT4: + val = !!(data->qsfp->status[2] & BIT_INDEX(attr->index - TX_FAULT1)); + break; + case TX_DISABLE: + val = data->qsfp->status[1] & 0xF; + break; + case TX_DISABLE1: + case TX_DISABLE2: + case TX_DISABLE3: + case TX_DISABLE4: + val = !!(data->qsfp->status[1] & BIT_INDEX(attr->index - TX_DISABLE1)); + break; + case RX_LOS: + val = !!(data->qsfp->status[0] & 0xF); + break; + case RX_LOS1: + case RX_LOS2: + case RX_LOS3: + case RX_LOS4: + val = !!(data->qsfp->status[0] & BIT_INDEX(attr->index - RX_LOS1)); + break; + default: + break; + } + + return sprintf(buf, "%d\n", val); +} + +static ssize_t qsfp_set_tx_disable(struct device *dev, struct device_attribute *da, + const char *buf, size_t count) +{ + long disable; + int status; + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct i2c_client *client = to_i2c_client(dev); + struct sfp_port_data *data = i2c_get_clientdata(client); + + status = sfp_is_port_present(client, data->port); + if (IS_ERR_VALUE(status)) { + return status; + } + + if (!status) { + /* port is not present */ + return -ENXIO; + } + + status = kstrtol(buf, 10, &disable); + if (status) { + return status; + } + + data = qsfp_update_tx_rx_status(dev); + if (IS_ERR(data)) { + return PTR_ERR(data); + } + + mutex_lock(&data->update_lock); + + if (attr->index == TX_DISABLE) { + if (disable) { + data->qsfp->status[1] |= 0xF; + } + else { + data->qsfp->status[1] &= ~0xF; + } + } + else {/* TX_DISABLE1 ~ TX_DISABLE4*/ + if (disable) { + data->qsfp->status[1] |= (1 << (attr->index - TX_DISABLE1)); + } + else { + data->qsfp->status[1] &= ~(1 << (attr->index - TX_DISABLE1)); + } + } + + DEBUG_PRINT("index = (%d), status = (0x%x)", attr->index, data->qsfp->status[1]); + status = sfp_eeprom_write(data->client, SFF8436_TX_DISABLE_ADDR, &data->qsfp->status[1], sizeof(data->qsfp->status[1])); + if (unlikely(status < 0)) { + count = status; + } + + mutex_unlock(&data->update_lock); + return count; +} + +static ssize_t sfp_eeprom_write(struct i2c_client *client, u8 command, const char *data, + int data_len) +{ +#if USE_I2C_BLOCK_READ + int status, retry = I2C_RW_RETRY_COUNT; + + if (data_len > I2C_SMBUS_BLOCK_MAX) { + data_len = I2C_SMBUS_BLOCK_MAX; + } + + while (retry) { + status = i2c_smbus_write_i2c_block_data(client, command, data_len, data); + if (unlikely(status < 0)) { + msleep(I2C_RW_RETRY_INTERVAL); + retry--; + continue; + } + + break; + } + + if (unlikely(status < 0)) { + return status; + } + + return data_len; +#else + int status, retry = I2C_RW_RETRY_COUNT; + + while (retry) { + status = i2c_smbus_write_byte_data(client, command, *data); + if (unlikely(status < 0)) { + msleep(I2C_RW_RETRY_INTERVAL); + retry--; + continue; + } + + break; + } + + if (unlikely(status < 0)) { + return status; + } + + return 1; +#endif + + +} + +#if (MULTIPAGE_SUPPORT == 0) +static ssize_t sfp_port_write(struct sfp_port_data *data, + const char *buf, loff_t off, size_t count) +{ + ssize_t retval = 0; + + if (unlikely(!count)) { + return count; + } + + /* + * Write data to chip, protecting against concurrent updates + * from this host, but not from other I2C masters. + */ + mutex_lock(&data->update_lock); + + while (count) { + ssize_t status; + + status = sfp_eeprom_write(data->client, off, buf, count); + if (status <= 0) { + if (retval == 0) { + retval = status; + } + break; + } + buf += status; + off += status; + count -= status; + retval += status; + } + + mutex_unlock(&data->update_lock); + return retval; +} +#endif + +static ssize_t sfp_bin_write(struct file *filp, struct kobject *kobj, + struct bin_attribute *attr, + char *buf, loff_t off, size_t count) +{ + int present; + struct sfp_port_data *data; + DEBUG_PRINT("%s(%d) offset = (%d), count = (%d)", off, count); + data = dev_get_drvdata(container_of(kobj, struct device, kobj)); + + present = sfp_is_port_present(data->client, data->port); + if (IS_ERR_VALUE(present)) { + return present; + } + + if (present == 0) { + /* port is not present */ + return -ENODEV; + } + +#if (MULTIPAGE_SUPPORT == 1) + return sfp_port_read_write(data, buf, off, count, QSFP_WRITE_OP); +#else + return sfp_port_write(data, buf, off, count); +#endif +} + +static ssize_t sfp_eeprom_read(struct i2c_client *client, u8 command, u8 *data, + int data_len) +{ +#if USE_I2C_BLOCK_READ + int status, retry = I2C_RW_RETRY_COUNT; + + if (data_len > I2C_SMBUS_BLOCK_MAX) { + data_len = I2C_SMBUS_BLOCK_MAX; + } + + while (retry) { + status = i2c_smbus_read_i2c_block_data(client, command, data_len, data); + if (unlikely(status < 0)) { + msleep(I2C_RW_RETRY_INTERVAL); + retry--; + continue; + } + + break; + } + + if (unlikely(status < 0)) { + goto abort; + } + if (unlikely(status != data_len)) { + status = -EIO; + goto abort; + } + + //result = data_len; + +abort: + return status; +#else + int status, retry = I2C_RW_RETRY_COUNT; + + while (retry) { + status = i2c_smbus_read_byte_data(client, command); + if (unlikely(status < 0)) { + msleep(I2C_RW_RETRY_INTERVAL); + retry--; + continue; + } + + break; + } + + if (unlikely(status < 0)) { + dev_dbg(&client->dev, "sfp read byte data failed, command(0x%2x), data(0x%2x)\r\n", command, status); + goto abort; + } + + *data = (u8)status; + status = 1; + +abort: + return status; +#endif +} + +#if (MULTIPAGE_SUPPORT == 1) +/*-------------------------------------------------------------------------*/ +/* + * This routine computes the addressing information to be used for + * a given r/w request. + * + * Task is to calculate the client (0 = i2c addr 50, 1 = i2c addr 51), + * the page, and the offset. + * + * Handles both SFP and QSFP. + * For SFP, offset 0-255 are on client[0], >255 is on client[1] + * Offset 256-383 are on the lower half of client[1] + * Pages are accessible on the upper half of client[1]. + * Offset >383 are in 128 byte pages mapped into the upper half + * + * For QSFP, all offsets are on client[0] + * offset 0-127 are on the lower half of client[0] (no paging) + * Pages are accessible on the upper half of client[1]. + * Offset >127 are in 128 byte pages mapped into the upper half + * + * Callers must not read/write beyond the end of a client or a page + * without recomputing the client/page. Hence offset (within page) + * plus length must be less than or equal to 128. (Note that this + * routine does not have access to the length of the call, hence + * cannot do the validity check.) + * + * Offset within Lower Page 00h and Upper Page 00h are not recomputed + */ +static uint8_t sff_8436_translate_offset(struct sfp_port_data *port_data, + loff_t *offset, struct i2c_client **client) +{ + unsigned page = 0; + + *client = port_data->client; + + /* + * if offset is in the range 0-128... + * page doesn't matter (using lower half), return 0. + * offset is already correct (don't add 128 to get to paged area) + */ + if (*offset < SFF_8436_PAGE_SIZE) + return page; + + /* note, page will always be positive since *offset >= 128 */ + page = (*offset >> 7)-1; + /* 0x80 places the offset in the top half, offset is last 7 bits */ + *offset = SFF_8436_PAGE_SIZE + (*offset & 0x7f); + + return page; /* note also returning client and offset */ +} + +static ssize_t sff_8436_eeprom_read(struct sfp_port_data *port_data, + struct i2c_client *client, + char *buf, unsigned offset, size_t count) +{ + struct i2c_msg msg[2]; + u8 msgbuf[2]; + unsigned long timeout, read_time; + int status, i; + + memset(msg, 0, sizeof(msg)); + + switch (port_data->use_smbus) { + case I2C_SMBUS_I2C_BLOCK_DATA: + /*smaller eeproms can work given some SMBus extension calls */ + if (count > I2C_SMBUS_BLOCK_MAX) + count = I2C_SMBUS_BLOCK_MAX; + break; + case I2C_SMBUS_WORD_DATA: + /* Check for odd length transaction */ + count = (count == 1) ? 1 : 2; + break; + case I2C_SMBUS_BYTE_DATA: + count = 1; + break; + default: + /* + * When we have a better choice than SMBus calls, use a + * combined I2C message. Write address; then read up to + * io_limit data bytes. msgbuf is u8 and will cast to our + * needs. + */ + i = 0; + msgbuf[i++] = offset; + + msg[0].addr = client->addr; + msg[0].buf = msgbuf; + msg[0].len = i; + + msg[1].addr = client->addr; + msg[1].flags = I2C_M_RD; + msg[1].buf = buf; + msg[1].len = count; + } + + /* + * Reads fail if the previous write didn't complete yet. We may + * loop a few times until this one succeeds, waiting at least + * long enough for one entire page write to work. + */ + timeout = jiffies + msecs_to_jiffies(write_timeout); + do { + read_time = jiffies; + + switch (port_data->use_smbus) { + case I2C_SMBUS_I2C_BLOCK_DATA: + status = i2c_smbus_read_i2c_block_data(client, offset, + count, buf); + break; + case I2C_SMBUS_WORD_DATA: + status = i2c_smbus_read_word_data(client, offset); + if (status >= 0) { + buf[0] = status & 0xff; + if (count == 2) + buf[1] = status >> 8; + status = count; + } + break; + case I2C_SMBUS_BYTE_DATA: + status = i2c_smbus_read_byte_data(client, offset); + if (status >= 0) { + buf[0] = status; + status = count; + } + break; + default: + status = i2c_transfer(client->adapter, msg, 2); + if (status == 2) + status = count; + } + + dev_dbg(&client->dev, "eeprom read %zu@%d --> %d (%ld)\n", + count, offset, status, jiffies); + + if (status == count) /* happy path */ + return count; + + if (status == -ENXIO) /* no module present */ + return status; + + /* REVISIT: at HZ=100, this is sloooow */ + msleep(1); + } while (time_before(read_time, timeout)); + + return -ETIMEDOUT; +} + +static ssize_t sff_8436_eeprom_write(struct sfp_port_data *port_data, + struct i2c_client *client, + const char *buf, + unsigned offset, size_t count) +{ + struct i2c_msg msg; + ssize_t status; + unsigned long timeout, write_time; + unsigned next_page_start; + int i = 0; + + /* write max is at most a page + * (In this driver, write_max is actually one byte!) + */ + if (count > port_data->write_max) + count = port_data->write_max; + + /* shorten count if necessary to avoid crossing page boundary */ + next_page_start = roundup(offset + 1, SFF_8436_PAGE_SIZE); + if (offset + count > next_page_start) + count = next_page_start - offset; + + switch (port_data->use_smbus) { + case I2C_SMBUS_I2C_BLOCK_DATA: + /*smaller eeproms can work given some SMBus extension calls */ + if (count > I2C_SMBUS_BLOCK_MAX) + count = I2C_SMBUS_BLOCK_MAX; + break; + case I2C_SMBUS_WORD_DATA: + /* Check for odd length transaction */ + count = (count == 1) ? 1 : 2; + break; + case I2C_SMBUS_BYTE_DATA: + count = 1; + break; + default: + /* If we'll use I2C calls for I/O, set up the message */ + msg.addr = client->addr; + msg.flags = 0; + + /* msg.buf is u8 and casts will mask the values */ + msg.buf = port_data->writebuf; + + msg.buf[i++] = offset; + memcpy(&msg.buf[i], buf, count); + msg.len = i + count; + break; + } + + /* + * Reads fail if the previous write didn't complete yet. We may + * loop a few times until this one succeeds, waiting at least + * long enough for one entire page write to work. + */ + timeout = jiffies + msecs_to_jiffies(write_timeout); + do { + write_time = jiffies; + + switch (port_data->use_smbus) { + case I2C_SMBUS_I2C_BLOCK_DATA: + status = i2c_smbus_write_i2c_block_data(client, + offset, count, buf); + if (status == 0) + status = count; + break; + case I2C_SMBUS_WORD_DATA: + if (count == 2) { + status = i2c_smbus_write_word_data(client, + offset, (u16)((buf[0])|(buf[1] << 8))); + } else { + /* count = 1 */ + status = i2c_smbus_write_byte_data(client, + offset, buf[0]); + } + if (status == 0) + status = count; + break; + case I2C_SMBUS_BYTE_DATA: + status = i2c_smbus_write_byte_data(client, offset, + buf[0]); + if (status == 0) + status = count; + break; + default: + status = i2c_transfer(client->adapter, &msg, 1); + if (status == 1) + status = count; + break; + } + + dev_dbg(&client->dev, "eeprom write %zu@%d --> %ld (%lu)\n", + count, offset, (long int) status, jiffies); + + if (status == count) + return count; + + /* REVISIT: at HZ=100, this is sloooow */ + msleep(1); + } while (time_before(write_time, timeout)); + + return -ETIMEDOUT; +} + + +static ssize_t sff_8436_eeprom_update_client(struct sfp_port_data *port_data, + char *buf, loff_t off, + size_t count, qsfp_opcode_e opcode) +{ + struct i2c_client *client; + ssize_t retval = 0; + u8 page = 0; + loff_t phy_offset = off; + int ret = 0; + + page = sff_8436_translate_offset(port_data, &phy_offset, &client); + + dev_dbg(&client->dev, + "sff_8436_eeprom_update_client off %lld page:%d phy_offset:%lld, count:%ld, opcode:%d\n", + off, page, phy_offset, (long int) count, opcode); + if (page > 0) { + ret = sff_8436_eeprom_write(port_data, client, &page, + SFF_8436_PAGE_SELECT_REG, 1); + if (ret < 0) { + dev_dbg(&client->dev, + "Write page register for page %d failed ret:%d!\n", + page, ret); + return ret; + } + } + + while (count) { + ssize_t status; + + if (opcode == QSFP_READ_OP) { + status = sff_8436_eeprom_read(port_data, client, + buf, phy_offset, count); + } else { + status = sff_8436_eeprom_write(port_data, client, + buf, phy_offset, count); + } + if (status <= 0) { + if (retval == 0) + retval = status; + break; + } + buf += status; + phy_offset += status; + count -= status; + retval += status; + } + + + if (page > 0) { + /* return the page register to page 0 (why?) */ + page = 0; + ret = sff_8436_eeprom_write(port_data, client, &page, + SFF_8436_PAGE_SELECT_REG, 1); + if (ret < 0) { + dev_err(&client->dev, + "Restore page register to page %d failed ret:%d!\n", + page, ret); + return ret; + } + } + return retval; +} + + +/* + * Figure out if this access is within the range of supported pages. + * Note this is called on every access because we don't know if the + * module has been replaced since the last call. + * If/when modules support more pages, this is the routine to update + * to validate and allow access to additional pages. + * + * Returns updated len for this access: + * - entire access is legal, original len is returned. + * - access begins legal but is too long, len is truncated to fit. + * - initial offset exceeds supported pages, return -EINVAL + */ +static ssize_t sff_8436_page_legal(struct sfp_port_data *port_data, + loff_t off, size_t len) +{ + struct i2c_client *client = port_data->client; + u8 regval; + int status; + size_t maxlen; + + if (off < 0) return -EINVAL; + if (port_data->driver_type == DRIVER_TYPE_SFP_MSA) { + /* SFP case */ + /* if no pages needed, we're good */ + if ((off + len) <= SFF_8472_EEPROM_UNPAGED_SIZE) return len; + /* if offset exceeds possible pages, we're not good */ + if (off >= SFF_8472_EEPROM_SIZE) return -EINVAL; + /* in between, are pages supported? */ + status = sff_8436_eeprom_read(port_data, client, ®val, + SFF_8472_PAGEABLE_REG, 1); + if (status < 0) return status; /* error out (no module?) */ + if (regval & SFF_8472_PAGEABLE) { + /* Pages supported, trim len to the end of pages */ + maxlen = SFF_8472_EEPROM_SIZE - off; + } else { + /* pages not supported, trim len to unpaged size */ + maxlen = SFF_8472_EEPROM_UNPAGED_SIZE - off; + } + len = (len > maxlen) ? maxlen : len; + dev_dbg(&client->dev, + "page_legal, SFP, off %lld len %ld\n", + off, (long int) len); + } + else if (port_data->driver_type == DRIVER_TYPE_QSFP || + port_data->driver_type == DRIVER_TYPE_XFP) { + /* QSFP case */ + /* if no pages needed, we're good */ + if ((off + len) <= SFF_8436_EEPROM_UNPAGED_SIZE) return len; + /* if offset exceeds possible pages, we're not good */ + if (off >= SFF_8436_EEPROM_SIZE) return -EINVAL; + /* in between, are pages supported? */ + status = sff_8436_eeprom_read(port_data, client, ®val, + SFF_8436_PAGEABLE_REG, 1); + if (status < 0) return status; /* error out (no module?) */ + if (regval & SFF_8436_NOT_PAGEABLE) { + /* pages not supported, trim len to unpaged size */ + maxlen = SFF_8436_EEPROM_UNPAGED_SIZE - off; + } else { + /* Pages supported, trim len to the end of pages */ + maxlen = SFF_8436_EEPROM_SIZE - off; + } + len = (len > maxlen) ? maxlen : len; + dev_dbg(&client->dev, + "page_legal, QSFP, off %lld len %ld\n", + off, (long int) len); + } + else { + return -EINVAL; + } + return len; +} + + +static ssize_t sfp_port_read_write(struct sfp_port_data *port_data, + char *buf, loff_t off, size_t len, qsfp_opcode_e opcode) +{ + struct i2c_client *client = port_data->client; + int chunk; + int status = 0; + ssize_t retval; + size_t pending_len = 0, chunk_len = 0; + loff_t chunk_offset = 0, chunk_start_offset = 0; + + if (unlikely(!len)) + return len; + + /* + * Read data from chip, protecting against concurrent updates + * from this host, but not from other I2C masters. + */ + mutex_lock(&port_data->update_lock); + + /* + * Confirm this access fits within the device suppored addr range + */ + len = sff_8436_page_legal(port_data, off, len); + if (len < 0) { + status = len; + goto err; + } + + /* + * For each (128 byte) chunk involved in this request, issue a + * separate call to sff_eeprom_update_client(), to + * ensure that each access recalculates the client/page + * and writes the page register as needed. + * Note that chunk to page mapping is confusing, is different for + * QSFP and SFP, and never needs to be done. Don't try! + */ + pending_len = len; /* amount remaining to transfer */ + retval = 0; /* amount transferred */ + for (chunk = off >> 7; chunk <= (off + len - 1) >> 7; chunk++) { + + /* + * Compute the offset and number of bytes to be read/write + * + * 1. start at offset 0 (within the chunk), and read/write + * the entire chunk + * 2. start at offset 0 (within the chunk) and read/write less + * than entire chunk + * 3. start at an offset not equal to 0 and read/write the rest + * of the chunk + * 4. start at an offset not equal to 0 and read/write less than + * (end of chunk - offset) + */ + chunk_start_offset = chunk * SFF_8436_PAGE_SIZE; + + if (chunk_start_offset < off) { + chunk_offset = off; + if ((off + pending_len) < (chunk_start_offset + + SFF_8436_PAGE_SIZE)) + chunk_len = pending_len; + else + chunk_len = (chunk+1)*SFF_8436_PAGE_SIZE - off;/*SFF_8436_PAGE_SIZE - off;*/ + } else { + chunk_offset = chunk_start_offset; + if (pending_len > SFF_8436_PAGE_SIZE) + chunk_len = SFF_8436_PAGE_SIZE; + else + chunk_len = pending_len; + } + + dev_dbg(&client->dev, + "sff_r/w: off %lld, len %ld, chunk_start_offset %lld, chunk_offset %lld, chunk_len %ld, pending_len %ld\n", + off, (long int) len, chunk_start_offset, chunk_offset, + (long int) chunk_len, (long int) pending_len); + + /* + * note: chunk_offset is from the start of the EEPROM, + * not the start of the chunk + */ + status = sff_8436_eeprom_update_client(port_data, buf, + chunk_offset, chunk_len, opcode); + if (status != chunk_len) { + /* This is another 'no device present' path */ + dev_dbg(&client->dev, + "sff_8436_update_client for chunk %d chunk_offset %lld chunk_len %ld failed %d!\n", + chunk, chunk_offset, (long int) chunk_len, status); + goto err; + } + buf += status; + pending_len -= status; + retval += status; + } + mutex_unlock(&port_data->update_lock); + + return retval; + +err: + mutex_unlock(&port_data->update_lock); + + return status; +} + +#else +static ssize_t sfp_port_read(struct sfp_port_data *data, + char *buf, loff_t off, size_t count) +{ + ssize_t retval = 0; + + if (unlikely(!count)) { + DEBUG_PRINT("Count = 0, return"); + return count; + } + + /* + * Read data from chip, protecting against concurrent updates + * from this host, but not from other I2C masters. + */ + mutex_lock(&data->update_lock); + + while (count) { + ssize_t status; + + status = sfp_eeprom_read(data->client, off, buf, count); + if (status <= 0) { + if (retval == 0) { + retval = status; + } + break; + } + + buf += status; + off += status; + count -= status; + retval += status; + } + + mutex_unlock(&data->update_lock); + return retval; + +} +#endif + +static ssize_t sfp_bin_read(struct file *filp, struct kobject *kobj, + struct bin_attribute *attr, + char *buf, loff_t off, size_t count) +{ + int present; + struct sfp_port_data *data; + DEBUG_PRINT("offset = (%d), count = (%d)", off, count); + + data = dev_get_drvdata(container_of(kobj, struct device, kobj)); + present = sfp_is_port_present(data->client, data->port); + if (IS_ERR_VALUE(present)) { + return present; + } + + if (present == 0) { + /* port is not present */ + return -ENODEV; + } + +#if (MULTIPAGE_SUPPORT == 1) + return sfp_port_read_write(data, buf, off, count, QSFP_READ_OP); +#else + return sfp_port_read(data, buf, off, count); +#endif +} + +#if (MULTIPAGE_SUPPORT == 1) +static int sfp_sysfs_eeprom_init(struct kobject *kobj, struct bin_attribute *eeprom, size_t size) +#else +static int sfp_sysfs_eeprom_init(struct kobject *kobj, struct bin_attribute *eeprom) +#endif +{ + int err; + + sysfs_bin_attr_init(eeprom); + eeprom->attr.name = EEPROM_NAME; + eeprom->attr.mode = S_IWUSR | S_IRUGO; + eeprom->read = sfp_bin_read; + eeprom->write = sfp_bin_write; +#if (MULTIPAGE_SUPPORT == 1) + eeprom->size = size; +#else + eeprom->size = EEPROM_SIZE; +#endif + + /* Create eeprom file */ + err = sysfs_create_bin_file(kobj, eeprom); + if (err) { + return err; + } + + return 0; +} + +static int sfp_sysfs_eeprom_cleanup(struct kobject *kobj, struct bin_attribute *eeprom) +{ + sysfs_remove_bin_file(kobj, eeprom); + return 0; +} + + +#if (MULTIPAGE_SUPPORT == 0) +static int sfp_i2c_check_functionality(struct i2c_client *client) +{ +#if USE_I2C_BLOCK_READ + return i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_I2C_BLOCK); +#else + return i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA); +#endif +} +#endif + + +static const struct attribute_group qsfp_group = { + .attrs = qsfp_attributes, +}; + +static int qsfp_probe(struct i2c_client *client, const struct i2c_device_id *dev_id, + struct qsfp_data **data) +{ + int status; + struct qsfp_data *qsfp; + +#if (MULTIPAGE_SUPPORT == 0) + if (!sfp_i2c_check_functionality(client)) { + status = -EIO; + goto exit; + } +#endif + + qsfp = kzalloc(sizeof(struct qsfp_data), GFP_KERNEL); + if (!qsfp) { + status = -ENOMEM; + goto exit; + } + + /* Register sysfs hooks */ + status = sysfs_create_group(&client->dev.kobj, &qsfp_group); + if (status) { + goto exit_free; + } + + /* init eeprom */ +#if (MULTIPAGE_SUPPORT == 1) + status = sfp_sysfs_eeprom_init(&client->dev.kobj, &qsfp->eeprom.bin, SFF_8436_EEPROM_SIZE); +#else + status = sfp_sysfs_eeprom_init(&client->dev.kobj, &qsfp->eeprom.bin); +#endif + if (status) { + goto exit_remove; + } + + *data = qsfp; + dev_info(&client->dev, "qsfp '%s'\n", client->name); + + return 0; + +exit_remove: + sysfs_remove_group(&client->dev.kobj, &qsfp_group); +exit_free: + kfree(qsfp); +exit: + + return status; +} + +/* Platform dependent +++ */ +static int sfp_device_probe(struct i2c_client *client, + const struct i2c_device_id *dev_id) +{ + int ret = 0; + struct sfp_port_data *data = NULL; + + if (client->addr != SFP_EEPROM_A0_I2C_ADDR) { + return -ENODEV; + } + + if (dev_id->driver_data < qfx5210_64x_port1 || dev_id->driver_data > qfx5210_64x_port64) { + return -ENXIO; + } + + data = kzalloc(sizeof(struct sfp_port_data), GFP_KERNEL); + if (!data) { + return -ENOMEM; + } + +#if (MULTIPAGE_SUPPORT == 1) + data->use_smbus = 0; + + /* Use I2C operations unless we're stuck with SMBus extensions. */ + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + if (i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_READ_I2C_BLOCK)) { + data->use_smbus = I2C_SMBUS_I2C_BLOCK_DATA; + } else if (i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_READ_WORD_DATA)) { + data->use_smbus = I2C_SMBUS_WORD_DATA; + } else if (i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_READ_BYTE_DATA)) { + data->use_smbus = I2C_SMBUS_BYTE_DATA; + } else { + ret = -EPFNOSUPPORT; + goto exit_kfree; + } + } + + if (!data->use_smbus || + (i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_WRITE_I2C_BLOCK)) || + i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_WRITE_WORD_DATA) || + i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_WRITE_BYTE_DATA)) { + /* + * NOTE: AN-2079 + * Finisar recommends that the host implement 1 byte writes + * only since this module only supports 32 byte page boundaries. + * 2 byte writes are acceptable for PE and Vout changes per + * Application Note AN-2071. + */ + unsigned write_max = 1; + + if (write_max > io_limit) + write_max = io_limit; + if (data->use_smbus && write_max > I2C_SMBUS_BLOCK_MAX) + write_max = I2C_SMBUS_BLOCK_MAX; + data->write_max = write_max; + + /* buffer (data + address at the beginning) */ + data->writebuf = kmalloc(write_max + 2, GFP_KERNEL); + if (!data->writebuf) { + ret = -ENOMEM; + goto exit_kfree; + } + } else { + dev_warn(&client->dev, + "cannot write due to controller restrictions."); + } + + if (data->use_smbus == I2C_SMBUS_WORD_DATA || + data->use_smbus == I2C_SMBUS_BYTE_DATA) { + dev_notice(&client->dev, "Falling back to %s reads, " + "performance will suffer\n", data->use_smbus == + I2C_SMBUS_WORD_DATA ? "word" : "byte"); + } +#endif + + i2c_set_clientdata(client, data); + mutex_init(&data->update_lock); + data->port = dev_id->driver_data; + data->client = client; + data->driver_type = DRIVER_TYPE_QSFP; + + ret = qsfp_probe(client, dev_id, &data->qsfp); + if (ret < 0) { + goto exit_kfree_buf; + } + + return ret; + +exit_kfree_buf: +#if (MULTIPAGE_SUPPORT == 1) + if (data->writebuf) kfree(data->writebuf); +#endif + +exit_kfree: + kfree(data); + return ret; +} +/* Platform dependent --- */ + +static int qsfp_remove(struct i2c_client *client, struct qsfp_data *data) +{ + sfp_sysfs_eeprom_cleanup(&client->dev.kobj, &data->eeprom.bin); + sysfs_remove_group(&client->dev.kobj, &qsfp_group); + kfree(data); + return 0; +} + +static int sfp_device_remove(struct i2c_client *client) +{ + int ret = 0; + struct sfp_port_data *data = i2c_get_clientdata(client); + + if (data->driver_type == DRIVER_TYPE_QSFP) { + ret = qsfp_remove(client, data->qsfp); + } + + kfree(data); + return ret; +} + +/* Addresses scanned + */ +static const unsigned short normal_i2c[] = { I2C_CLIENT_END }; + +static struct i2c_driver sfp_driver = { + .driver = { + .name = DRIVER_NAME, + }, + .probe = sfp_device_probe, + .remove = sfp_device_remove, + .id_table = sfp_device_id, + .address_list = normal_i2c, +}; + +static int __init sfp_init(void) +{ + return i2c_add_driver(&sfp_driver); +} + +static void __exit sfp_exit(void) +{ + i2c_del_driver(&sfp_driver); +} + +MODULE_AUTHOR("Brandon Chuang "); +MODULE_DESCRIPTION("juniper qfx5210_64x_sfp driver"); +MODULE_LICENSE("GPL"); + +module_init(sfp_init); +module_exit(sfp_exit); + diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/ym2651y.c b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/ym2651y.c new file mode 120000 index 0000000000..f4d67640cc --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/modules/ym2651y.c @@ -0,0 +1 @@ +../../common/modules/ym2651y.c \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/service/qfx5210-platform-init.service b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/service/qfx5210-platform-init.service new file mode 100755 index 0000000000..b6a446ec17 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/service/qfx5210-platform-init.service @@ -0,0 +1,13 @@ +[Unit] +Description=Juniper QFX5210 initialization service +Before=pmon.service +After=sysinit.target +DefaultDependencies=no + +[Service] +ExecStartPre=/usr/local/bin/juniper_qfx5210_util.py install +ExecStart=/usr/local/bin/juniper_qfx5210_monitor.py +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/setup.py b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/setup.py new file mode 100755 index 0000000000..536f814a35 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/setup.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python + +import os +import sys +from setuptools import setup +os.listdir + +setup( + name='sonic_platform', + version='1.0', + description='Module to initialize Juniper QFX5210-64X platforms', + + packages=['sonic_platform'], + package_dir={'sonic_platform': 'qfx5210/sonic_platform'}, +) + diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/sonic_platform/__init__.py b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/sonic_platform/__init__.py new file mode 100755 index 0000000000..9e1b2e56b1 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/sonic_platform/__init__.py @@ -0,0 +1 @@ +import platform diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/sonic_platform/chassis.py b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/sonic_platform/chassis.py new file mode 100755 index 0000000000..5d56ef3a0c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/sonic_platform/chassis.py @@ -0,0 +1,149 @@ +#!/usr/bin/env python +# +# Name: chassis.py, version: 1.0 +# +# Description: Module contains the definitions of SONiC platform APIs +# which provide the chassis specific details +# +# Copyright (c) 2019, Juniper Networks, Inc. +# All rights reserved. +# +# Notice and Disclaimer: This code is licensed to you under the GNU General +# Public License as published by the Free Software Foundation, version 3 or +# any later version. This code is not an official Juniper product. You can +# obtain a copy of the License at +# +# OSS License: +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Third-Party Code: This code may depend on other components under separate +# copyright notice and license terms. Your use of the source code for those +# components is subject to the terms and conditions of the respective license +# as noted in the Third-Party source code file. +# + +try: + import os + import commands + import sys + import time + from sonic_platform_base.chassis_base import ChassisBase +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + +class Chassis(ChassisBase): + """ + JUNIPER QFX5210 Platform-specific Chassis class + """ + + # Find the last reboot reason out of following + # CPLD_WATCHDOG_RESET 0x08 + # POWER_ON_RESET 0x20 + # CPU_WATCHDOG_RESET 0x40 + # SOFTWARE_RESET 0x80 + + def __init__(self): + ChassisBase.__init__(self) + + def get_qfx5210_parameter_value(self,parameter_name): + try: + with open("/var/run/qfx5210_eeprom", "r") as file: + for item in file: + content = item.split('=') + if content[0] == parameter_name: + return content[1:] + return "False" + except IOError: + print "Error: File not found" + return "False" + + def get_product_name(self): + product_name_list = self.get_qfx5210_parameter_value('ProductName') + if product_name_list: + product_name = ''.join(product_name_list) + return product_name + else: + return False + + def get_part_number(self): + part_number_list = self.get_qfx5210_parameter_value('PartNumber') + if part_number_list: + part_number = ''.join(part_number_list) + return part_number + else: + return False + + def get_serial_number(self): + serial_number_list = self.get_qfx5210_parameter_value('SerialNumber') + if serial_number_list: + serial_number = ''.join(serial_number_list) + return serial_number + else: + return False + + def get_base_mac(self): + mac_list = self.get_qfx5210_parameter_value('MAC') + if mac_list: + mac = ''.join(mac_list) + return mac + else: + return False + + def get_platform_name(self): + platform_name_list = self.get_qfx5210_parameter_value('PlatformName') + if platform_name_list: + platform_name = ''.join(platform_name_list) + return platform_name + else: + return False + + def get_fan_type(self, fantype_path): + try: + fan_type_file = open(fantype_path) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return "-1" + else: + fan_type = fan_type_file.read() + fan_type_file.close() + return str(fan_type) + + + def get_reboot_cause(self): + """ + Retrieves the cause of the previous reboot + """ + status, last_reboot_reason = commands.getstatusoutput("i2cget -y 0 0x65 0x24") + if (status == 0): + if last_reboot_reason == "0x80": + return (ChassisBase.REBOOT_CAUSE_NON_HARDWARE, None) + elif last_reboot_reason == "0x40" or last_reboot_reason == "0x08": + return (ChassisBase.REBOOT_CAUSE_WATCHDOG, None) + elif last_reboot_reason == "0x20": + return (ChassisBase.REBOOT_CAUSE_POWER_LOSS, None) + else: + return (ChassisBase.REBOOT_CAUSE_HARDWARE_OTHER, "Unknown reason") + else: + time.sleep(3) + status, last_reboot_reason = commands.getstatusoutput("i2cget -y 0 0x65 0x24") + if last_reboot_reason == "0x80": + return (ChassisBase.REBOOT_CAUSE_NON_HARDWARE, None) + elif last_reboot_reason == "0x40" or last_reboot_reason == "0x08": + return (ChassisBase.REBOOT_CAUSE_WATCHDOG, None) + elif last_reboot_reason == "0x20": + return (ChassisBase.REBOOT_CAUSE_POWER_LOSS, None) + else: + return (ChassisBase.REBOOT_CAUSE_HARDWARE_OTHER, "Unknown reason") diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/sonic_platform/platform.py b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/sonic_platform/platform.py new file mode 100755 index 0000000000..5620fec54f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/sonic_platform/platform.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python +# +# Name: platform.py, version: 1.0 +# +# Description: Module contains the definitions of SONiC platform APIs +# which provide the platform specific details +# +# Copyright (c) 2019, Juniper Networks, Inc. +# All rights reserved. +# +# Notice and Disclaimer: This code is licensed to you under the GNU General +# Public License as published by the Free Software Foundation, version 3 or +# any later version. This code is not an official Juniper product. You can +# obtain a copy of the License at +# +# OSS License: +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Third-Party Code: This code may depend on other components under separate +# copyright notice and license terms. Your use of the source code for those +# components is subject to the terms and conditions of the respective license +# as noted in the Third-Party source code file. +# + + +import sys + +try: + from sonic_platform_base.platform_base import PlatformBase +except ImportError as e: + raise ImportError("%s - required module not found" % e) + +platformDict = {'platform':'QFX5210-64C'} + +class Platform(PlatformBase): + def __init__(self): + self.platform = self.getPlatform() + + def getPlatformDict(self): + global platformDict + if platformDict: + return platformDict + + def readPlatformName(self): + return self.getPlatformDict().get('platform') + + def getPlatform(self): + platformCls = self.readPlatformName() + return platformCls + + def get_chassis(self): + from chassis import Chassis + chassis = Chassis() + return chassis + diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/README b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/README new file mode 100755 index 0000000000..490844f213 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/README @@ -0,0 +1,87 @@ + +Copyright (c) 2019, Juniper Networks, Inc. +All rights reserved. + +Front panel LEDs +================ +There are 4 system LEDs in the front panel. Master, System, Alarm, & Beacon. +LED controls can be found under /sys/class/leds. The sysfs interface & +colour mappings are as follows: + +For master LED: /sys/class/leds/master/brightness + 0 => off + 1 => green + +For system LED: /sys/class/leds/system/brightness + 0 => off + 1 => green + +For alarm LED: /sys/class/leds/alarm/brightness + 0 => off + 1 => amber + 2 => red + +For beacon LED: /sys/class/leds/beacon/brightness + 0 => off + 1 => blue + +For any of the above LEDs, max_brightness file can tell the maximum value +accepted. + +System FANs +=========== +There are 4 fans and each of the fan has 2 fan modules. Overall there are +8 fans in the system. + +Fan controls can be found in /sys/bus/i2c/devices/17-0068. All the fans +are controlled by one duty cycle value, ranges from 0 to 100 + +Fan duty cycle can be controlled through /sys/bus/i2c/devices/17-0068/pwm1 + +Fan module presence is given by /sys/bus/i2c/devices/17-0068/fan[1-4]_present +file. A value of '1' indicate that fan is present & a value of '0' otherwise. + +Fan rotation direction is given by /sys/bus/i2c/devices/17-0068/fan[1-4]_direction. +A value of '0' indicate the direction is AFO (Front to back airflow) or Airflow +out. A value of '1' indicate that direction is AFI (Back to front airflow) or +Airflow in. + +Fan speed is given by fan[1-4]_input + +Temperature sensors +=================== +There are 6 temperature sensors. The readings are available in +/sys/bus/i2c/devices/{0}-00{1}/hwmon/hwmon*/temp1_input + +System PSUs +=========== +There are two independent PSUs. These are controlled by a dedicated CPLD. +The status registers are mapped under /sys/bus/i2c/devices/9-0050 and +/sys/bus/i2c/devices/10-0053. + +SFPs +==== +There are 64 QSFP+ modules supported in qfx5210 platform. EEPORMs will be +mapped under /sys/bus/i2c/devices/[25-88]-0050/ sysfs directory + +Sensor details +============== +LM75 supported sensor modules will be available under 'sensors' command. +If you want to get all the sensor data including the SFPs & LEDs, you can +invoke 'sudo juniper_qfx5210_util.py show' + +Platform poweroff +================= +Linux poweroff commands such as 'poweroff', 'shutdown', 'halt', etc. will not +power off qfx5210 platform as there are custom CPLDs control the power off +sequences. Use the command 'sudo platform_poweroff' to power off qfx5210 +platform + +Platform monitoring daemon +========================== +“juniper_qfx5210_monitor.py” is the platform monitoring script. +It implements the qfx5210 EM policy. This script will run as system service +and monitor the temperature sensors in every 20 seconds. Based on the EM +policy thresholds, it controls the fan rpm, manage alarm leds, and +shutdown the box. + diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/juniper_qfx5210_monitor.py b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/juniper_qfx5210_monitor.py new file mode 100755 index 0000000000..a74bce042a --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/juniper_qfx5210_monitor.py @@ -0,0 +1,454 @@ +#!/usr/bin/env python +# +# Name: juniper_qfx5210_monitor.py version: 1.0 +# +# Description: This file contains the EM implementation for qfx5210 platform +# +# Copyright (c) 2019, Juniper Networks, Inc. +# All rights reserved. +# +# Notice and Disclaimer: This code is licensed to you under the GNU General +# Public License as published by the Free Software Foundation, version 3 or +# any later version. This code is not an official Juniper product. You can +# obtain a copy of the License at +# +# OSS License: +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Third-Party Code: This code may depend on other components under separate +# copyright notice and license terms. Your use of the source code for those +# components is subject to the terms and conditions of the respective license +# as noted in the Third-Party source code file. + +try: + import os + import commands + import sys, getopt + import subprocess + import click + import imp + import logging + import logging.config + import logging.handlers + import types + import time + import traceback + import glob + import collections + from tabulate import tabulate +except ImportError as e: + raise ImportError('%s - required module not found' % str(e)) + +# Deafults +VERSION = '1.0' +FUNCTION_NAME = '/usr/local/bin/juniper_qfx5210_monitor' + + +global isPlatformAFI + +temp_policy_AFI = { + 0: [[70, 0, 48000], [70, 48000, 53000], [80, 53000, 0], [80, 53000, 58000], [100, 58000, 0], ['Yellow Alarm', 64000, 70000], ['Red Alarm', 70000, 75000], ['Fire Shut Alarm', 75000, 0]], + 1: [[70, 0, 41000], [70, 41000, 47000], [80, 47000, 0], [80, 47000, 52000], [100, 52000, 0], ['Yellow Alarm', 58000, 64000], ['Red Alarm', 64000, 69000], ['Fire Shut Alarm', 69000, 0]], + 2: [[70, 0, 33000], [70, 33000, 39000], [80, 39000, 0], [80, 39000, 45000], [100, 45000, 0], ['Yellow Alarm', 53000, 59000], ['Red Alarm', 59000, 64000], ['Fire Shut Alarm', 64000, 0]], + 3: [[70, 0, 31000], [70, 31000, 36000], [80, 36000, 0], [80, 36000, 42000], [100, 42000, 0], ['Yellow Alarm', 48000, 55000], ['Red Alarm', 55000, 60000], ['Fire Shut Alarm', 60000, 0]], + 4: [[70, 0, 31000], [70, 31000, 36000], [80, 36000, 0], [80, 36000, 42000], [100, 42000, 0], ['Yellow Alarm', 48000, 55000], ['Red Alarm', 55000, 60000], ['Fire Shut Alarm', 60000, 0]], + 5: [[70, 0, 31000], [70, 31000, 36000], [80, 36000, 0], [80, 36000, 43000], [100, 43000, 0], ['Yellow Alarm', 49000, 56000], ['Red Alarm', 56000, 61000], ['Fire Shut Alarm', 61000, 0]], + 6: [[70, 0, 70000], [70, 70000, 78000], [80, 78000, 0], [80, 78000, 86000], [100, 86000, 0], ['Yellow Alarm', 91000, 96000], ['Red Alarm', 96000, 102000], ['Fire Shut Alarm', 102000, 0]], + } + +temp_policy_AFO = { + 0: [[60, 0, 49000], [60, 49000, 55000], [80, 55000, 0], [80, 55000, 62000], [100, 62000, 0], ['Yellow Alarm', 68000, 74000], ['Red Alarm', 74000, 78000], ['Fire Shut Alarm', 78000, 0]], + 1: [[60, 0, 55000], [60, 55000, 60000], [80, 60000, 0], [80, 60000, 65000], [100, 65000, 0], ['Yellow Alarm', 70000, 76000], ['Red Alarm', 76000, 80000], ['Fire Shut Alarm', 80000, 0]], + 2: [[60, 0, 34000], [60, 34000, 40000], [80, 40000, 0], [80, 40000, 47000], [100, 47000, 0], ['Yellow Alarm', 54000, 60000], ['Red Alarm', 60000, 64000], ['Fire Shut Alarm', 64000, 0]], + 3: [[60, 0, 36000], [60, 36000, 41000], [80, 41000, 0], [80, 41000, 47000], [100, 47000, 0], ['Yellow Alarm', 54000, 60000], ['Red Alarm', 60000, 64000], ['Fire Shut Alarm', 64000, 0]], + 4: [[60, 0, 39000], [60, 39000, 45000], [80, 45000, 0], [80, 45000, 52000], [100, 52000, 0], ['Yellow Alarm', 59000, 65000], ['Red Alarm', 65000, 69000], ['Fire Shut Alarm', 69000, 0]], + 5: [[60, 0, 37000], [60, 37000, 43000], [80, 43000, 0], [80, 43000, 50000], [100, 50000, 0], ['Yellow Alarm', 57000, 63000], ['Red Alarm', 63000, 67000], ['Fire Shut Alarm', 67000, 0]], + 6: [[60, 0, 70000], [60, 70000, 78000], [80, 78000, 0], [80, 78000, 86000], [100, 86000, 0], ['Yellow Alarm', 91000, 96000], ['Red Alarm', 96000, 102000], ['Fire Shut Alarm', 102000, 0]], + } + +class QFX5210_FanUtil(object): + """QFX5210 Platform FanUtil class""" + + FANBASE_VAL_PATH = '/sys/bus/i2c/devices/17-0068/{0}' + FAN_DUTY_PATH = '/sys/bus/i2c/devices/17-0068/fan_duty_cycle_percentage' + + def __init__(self): + fan_path = self.FANBASE_VAL_PATH + + def get_fan_duty_cycle(self): + try: + val_file = open(self.FAN_DUTY_PATH) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = val_file.readline().rstrip() + val_file.close() + + return int(content) + + def set_fan_duty_cycle(self, val): + + try: + fan_file = open(self.FAN_DUTY_PATH, 'r+') + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + fan_file.write(str(val)) + fan_file.close() + return True + +class QFX5210_ThermalUtil(object): + """QFX5210 Platform ThermalUtil class""" + + SENSOR_NUM_ON_MAIN_BOARD = 6 + SENSOR_CORETEMP_NUM_ON_MAIN_BOARD = 7 + CORETEMP_NUM_ON_MAIN_BOARD = 5 + THERMAL_NUM_RANGE = 8 + SENSOR_NUM_1_IDX = 1 + SENSORS_PATH = '/sys/bus/i2c/devices/{0}-00{1}/hwmon/hwmon*/temp1_input' + CORETEMP_PATH = '/sys/bus/platform/devices/coretemp.0/hwmon/hwmon1/temp{0}_input' + ALARM_LED_PATH = '/sys/class/leds/alarm/brightness' + + """ Dictionary where + key1 = thermal id index (integer) starting from 1 + value = path to fan device file (string) """ + _sensor_to_device_path_mapping = {} + + _sensor_to_device_node_mapping = [ + ['18', '48'], + ['18', '49'], + ['18', '4a'], + ['18', '4b'], + ['17', '4d'], + ['17', '4e'], + ] + + _coretemp_to_device_path_mapping = {} + + _coretemp_to_device_node_mapping = [1, 2, 3, 4, 5] + + def __init__(self): + sensor_path = self.SENSORS_PATH + coretemp_path = self.CORETEMP_PATH + for x in range(self.SENSOR_NUM_ON_MAIN_BOARD): + self._sensor_to_device_path_mapping[x+1] = sensor_path.format( + self._sensor_to_device_node_mapping[x][0], + self._sensor_to_device_node_mapping[x][1]) + + for x in range(self.CORETEMP_NUM_ON_MAIN_BOARD): + self._coretemp_to_device_path_mapping[x] = coretemp_path.format( + self._coretemp_to_device_node_mapping[x]) + + + """ Function reads the 5 temp inputs in CORETEMP_PATH + and returns the average of these 5 temp readings """ + def get_coretempValue(self): + sum = 0 + for x in range(self.CORETEMP_NUM_ON_MAIN_BOARD): + sum += self._get_coretemp_node_val(x) + avg = sum/self.CORETEMP_NUM_ON_MAIN_BOARD + return int(avg) + + + """ Function takes the Sensor number as input, constructs the device path, + opens sensor file, reads the temp content from the file and returns the value """ + def _get_sensor_node_val(self, thermal_num): + if thermal_num < self.SENSOR_NUM_1_IDX or thermal_num > self.SENSOR_NUM_ON_MAIN_BOARD: + logging.debug('GET. Parameter error. thermal_num, %d', thermal_num) + return None + + device_path = self.get_thermal_to_device_path(thermal_num) + for filename in glob.glob(device_path): + try: + val_file = open(filename, 'r') + except IOError as e: + logging.error('GET. unable to open file: %s', str(e)) + return None + + content = val_file.readline().rstrip() + + if content == '': + logging.debug('GET. content is NULL. device_path:%s', device_path) + return None + + try: + val_file.close() + except: + logging.debug('GET. unable to close file. device_path:%s', device_path) + return None + + return int(content) + + + """ Function takes the coretemp number as input, constructs the device path, + opens sensor file, reads the temp content from the file and returns the value """ + def _get_coretemp_node_val(self, thermal_num): + + device_path = self.get_coretemp_to_device_path(thermal_num) + for filename in glob.glob(device_path): + try: + val_file = open(filename, 'r') + except IOError as e: + logging.error('GET. unable to open file: %s', str(e)) + return None + + content = val_file.readline().rstrip() + + if content == '': + logging.debug('GET. content is NULL. device_path:%s', device_path) + return None + + try: + val_file.close() + except: + logging.debug('GET. unable to close file. device_path:%s', device_path) + return None + + return int(content) + + + def get_thermal_to_device_path(self, thermal_num): + return self._sensor_to_device_path_mapping[thermal_num] + + + def get_coretemp_to_device_path(self, thermal_num): + return self._coretemp_to_device_path_mapping[thermal_num] + + + """ Function opens the alarm LED file, reads the content from the file + and returns the value.This value indicates the Brigthness level. + The value of 1 = YELLOW ALARM + The value of 2 = RED ALARM + The value of 0 = NO ALARM """ + def get_alarm_led_brightness(self): + try: + val_file = open(self.ALARM_LED_PATH) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = val_file.readline().rstrip() + val_file.close() + return int(content) + + + """ Function takes the value to set in the alarm LED file as input. + Reads the content from the file and sets the value.This value indicates the Brigthness level. + The value of 1 = YELLOW ALARM + The value of 2 = RED ALARM + The value of 0 = NO ALARM """ + def set_alarm_led_brightness(self, val): + try: + val_file = open(self.ALARM_LED_PATH, 'r+') + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + val_file.write(str(val)) + val_file.close() + return True + + + + """ Function is called periodically every 20 secs. It reads the 6 Temp sensors and 1 core Temp sensor and sets + Sensor flags accordingly. Also reads the Fan duty cycle and depending on the FAN duty cycle reading and temp sensor reading, + set the different parameters """ + def getSensorTemp(self): + sum = 0 + global isPlatformAFI + #AFI + if (isPlatformAFI == True): + temp_policy = temp_policy_AFI + else: + #AFO + temp_policy = temp_policy_AFO + + """ Dictionary where + key = thermal id index starting from 0. 0 is the sensor 1 ... + value = Different temp ranges """ + SensorFlag = { + 0: [0,0,0,0,0,0,0,0], + 1: [0,0,0,0,0,0,0,0], + 2: [0,0,0,0,0,0,0,0], + 3: [0,0,0,0,0,0,0,0], + 4: [0,0,0,0,0,0,0,0], + 5: [0,0,0,0,0,0,0,0], + 6: [0,0,0,0,0,0,0,0], + } + + for x in range(self.SENSOR_CORETEMP_NUM_ON_MAIN_BOARD): + if x < self.SENSOR_NUM_ON_MAIN_BOARD: + value = self._get_sensor_node_val(x+1) + else: + value = self.get_coretempValue() + + # 60% Duty Cycle for AFO and 70% Duty Cycle for AFI + if value > temp_policy[x][0][1] and value <= temp_policy[x][0][2]: + SensorFlag[x][0] = True + + # 60% Prev Duty Cycle for AFO and 70% Prev Duty Cycle for AFI + elif value > temp_policy[x][1][1] and value < temp_policy[x][1][2]: + SensorFlag[x][1] = True + + # 80% Duty Cycle + elif value == temp_policy[x][2][1]: + SensorFlag[x][2] = True + + #80% Prev Duty Cycle + elif value > temp_policy[x][3][1] and value < temp_policy[x][3][2]: + SensorFlag[x][3] = True + + #100% Duty Cycle + elif value >= temp_policy[x][4][1]: + SensorFlag[x][4] = True + + else: + pass + + # Yellow Alarm + if value >= temp_policy[x][5][1] and value < temp_policy[x][5][2]: + SensorFlag[x][5] = True + + # Red Alarm + elif value >= temp_policy[x][6][1] and value < temp_policy[x][6][2]: + SensorFlag[x][6] = True + + # Fire Shut down + elif value >= temp_policy[x][7][1]: + SensorFlag[x][7] = True + + fan = QFX5210_FanUtil() + # CHECK IF ANY TEMPERATURE SENSORS HAS SET FIRE SHUTDOWN FLAG + if SensorFlag[0][7] or SensorFlag[1][7] or SensorFlag[2][7] or SensorFlag[3][7] or SensorFlag[4][7] or SensorFlag[5][7] or SensorFlag[6][7]: + value = self.get_alarm_led_brightness() + if ( value > 0): + self.set_alarm_led_brightness(0) + + # CHECK IF ANY TEMPERATURE SENSORS HAS SET 'RED' ALARM FLAG, IF YES, SET THE ALARM LED TO 'RED' + elif SensorFlag[0][6] or SensorFlag[1][6] or SensorFlag[2][6] or SensorFlag[3][6] or SensorFlag[4][6] or SensorFlag[5][6] or SensorFlag[6][6]: + self.set_alarm_led_brightness(2) + + # CHECK IF ANY TEMPERATURE SENSORS HAS SET 'YELLOW' ALARM FLAG, IF YES, SET THE ALARM LED TO 'YELLOW' + elif SensorFlag[0][5] or SensorFlag[1][5] or SensorFlag[2][5] or SensorFlag[3][5] or SensorFlag[4][5] or SensorFlag[5][5] or SensorFlag[6][5]: + self.set_alarm_led_brightness(1) + + # CHECK IF ANY TEMPERATURE SENSORS HAS SET 100% DUTY CYCLE FLAG, IF YES, SET THE FAN DUTY CYCLE TO 100% + elif SensorFlag[0][4] or SensorFlag[1][4] or SensorFlag[2][4] or SensorFlag[3][4] or SensorFlag[4][4] or SensorFlag[5][4] or SensorFlag[6][4]: + fan.set_fan_duty_cycle(100) + value = self.get_alarm_led_brightness() + if ( value > 0): + self.set_alarm_led_brightness(0) + + # CHECK IF ANY TEMPERATURE SENSORS HAS SET 80% DUTY CYCLE PREV FLAG, IF YES, SET THE FAN DUTY CYCLE TO 80% + elif SensorFlag[0][3] or SensorFlag[1][3] or SensorFlag[2][3] or SensorFlag[3][3] or SensorFlag[4][3] or SensorFlag[5][3] or SensorFlag[6][3]: + fan.set_fan_duty_cycle(80) + value = self.get_alarm_led_brightness() + if ( value > 0): + self.set_alarm_led_brightness(0) + + # CHECK IF ANY TEMPERATURE SENSORS HAS SET 80% DUTY CYCLE FLAG, IF YES, SET THE FAN DUTY CYCLE TO 80% + elif SensorFlag[0][2] or SensorFlag[1][2] or SensorFlag[2][2] or SensorFlag[3][2] or SensorFlag[4][2] or SensorFlag[5][2] or SensorFlag[6][2]: + fan.set_fan_duty_cycle(80) + value = self.get_alarm_led_brightness() + if ( value > 0): + self.set_alarm_led_brightness(0) + + # FOR "AFO" Platform CHECK IF ANY TEMPERATURE SENSORS HAS SET 60% DUTY CYCLE PREV FLAG, IF YES, SET THE FAN DUTY CYCLE TO 60% + # FOR "AFI" Platform CHECK IF ANY TEMPERATURE SENSORS HAS SET 70% DUTY CYCLE PREV FLAG, IF YES, SET THE FAN DUTY CYCLE TO 70% + elif SensorFlag[0][1] or SensorFlag[1][1] or SensorFlag[2][1] or SensorFlag[3][1] or SensorFlag[4][1] or SensorFlag[5][1] or SensorFlag[6][1]: + if (isPlatformAFI == True): + fan.set_fan_duty_cycle(70) + else: + fan.set_fan_duty_cycle(60) + value = self.get_alarm_led_brightness() + if ( value > 0): + self.set_alarm_led_brightness(0) + + # FOR "AFO" Platform CHECK IF ANY TEMPERATURE SENSORS HAS SET 60% DUTY CYCLE FLAG, IF YES, SET THE FAN DUTY CYCLE TO 60% + # FOR "AFI" Platform CHECK IF ANY TEMPERATURE SENSORS HAS SET 70% DUTY CYCLE FLAG, IF YES, SET THE FAN DUTY CYCLE TO 70% + elif SensorFlag[0][0] or SensorFlag[1][0] or SensorFlag[2][0] or SensorFlag[3][0] or SensorFlag[4][0] or SensorFlag[5][0] or SensorFlag[6][0]: + if (isPlatformAFI == True): + fan.set_fan_duty_cycle(70) + else: + fan.set_fan_duty_cycle(60) + value = self.get_alarm_led_brightness() + if ( value > 0): + self.set_alarm_led_brightness(0) + + else: + pass + + + # RESET ALL THE SENSOR FLAGS + for x in range(self.SENSOR_CORETEMP_NUM_ON_MAIN_BOARD): + for y in range(self.THERMAL_NUM_RANGE): + SensorFlag[x][y] = 0 + + +class device_monitor(object): + + def __init__(self): + global isPlatformAFI + MASTER_LED_PATH = '/sys/class/leds/master/brightness' + SYSTEM_LED_PATH = '/sys/class/leds/system/brightness' + FANTYPE_PATH = '/sys/bus/i2c/devices/17-0068/fan1_direction' + + import sonic_platform + platform = sonic_platform.platform.Platform() + chassis = platform.get_chassis() + fan_type = chassis.get_fan_type(FANTYPE_PATH) + + # the return value of get_fan_type is AFO = 0, AFI = 1 and for error condition it is -1 + # In the error condition also, we are making default platform as AFO, to continue with Energy Monitoring + if (fan_type == -1 or fan_type == 0): + if (fan_type == -1): + print "Error: unable to open sys file for fan handling, defaulting it to AFO" + isPlatformAFI = False + else: + isPlatformAFI = True + + + master_led_value = 1 + try: + masterLED_file = open(MASTER_LED_PATH, 'r+') + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + masterLED_file.write(str(master_led_value)) + masterLED_file.close() + + system_led_value = 1 + try: + systemLED_file = open(SYSTEM_LED_PATH, 'r+') + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + systemLED_file.write(str(system_led_value)) + systemLED_file.close() + pass + + def manage_device(self): + thermal = QFX5210_ThermalUtil() + thermal.getSensorTemp() + +def main(): + monitor = device_monitor() + while True: + monitor.manage_device() + time.sleep(20) + +if __name__ == '__main__': + main() + diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/juniper_qfx5210_util.py b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/juniper_qfx5210_util.py new file mode 100755 index 0000000000..2e65b76148 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/juniper_qfx5210_util.py @@ -0,0 +1,545 @@ +#!/usr/bin/env python +# +# Modified to work on Juniper QFX5210 +# +# Based on accton_as7816_util.py +# +# Copyright (C) 2016 Accton Networks, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +""" +Usage: %(scriptName)s [options] command object + +options: + -h | --help : this help message + -d | --debug : run with debug mode + -f | --force : ignore error during installation or clean +command: + install : install drivers and generate related sysfs nodes + clean : uninstall drivers and remove related sysfs nodes + show : show all systen status + sff : dump SFP eeprom + set : change board setting with fan|led|sfp +""" + +import os +import commands +import sys, getopt +import binascii +import logging +import re +import time +import random +import optparse +from collections import namedtuple + + + + +PROJECT_NAME = 'qfx5210_64x' +version = '0.1.0' +verbose = False +DEBUG = False +args = [] +ALL_DEVICE = {} +DEVICE_NO = {'led':4, 'fan':4,'thermal':6, 'psu':2, 'sfp':64} +FORCE = 0 +#logging.basicConfig(filename= PROJECT_NAME+'.log', filemode='w',level=logging.DEBUG) +#logging.basicConfig(level=logging.INFO) + + +if DEBUG == True: + print sys.argv[0] + print 'ARGV :', sys.argv[1:] + + +def main(): + global DEBUG + global args + global FORCE + + if len(sys.argv)<2: + show_help() + + options, args = getopt.getopt(sys.argv[1:], 'hdf', ['help', + 'debug', + 'force', + ]) + if DEBUG == True: + print options + print args + print len(sys.argv) + + for opt, arg in options: + if opt in ('-h', '--help'): + show_help() + elif opt in ('-d', '--debug'): + DEBUG = True + logging.basicConfig(level=logging.INFO) + elif opt in ('-f', '--force'): + FORCE = 1 + else: + logging.info('no option') + for arg in args: + if arg == 'install': + do_install() + elif arg == 'clean': + do_uninstall() + elif arg == 'show': + device_traversal() + elif arg == 'sff': + if len(args)!=2: + show_eeprom_help() + elif int(args[1]) ==0 or int(args[1]) > DEVICE_NO['sfp']: + show_eeprom_help() + else: + show_eeprom(args[1]) + return + elif arg == 'set': + if len(args)<3: + show_set_help() + else: + set_device(args[1:]) + return + else: + show_help() + + DisableWatchDogCmd = '/usr/sbin/i2cset -y 0 0x65 0x3 0x04' + # Disable watchdog + try: + os.system(DisableWatchDogCmd) + except OSError: + print 'Error: Execution of "%s" failed', DisableWatchDogCmd + return False + + CPUeepromFileCmd = 'cat /sys/devices/pci0000:00/0000:00:1f.3/i2c-0/0-0056/eeprom > /etc/init.d/eeprom_qfx5210_ascii' + # Write the contents of CPU EEPROM to file + try: + os.system(CPUeepromFileCmd) + except OSError: + print 'Error: Execution of "%s" failed', CPUeepromFileCmd + return False + + return True + +def show_help(): + print __doc__ % {'scriptName' : sys.argv[0].split("/")[-1]} + sys.exit(0) + +def show_set_help(): + cmd = sys.argv[0].split("/")[-1]+ " " + args[0] + print cmd +" [led|sfp|fan]" + print " use \""+ cmd + " led 0-4 \" to set led color" + print " use \""+ cmd + " fan 0-100\" to set fan duty percetage" + print " use \""+ cmd + " sfp 1-32 {0|1}\" to set sfp# tx_disable" + sys.exit(0) + +def show_eeprom_help(): + cmd = sys.argv[0].split("/")[-1]+ " " + args[0] + print " use \""+ cmd + " 1-32 \" to dump sfp# eeprom" + sys.exit(0) + +def my_log(txt): + if DEBUG == True: + print "[ROY]"+txt + return + +def log_os_system(cmd, show): + logging.info('Run :'+cmd) + status, output = commands.getstatusoutput(cmd) + my_log (cmd +"with result:" + str(status)) + my_log (" output:"+output) + if status: + logging.info('Failed :'+cmd) + if show: + print('Failed :'+cmd) + return status, output + +def driver_check(): + ret, lsmod = log_os_system("lsmod| grep juniper", 0) + logging.info('mods:'+lsmod) + if len(lsmod) ==0: + return False + return True + + + +kos = [ +'modprobe i2c_dev', +'modprobe i2c_mux_pca954x', +'modprobe juniper_i2c_cpld' , +'modprobe ym2651y' , +'modprobe x86-64-juniper-qfx5210-64x-fan' , +'modprobe x86-64-juniper-qfx5210-64x-sfp' , +'modprobe x86-64-juniper-qfx5210-64x-leds' , +'modprobe x86-64-juniper-qfx5210-64x-psu' ] + +def driver_install(): + global FORCE + status, output = log_os_system("depmod", 1) + for i in range(0,len(kos)): + status, output = log_os_system(kos[i], 1) + if status: + if FORCE == 0: + return status + return 0 + +def driver_uninstall(): + global FORCE + for i in range(0,len(kos)): + rm = kos[-(i+1)].replace("modprobe", "modprobe -rq") + rm = rm.replace("insmod", "rmmod") + status, output = log_os_system(rm, 1) + if status: + if FORCE == 0: + return status + return 0 + +led_prefix ='/sys/class/leds/' +hwmon_types = {'led': ['alarm','system','master','beacon']} +hwmon_nodes = {'led': ['brightness'] } +hwmon_prefix ={'led': led_prefix} + +i2c_prefix = '/sys/bus/i2c/devices/' +i2c_bus = {'fan': ['17-0068'] , + 'thermal': ['18-0048','18-0049', '18-004a' , '18-004b', '17-004d', '17-004e'] , + 'psu': ['10-0053','9-0050'], + 'sfp': ['-0050']} +i2c_nodes = {'fan': ['present', 'front_speed_rpm', 'rear_speed_rpm'] , + 'thermal': ['hwmon/hwmon*/temp1_input'] , + 'psu': ['psu_present ', 'psu_power_good'] , + 'sfp': ['sfp_is_present ', 'sfp_tx_disable']} + +sfp_map = [37,38,39,40,42,41,44,43,33,34,35,36,45,46,47,48,49,50,51,52, + 61,62,63,64,53,54,55,56,57,58,59,60,69,70,71,72,77,78,79,80,65, + 66,67,68,73,74,75,76,85,86,87,88,31,32,29,30,81,82,83,84,25,26, + 27,28] + +mknod =[ +'echo pca9548 0x77 > /sys/bus/i2c/devices/i2c-0/new_device', +'echo pca9548 0x71 > /sys/bus/i2c/devices/i2c-1/new_device', +'echo pca9548 0x76 > /sys/bus/i2c/devices/i2c-1/new_device', +'echo pca9548 0x73 > /sys/bus/i2c/devices/i2c-1/new_device', +'echo pca9548 0x70 > /sys/bus/i2c/devices/i2c-2/new_device', +'echo pca9548 0x71 > /sys/bus/i2c/devices/i2c-2/new_device', +'echo pca9548 0x72 > /sys/bus/i2c/devices/i2c-2/new_device', +'echo pca9548 0x73 > /sys/bus/i2c/devices/i2c-2/new_device', +'echo pca9548 0x74 > /sys/bus/i2c/devices/i2c-2/new_device', +'echo pca9548 0x75 > /sys/bus/i2c/devices/i2c-2/new_device', +'echo pca9548 0x76 > /sys/bus/i2c/devices/i2c-2/new_device', +'echo 24c02 0x56 > /sys/bus/i2c/devices/i2c-0/new_device', +'echo qfx5210_64x_psu1 0x53 > /sys/bus/i2c/devices/i2c-10/new_device', +'echo ym2851 0x5b > /sys/bus/i2c/devices/i2c-10/new_device', +'echo qfx5210_64x_psu2 0x50 > /sys/bus/i2c/devices/i2c-9/new_device', +'echo ym2851 0x58 > /sys/bus/i2c/devices/i2c-9/new_device', +'echo qfx5210_64x_fan 0x68 > /sys/bus/i2c/devices/i2c-17/new_device', +'echo lm75 0x48 > /sys/bus/i2c/devices/i2c-18/new_device', +'echo lm75 0x49 > /sys/bus/i2c/devices/i2c-18/new_device', +'echo lm75 0x4a > /sys/bus/i2c/devices/i2c-18/new_device', +'echo lm75 0x4b > /sys/bus/i2c/devices/i2c-18/new_device', +'echo lm75 0x4d > /sys/bus/i2c/devices/i2c-17/new_device', +'echo lm75 0x4e > /sys/bus/i2c/devices/i2c-17/new_device', +'echo cpld_qfx5210 0x60 > /sys/bus/i2c/devices/i2c-19/new_device', +'echo cpld_plain 0x62 > /sys/bus/i2c/devices/i2c-20/new_device', +'echo cpld_plain 0x64 > /sys/bus/i2c/devices/i2c-21/new_device', +'echo cpld_plain 0x66 > /sys/bus/i2c/devices/i2c-22/new_device'] + +def i2c_order_check(): + return 0 + +def device_install(): + global FORCE + + for i in range(0,len(mknod)): + #for pca954x need times to built new i2c buses + if mknod[i].find('pca954') != -1: + time.sleep(1) + + status, output = log_os_system(mknod[i], 1) + if status: + print output + if FORCE == 0: + return status + + for i in range(0,len(sfp_map)): + status, output =log_os_system("echo qfx5210_64x_port"+str(i+1)+" 0x50 > /sys/bus/i2c/devices/i2c-"+str(sfp_map[i])+"/new_device", 1) + if status: + print output + if FORCE == 0: + return status + return + +def device_uninstall(): + global FORCE + + status, output =log_os_system("ls /sys/bus/i2c/devices/1-0076", 0) + + for i in range(0,len(sfp_map)): + target = "/sys/bus/i2c/devices/i2c-"+str(sfp_map[i])+"/delete_device" + status, output =log_os_system("echo 0x50 > "+ target, 1) + if status: + print output + if FORCE == 0: + return status + + nodelist = mknod + + for i in range(len(nodelist)): + target = nodelist[-(i+1)] + temp = target.split() + del temp[1] + temp[-1] = temp[-1].replace('new_device', 'delete_device') + status, output = log_os_system(" ".join(temp), 1) + if status: + print output + if FORCE == 0: + return status + + return + +def system_ready(): + if driver_check() == False: + return False + if not device_exist(): + return False + return True + +def do_install(): + print "Checking system...." + if driver_check() == False: + print "No driver, installing...." + status = driver_install() + if status: + if FORCE == 0: + return status + else: + print PROJECT_NAME.upper()+" drivers detected...." + if not device_exist(): + print "No device, installing...." + status = device_install() + if status: + if FORCE == 0: + return status + else: + print PROJECT_NAME.upper()+" devices detected...." + return + +def do_uninstall(): + print "Checking system...." + if not device_exist(): + print PROJECT_NAME.upper() +" has no device installed...." + else: + print "Removing device...." + status = device_uninstall() + if status: + if FORCE == 0: + return status + + if driver_check()== False : + print PROJECT_NAME.upper() +" has no driver installed...." + else: + print "Removing installed driver...." + status = driver_uninstall() + if status: + if FORCE == 0: + return status + + return + +def devices_info(): + global DEVICE_NO + global ALL_DEVICE + global i2c_bus, hwmon_types + for key in DEVICE_NO: + ALL_DEVICE[key]= {} + for i in range(0,DEVICE_NO[key]): + ALL_DEVICE[key][key+str(i+1)] = [] + + for key in i2c_bus: + buses = i2c_bus[key] + nodes = i2c_nodes[key] + for i in range(0,len(buses)): + for j in range(0,len(nodes)): + if 'fan' == key: + for k in range(0,DEVICE_NO[key]): + node = key+str(k+1) + path = i2c_prefix+ buses[i]+"/fan"+str(k+1)+"_"+ nodes[j] + my_log(node+": "+ path) + ALL_DEVICE[key][node].append(path) + elif 'sfp' == key: + for k in range(0,DEVICE_NO[key]): + node = key+str(k+1) + path = i2c_prefix+ str(sfp_map[k])+ buses[i]+"/"+ nodes[j] + my_log(node+": "+ path) + ALL_DEVICE[key][node].append(path) + else: + node = key+str(i+1) + path = i2c_prefix+ buses[i]+"/"+ nodes[j] + my_log(node+": "+ path) + ALL_DEVICE[key][node].append(path) + + for key in hwmon_types: + itypes = hwmon_types[key] + nodes = hwmon_nodes[key] + for i in range(0,len(itypes)): + for j in range(0,len(nodes)): + node = key+"_"+itypes[i] + path = hwmon_prefix[key]+ itypes[i]+"/"+ nodes[j] + my_log(node+": "+ path) + ALL_DEVICE[key][ key+str(i+1)].append(path) + + #show dict all in the order + if DEBUG == True: + for i in sorted(ALL_DEVICE.keys()): + print(i+": ") + for j in sorted(ALL_DEVICE[i].keys()): + print(" "+j) + for k in (ALL_DEVICE[i][j]): + print(" "+" "+k) + return + +def show_eeprom(index): + if system_ready()==False: + print("System's not ready.") + print("Please install first!") + return + + if len(ALL_DEVICE)==0: + devices_info() + node = ALL_DEVICE['sfp'] ['sfp'+str(index)][0] + node = node.replace(node.split("/")[-1], 'sfp_eeprom') + # check if got hexdump command in current environment + ret, log = log_os_system("which hexdump", 0) + ret, log2 = log_os_system("which busybox hexdump", 0) + if len(log): + hex_cmd = 'hexdump' + elif len(log2): + hex_cmd = ' busybox hexdump' + else: + log = 'Failed : no hexdump cmd!!' + logging.info(log) + print log + return 1 + + print node + ":" + ret, log = log_os_system("cat "+node+"| "+hex_cmd+" -C", 1) + if ret==0: + print log + else: + print "**********device no found**********" + return + +def set_device(args): + global DEVICE_NO + global ALL_DEVICE + if system_ready()==False: + print("System's not ready.") + print("Please install first!") + return + + if len(ALL_DEVICE)==0: + devices_info() + + if args[0]=='led': + if int(args[1])>4: + show_set_help() + return + #print ALL_DEVICE['led'] + for i in range(0,len(ALL_DEVICE['led'])): + for k in (ALL_DEVICE['led']['led'+str(i+1)]): + ret, log = log_os_system("echo "+args[1]+" >"+k, 1) + if ret: + return ret + elif args[0]=='fan': + if int(args[1])>100: + show_set_help() + return + #print ALL_DEVICE['fan'] + #fan1~6 is all fine, all fan share same setting + node = ALL_DEVICE['fan'] ['fan1'][0] + node = node.replace(node.split("/")[-1], 'fan_duty_cycle_percentage') + ret, log = log_os_system("cat "+ node, 1) + if ret==0: + print ("Previous fan duty: " + log.strip() +"%") + ret, log = log_os_system("echo "+args[1]+" >"+node, 1) + if ret==0: + print ("Current fan duty: " + args[1] +"%") + return ret + elif args[0]=='sfp': + if int(args[1])> DEVICE_NO[args[0]] or int(args[1])==0: + show_set_help() + return + if len(args)<2: + show_set_help() + return + + if int(args[2])>1: + show_set_help() + return + + #print ALL_DEVICE[args[0]] + for i in range(0,len(ALL_DEVICE[args[0]])): + for j in ALL_DEVICE[args[0]][args[0]+str(args[1])]: + if j.find('tx_disable')!= -1: + ret, log = log_os_system("echo "+args[2]+" >"+ j, 1) + if ret: + return ret + + return + +#get digits inside a string. +#Ex: 31 for "sfp31" +def get_value(input): + digit = re.findall('\d+', input) + return int(digit[0]) + +def device_traversal(): + if system_ready()==False: + print("System's not ready.") + print("Please install first!") + return + + if len(ALL_DEVICE)==0: + devices_info() + for i in sorted(ALL_DEVICE.keys()): + print("============================================") + print(i.upper()+": ") + print("============================================") + + for j in sorted(ALL_DEVICE[i].keys(), key=get_value): + print " "+j+":", + for k in (ALL_DEVICE[i][j]): + ret, log = log_os_system("cat "+k, 0) + func = k.split("/")[-1].strip() + func = re.sub(j+'_','',func,1) + func = re.sub(i.lower()+'_','',func,1) + if ret==0: + print func+"="+log+" ", + else: + print func+"="+"X"+" ", + print + print("----------------------------------------------------------------") + + + print + return + +def device_exist(): + ret1, log = log_os_system("ls "+i2c_prefix+"*0076", 0) + ret2, log = log_os_system("ls "+i2c_prefix+"i2c-2", 0) + return not(ret1 or ret2) + +if __name__ == "__main__": + main() diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/platform_poweroff b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/platform_poweroff new file mode 100755 index 0000000000..27b23cff93 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/platform_poweroff @@ -0,0 +1,106 @@ +#!/usr/bin/env bash +# +# Name: platform_poweroff version: 1.0 +# +# Description: This file contains the implementation of qfx5210 poweroff +# sequences +# +# Copyright (c) 2019, Juniper Networks, Inc. +# All rights reserved. +# +# Notice and Disclaimer: This code is licensed to you under the GNU General +# Public License as published by the Free Software Foundation, version 2 or +# any later version. This code is not an official Juniper product. You can +# obtain a copy of the License at +# +# OSS License: +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Third-Party Code: This code may depend on other components under separate +# copyright notice and license terms. Your use of the source code for those +# components is subject to the terms and conditions of the respective license +# as noted in the Third-Party source code file. + +LOGFILE="/var/log/poweroff_log" +TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"` + +retry() +{ + local ret_value=0 + + if [ $# -ne 3 ]; then + echo 'usage: retry ""' + exit 1 + fi + retries=$1 + wait_retry=$2 + command=$3 + for i in `seq 1 $retries`; do + echo "$TIMESTAMP $command" >> $LOGFILE + $command + ret_value=$? + [ $ret_value -eq 0 ] && break + echo "$TIMESTAMP Error: Command Execution failed with $ret_value, waiting to retry..." >> $LOGFILE + sleep $wait_retry + done + return $ret_value +} + + +if [ -f /usr/sbin/i2cset ] && [ -f /usr/sbin/i2cget ]; then + #Check if the CPU CPLD address is present on the bus or not + #0x65 - Azurite CPU CPLD I2C Addr + retry 128 1 "i2cget -y 0 0x65 0x0" + ret_val=$? + if [ $ret_val -ne 0 ]; then + echo "$TIMESTAMP CPU CPLD I2C Addr is not accessible...Terminating the halt.." >> $LOGFILE + return $ret_value + fi + #Initing Halt condition + retry 128 1 "/usr/sbin/i2cset -f -y 0 0x65 0x14 0x00" + ret_val=$? + if [ $ret_val -ne 0 ]; then + echo "$TIMESTAMP Halt Init Failed..." >> $LOGFILE + return $ret_value + fi + #Enable 0x77 MUX's First channel to access 0x76 MUX + retry 128 1 "/usr/sbin/i2cset -f -y 0 0x77 0 0x01" + ret_val=$? + if [ $ret_val -ne 0 ]; then + echo "$TIMESTAMP Mux Level1 enabling failed..." >> $LOGFILE + return $ret_value + fi + #Enable 0x76 MUX's Third channel to access Main Board CPLD @0x60 + retry 128 1 "/usr/sbin/i2cset -f -y 0 0x76 0 0x04" + ret_val=$? + if [ $ret_val -ne 0 ]; then + echo "$TIMESTAMP Mux Level2 enabling failed..." >> $LOGFILE + return $ret_value + fi + + sync + + echo "$TIMESTAMP System is going to Halt now ........" | tee $LOGFILE + #Sleeping for sometime, so that Print can reach to logger + sleep 1 + #Asserting the Halt on Azurite + retry 128 1 "/usr/sbin/i2cset -f -y 0 0x60 0x24 0x00" + ret_val=$? + if [ $ret_val -ne 0 ]; then + echo "$TIMESTAMP Halt command execution failed...Terminating the halt.." | tee $LOGFILE + return $ret_value + fi +fi From ca43dad12f6719d87d65e66562162ff98338d06c Mon Sep 17 00:00:00 2001 From: Wenda Ni Date: Fri, 6 Sep 2019 11:59:47 -0700 Subject: [PATCH 33/43] Use dot1p to tc mapping for backend switches (#3412) * Use dot1p to tc mapping for backend switches Signed-off-by: Wenda Ni * Do not write DSCP to TC mapping into CONFIG_DB or config_db.json for storage switches Signed-off-by: Wenda Ni --- files/build_templates/qos_config.j2 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/files/build_templates/qos_config.j2 b/files/build_templates/qos_config.j2 index a666367873..054f0db8a1 100644 --- a/files/build_templates/qos_config.j2 +++ b/files/build_templates/qos_config.j2 @@ -29,6 +29,7 @@ {%- set pfc_to_pg_map_supported_asics = ['mellanox', 'barefoot', 'marvell'] -%} +{%- set backend_device_types = ['BackEndToRRouter', 'BackEndLeafRouter'] -%} { @@ -72,6 +73,20 @@ "7": "7" } }, +{% if DEVICE_METADATA['localhost']['type'] in backend_device_types %} + "DOT1P_TO_TC_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7" + } + }, +{% else %} "DSCP_TO_TC_MAP": { "AZURE": { "0" : "1", @@ -140,6 +155,7 @@ "63": "1" } }, +{% endif %} "SCHEDULER": { "scheduler.0": { "type" : "DWRR", @@ -160,7 +176,11 @@ {% endif %} "PORT_QOS_MAP": { "{{ port_names_active }}": { +{% if DEVICE_METADATA['localhost']['type'] in backend_device_types %} + "dot1p_to_tc_map" : "[DOT1P_TO_TC_MAP|AZURE]", +{% else %} "dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]", +{% endif %} "tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]", "tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]", "pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]", From 9fdc6bde8c80ea8fdd32127775413ff4127a2371 Mon Sep 17 00:00:00 2001 From: wangshengjun Date: Sat, 7 Sep 2019 03:01:08 +0800 Subject: [PATCH 34/43] =?UTF-8?q?[dhcp=5Frelay]:filter=20out=20the=20ipv6?= =?UTF-8?q?=20address=20of=20dhcp=20server=20for=20dhcp=20rela=E2=80=A6=20?= =?UTF-8?q?(#3397)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [dhcp_relay]:filter out the ipv6 address of dhcp server for dhcp relay(v4) config file. Signed-off-by: wangshengjun --- .../docker-dhcp-relay.supervisord.conf.j2 | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 b/dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 index bbc24ecc09..4462ff3d7f 100644 --- a/dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 +++ b/dockers/docker-dhcp-relay/docker-dhcp-relay.supervisord.conf.j2 @@ -43,8 +43,16 @@ isc-dhcp-relay-{{ vlan_name }} {# Create a program entry for each DHCP relay agent instance #} +{% set relay_for_ipv4 = { 'flag': False } %} {% for vlan_name in VLAN %} {% if VLAN[vlan_name]['dhcp_servers'] %} +{% for dhcp_server in VLAN[vlan_name]['dhcp_servers'] %} +{% if dhcp_server | ipv4 %} +{% set _dummy = relay_for_ipv4.update({'flag': True}) %} +{% endif %} +{% endfor %} +{% if relay_for_ipv4.flag %} +{% set _dummy = relay_for_ipv4.update({'flag': False}) %} [program:isc-dhcp-relay-{{ vlan_name }}] {# We treat this VLAN as a downstream interface (-id), as we only want to listen for requests #} command=/usr/sbin/dhcrelay -d -m discard -a %%h:%%p %%P --name-alias-map-file /tmp/port-name-alias-map.txt -id {{ vlan_name }} @@ -58,7 +66,9 @@ command=/usr/sbin/dhcrelay -d -m discard -a %%h:%%p %%P --name-alias-map-file /t {% for (name, prefix) in PORTCHANNEL_INTERFACE|pfx_filter %} {% if prefix | ipv4 %} -iu {{ name }}{% endif -%} {% endfor %} -{% for dhcp_server in VLAN[vlan_name]['dhcp_servers'] %} {{ dhcp_server }}{% endfor %} +{% for dhcp_server in VLAN[vlan_name]['dhcp_servers'] %} +{%- if dhcp_server | ipv4 %} {{ dhcp_server }}{% endif -%} +{% endfor %} priority=3 autostart=false @@ -66,6 +76,7 @@ autorestart=false stdout_logfile=syslog stderr_logfile=syslog +{% endif %} {% endif %} {% endfor %} {% endif %} From 309af832252e8597e664eccb524e085946986574 Mon Sep 17 00:00:00 2001 From: sridhar-ravindran <45350577+sridhar-ravindran@users.noreply.github.com> Date: Sat, 7 Sep 2019 03:27:52 +0530 Subject: [PATCH 35/43] [DELL][S6000] Platform 2.0 TransceiverChange Support (#3414) Implemented remaining APIs in s6100,z9100,s6000 Removed soft link in s6100,s6000,z9100 and implemented seperately Implemented get_transceiver_change_event in S6000 --- .../s6000/sonic_platform/chassis.py | 85 +- .../s6000/sonic_platform/sfp.py | 877 ++++++++++++++++- .../s6100/sonic_platform/chassis.py | 16 +- .../s6100/sonic_platform/sfp.py | 45 +- .../z9100/sonic_platform/sfp.py | 880 +++++++++++++++++- 5 files changed, 1887 insertions(+), 16 deletions(-) mode change 120000 => 100644 platform/broadcom/sonic-platform-modules-dell/s6000/sonic_platform/sfp.py mode change 120000 => 100644 platform/broadcom/sonic-platform-modules-dell/z9100/sonic_platform/sfp.py diff --git a/platform/broadcom/sonic-platform-modules-dell/s6000/sonic_platform/chassis.py b/platform/broadcom/sonic-platform-modules-dell/s6000/sonic_platform/chassis.py index a625a796ef..477d6b787b 100755 --- a/platform/broadcom/sonic-platform-modules-dell/s6000/sonic_platform/chassis.py +++ b/platform/broadcom/sonic-platform-modules-dell/s6000/sonic_platform/chassis.py @@ -9,6 +9,8 @@ try: import os + import time + import datetime from sonic_platform_base.chassis_base import ChassisBase from sonic_platform.sfp import Sfp except ImportError as e: @@ -22,16 +24,19 @@ class Chassis(ChassisBase): MAILBOX_DIR = "/sys/devices/platform/dell-s6000-cpld.0" + sfp_control = "" + PORT_START = 0 + PORT_END = 0 reset_reason_dict = {} reset_reason_dict[0xe] = ChassisBase.REBOOT_CAUSE_NON_HARDWARE reset_reason_dict[0x6] = ChassisBase.REBOOT_CAUSE_NON_HARDWARE def __init__(self): # Initialize SFP list - PORT_START = 0 - PORT_END = 31 + self.PORT_START = 0 + self.PORT_END = 31 EEPROM_OFFSET = 20 - PORTS_IN_BLOCK = (PORT_END + 1) + PORTS_IN_BLOCK = (self.PORT_END + 1) # sfp.py will read eeprom contents and retrive the eeprom data. # It will also provide support sfp controls like reset and setting @@ -39,12 +44,16 @@ class Chassis(ChassisBase): # We pass the eeprom path and sfp control path from chassis.py # So that sfp.py implementation can be generic to all platforms eeprom_base = "/sys/class/i2c-adapter/i2c-{0}/{0}-0050/eeprom" - sfp_control = "/sys/devices/platform/dell-s6000-cpld.0/" + self.sfp_control = "/sys/devices/platform/dell-s6000-cpld.0/" + for index in range(0, PORTS_IN_BLOCK): eeprom_path = eeprom_base.format(index + EEPROM_OFFSET) - sfp_node = Sfp(index, 'QSFP', eeprom_path, sfp_control, index) + sfp_node = Sfp(index, 'QSFP', eeprom_path, self.sfp_control, index) self._sfp_list.append(sfp_node) + # Get Transceiver status + self.modprs_register = self._get_transceiver_status() + def get_register(self, reg_name): rv = 'ERR' mb_reg_file = self.MAILBOX_DIR+'/'+reg_name @@ -76,3 +85,69 @@ class Chassis(ChassisBase): return (ChassisBase.REBOOT_CAUSE_HARDWARE_OTHER, "Invalid Reason") + def _get_transceiver_status(self): + presence_ctrl = self.sfp_control + 'qsfp_modprs' + try: + reg_file = open(presence_ctrl) + + except IOError as e: + return False + + content = reg_file.readline().rstrip() + reg_file.close() + + return int(content, 16) + + def get_transceiver_change_event(self, timeout=0): + """ + Returns a dictionary containing sfp changes which have + experienced a change at chassis level + """ + start_time = time.time() + port_dict = {} + port = self.PORT_START + forever = False + + if timeout == 0: + forever = True + elif timeout > 0: + timeout = timeout / float(1000) # Convert to secs + else: + return False, {} + end_time = start_time + timeout + + if (start_time > end_time): + return False, {} # Time wrap or possibly incorrect timeout + + while (timeout >= 0): + # Check for OIR events and return updated port_dict + reg_value = self._get_transceiver_status() + if (reg_value != self.modprs_register): + changed_ports = (self.modprs_register ^ reg_value) + while (port >= self.PORT_START and port <= self.PORT_END): + # Mask off the bit corresponding to our port + mask = (1 << port) + if (changed_ports & mask): + # ModPrsL is active low + if reg_value & mask == 0: + port_dict[port] = '1' + else: + port_dict[port] = '0' + port += 1 + + # Update reg value + self.modprs_register = reg_value + return True, port_dict + + if forever: + time.sleep(1) + else: + timeout = end_time - time.time() + if timeout >= 1: + time.sleep(1) # We poll at 1 second granularity + else: + if timeout > 0: + time.sleep(timeout) + return True, {} + return False, {} + diff --git a/platform/broadcom/sonic-platform-modules-dell/s6000/sonic_platform/sfp.py b/platform/broadcom/sonic-platform-modules-dell/s6000/sonic_platform/sfp.py deleted file mode 120000 index 84af7963bb..0000000000 --- a/platform/broadcom/sonic-platform-modules-dell/s6000/sonic_platform/sfp.py +++ /dev/null @@ -1 +0,0 @@ -../../s6100/sonic_platform/sfp.py \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-dell/s6000/sonic_platform/sfp.py b/platform/broadcom/sonic-platform-modules-dell/s6000/sonic_platform/sfp.py new file mode 100644 index 0000000000..a334aa7a7f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-dell/s6000/sonic_platform/sfp.py @@ -0,0 +1,876 @@ +#!/usr/bin/env python + +############################################################################# +# DELLEMC +# +# Module contains an implementation of SONiC Platform Base API and +# provides the platform information +# +############################################################################# + +try: + import os + import time + from sonic_platform_base.chassis_base import ChassisBase + from sonic_platform_base.sfp_base import SfpBase + from sonic_platform_base.sonic_sfp.sff8436 import sff8436InterfaceId + from sonic_platform_base.sonic_sfp.sff8436 import sff8436Dom +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + +PAGE_OFFSET = 0 +KEY_OFFSET = 1 +KEY_WIDTH = 2 +FUNC_NAME = 3 + +INFO_OFFSET = 128 +DOM_OFFSET = 0 +DOM_OFFSET1 = 384 + +cable_length_tup = ('Length(km)', 'Length OM3(2m)', 'Length OM2(m)', + 'Length OM1(m)', 'Length Cable Assembly(m)') + +compliance_code_tup = ( + '10/40G Ethernet Compliance Code', + 'SONET Compliance codes', + 'SAS/SATA compliance codes', + 'Gigabit Ethernet Compliant codes', + 'Fibre Channel link length/Transmitter Technology', + 'Fibre Channel transmission media', + 'Fibre Channel Speed') + +info_dict_keys = ['type', 'hardwarerev', 'serialnum', + 'manufacturename', 'modelname', 'Connector', + 'encoding', 'ext_identifier', 'ext_rateselect_compliance', + 'cable_type', 'cable_length', 'nominal_bit_rate', + 'specification_compliance', 'vendor_date', 'vendor_oui'] + +dom_dict_keys = ['rx_los', 'tx_fault', 'reset_status', + 'power_lpmode', 'tx_disable', 'tx_disable_channel', + 'temperature', 'voltage', 'rx1power', + 'rx2power', 'rx3power', 'rx4power', + 'tx1bias', 'tx2bias', 'tx3bias', + 'tx4bias', 'tx1power', 'tx2power', + 'tx3power', 'tx4power'] + +threshold_dict_keys = ['temphighalarm', 'temphighwarning', + 'templowalarm', 'templowwarning', + 'vcchighalarm', 'vcchighwarning', + 'vcclowalarm', 'vcclowwarning', + 'rxpowerhighalarm', 'rxpowerhighwarning', + 'rxpowerlowalarm', 'rxpowerlowwarning', + 'txpowerhighalarm', 'txpowerhighwarning', + 'txpowerlowalarm', 'txpowerlowwarning', + 'txbiashighalarm', 'txbiashighwarning', + 'txbiaslowalarm', 'txbiaslowwarning'] + +sff8436_parser = { + 'reset_status': [DOM_OFFSET, 2, 1, 'parse_dom_status_indicator'], + 'rx_los': [DOM_OFFSET, 3, 1, 'parse_dom_tx_rx_los'], + 'tx_fault': [DOM_OFFSET, 4, 1, 'parse_dom_tx_fault'], + 'tx_disable': [DOM_OFFSET, 86, 1, 'parse_dom_tx_disable'], + 'power_lpmode': [DOM_OFFSET, 93, 1, 'parse_dom_power_control'], + 'power_override': [DOM_OFFSET, 93, 1, 'parse_dom_power_control'], + 'Temperature': [DOM_OFFSET, 22, 2, 'parse_temperature'], + 'Voltage': [DOM_OFFSET, 26, 2, 'parse_voltage'], + 'ChannelMonitor': [DOM_OFFSET, 34, 16, 'parse_channel_monitor_params'], + + 'cable_type': [INFO_OFFSET, -1, -1, 'parse_sfp_info_bulk'], + 'cable_length': [INFO_OFFSET, -1, -1, 'parse_sfp_info_bulk'], + 'Connector': [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'type': [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'encoding': [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'ext_identifier': [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'ext_rateselect_compliance': + [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'nominal_bit_rate': [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'specification_compliance': + [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'manufacturename': [INFO_OFFSET, 20, 16, 'parse_vendor_name'], + 'vendor_oui': [INFO_OFFSET, 37, 3, 'parse_vendor_oui'], + 'modelname': [INFO_OFFSET, 40, 16, 'parse_vendor_pn'], + 'hardwarerev': [INFO_OFFSET, 56, 2, 'parse_vendor_rev'], + 'serialnum': [INFO_OFFSET, 68, 16, 'parse_vendor_sn'], + 'vendor_date': [INFO_OFFSET, 84, 8, 'parse_vendor_date'], + 'ModuleThreshold': [DOM_OFFSET1, 128, 24, 'parse_module_threshold_values'], + 'ChannelThreshold': [DOM_OFFSET1, 176, 16, 'parse_channel_threshold_values'], +} + + +class Sfp(SfpBase): + """ + DELLEMC Platform-specific Sfp class + """ + + def __init__(self, index, sfp_type, eeprom_path, + sfp_control, sfp_ctrl_idx): + SfpBase.__init__(self) + self.sfp_type = sfp_type + self.index = index + self.eeprom_path = eeprom_path + self.sfp_control = sfp_control + self.sfp_ctrl_idx = sfp_ctrl_idx + self.sfpInfo = sff8436InterfaceId() + self.sfpDomInfo = sff8436Dom() + + def _read_eeprom_bytes(self, eeprom_path, offset, num_bytes): + eeprom_raw = [] + try: + eeprom = open(eeprom_path, mode="rb", buffering=0) + except IOError: + return None + + for i in range(0, num_bytes): + eeprom_raw.append("0x00") + + try: + eeprom.seek(offset) + raw = eeprom.read(num_bytes) + except IOError: + eeprom.close() + return None + + try: + for n in range(0, num_bytes): + eeprom_raw[n] = hex(ord(raw[n]))[2:].zfill(2) + except BaseException: + eeprom.close() + return None + + eeprom.close() + return eeprom_raw + + def _get_eeprom_data(self, eeprom_key): + eeprom_data = None + page_offset = None + + if (self.sfpInfo is None): + return None + + page_offset = sff8436_parser[eeprom_key][PAGE_OFFSET] + eeprom_data_raw = self._read_eeprom_bytes( + self.eeprom_path, + (sff8436_parser[eeprom_key][PAGE_OFFSET] + + sff8436_parser[eeprom_key][KEY_OFFSET]), + sff8436_parser[eeprom_key][KEY_WIDTH]) + if (eeprom_data_raw is not None): + # Offset 128 is used to retrieve sff8436InterfaceId Info + # Offset 0 is used to retrieve sff8436Dom Info + if (page_offset == 128): + eeprom_data = getattr( + self.sfpInfo, sff8436_parser[eeprom_key][FUNC_NAME])( + eeprom_data_raw, 0) + else: + eeprom_data = getattr( + self.sfpDomInfo, sff8436_parser[eeprom_key][FUNC_NAME])( + eeprom_data_raw, 0) + + return eeprom_data + + def get_transceiver_info(self): + """ + Retrieves transceiver info of this SFP + """ + transceiver_info_dict = {} + compliance_code_dict = {} + transceiver_info_dict = dict.fromkeys(info_dict_keys, 'N/A') + + # BaseInformation + iface_data = self._get_eeprom_data('type') + if (iface_data is not None): + connector = iface_data['data']['Connector']['value'] + encoding = iface_data['data']['EncodingCodes']['value'] + ext_id = iface_data['data']['Extended Identifier']['value'] + rate_identifier = iface_data['data']['RateIdentifier']['value'] + identifier = iface_data['data']['type']['value'] + bit_rate = str( + iface_data['data']['Nominal Bit Rate(100Mbs)']['value']) + + for key in compliance_code_tup: + if key in iface_data['data']['Specification compliance']['value']: + compliance_code_dict[key] = iface_data['data']['Specification compliance']['value'][key]['value'] + for key in cable_length_tup: + if key in iface_data['data']: + cable_type = key + cable_length = str(iface_data['data'][key]['value']) + else: + return None + + # Vendor Date + vendor_date_data = self._get_eeprom_data('vendor_date') + if (vendor_date_data is not None): + vendor_date = vendor_date_data['data']['VendorDataCode(YYYY-MM-DD Lot)']['value'] + else: + return None + + # Vendor Name + vendor_name_data = self._get_eeprom_data('manufacturename') + if (vendor_name_data is not None): + vendor_name = vendor_name_data['data']['Vendor Name']['value'] + else: + return None + + # Vendor OUI + vendor_oui_data = self._get_eeprom_data('vendor_oui') + if (vendor_oui_data is not None): + vendor_oui = vendor_oui_data['data']['Vendor OUI']['value'] + else: + return None + + # Vendor PN + vendor_pn_data = self._get_eeprom_data('modelname') + if (vendor_pn_data is not None): + vendor_pn = vendor_pn_data['data']['Vendor PN']['value'] + else: + return None + + # Vendor Revision + vendor_rev_data = self._get_eeprom_data('hardwarerev') + if (vendor_rev_data is not None): + vendor_rev = vendor_rev_data['data']['Vendor Rev']['value'] + else: + return None + + # Vendor Serial Number + vendor_sn_data = self._get_eeprom_data('serialnum') + if (vendor_sn_data is not None): + vendor_sn = vendor_sn_data['data']['Vendor SN']['value'] + else: + return None + + # Fill The Dictionary and return + transceiver_info_dict['type'] = identifier + transceiver_info_dict['hardwarerev'] = vendor_rev + transceiver_info_dict['serialnum'] = vendor_sn + transceiver_info_dict['manufacturename'] = vendor_name + transceiver_info_dict['modelname'] = vendor_pn + transceiver_info_dict['Connector'] = connector + transceiver_info_dict['encoding'] = encoding + transceiver_info_dict['ext_identifier'] = ext_id + transceiver_info_dict['ext_rateselect_compliance'] = rate_identifier + transceiver_info_dict['cable_type'] = cable_type + transceiver_info_dict['cable_length'] = cable_length + transceiver_info_dict['nominal_bit_rate'] = bit_rate + transceiver_info_dict['specification_compliance'] = str( + compliance_code_dict) + transceiver_info_dict['vendor_date'] = vendor_date + transceiver_info_dict['vendor_oui'] = vendor_oui + + return transceiver_info_dict + + def get_transceiver_threshold_info(self): + """ + Retrieves transceiver threshold info of this SFP + """ + transceiver_dom_threshold_dict = {} + transceiver_dom_threshold_dict = dict.fromkeys( + threshold_dict_keys, 'N/A') + + # Module Threshold + module_threshold_data = self._get_eeprom_data('ModuleThreshold') + if (module_threshold_data is not None): + tempHighAlarm = module_threshold_data['data']['TempHighAlarm']['value'] + tempLowAlarm = module_threshold_data['data']['TempLowAlarm']['value'] + tempHighWarn = module_threshold_data['data']['TempHighWarning']['value'] + tempLowWarn = module_threshold_data['data']['TempLowWarning']['value'] + vccHighAlarm = module_threshold_data['data']['VccHighAlarm']['value'] + vccLowAlarm = module_threshold_data['data']['VccLowAlarm']['value'] + vccHighWarn = module_threshold_data['data']['VccHighWarning']['value'] + vccLowWarn = module_threshold_data['data']['VccLowWarning']['value'] + else: + return None + + # Channel Threshold + channel_threshold_data = self._get_eeprom_data('ChannelThreshold') + if (channel_threshold_data is not None): + rxPowerHighAlarm = channel_threshold_data['data']['RxPowerHighAlarm']['value'] + rxPowerLowAlarm = channel_threshold_data['data']['RxPowerLowAlarm']['value'] + rxPowerHighWarn = channel_threshold_data['data']['RxPowerHighWarning']['value'] + rxPowerLowWarn = channel_threshold_data['data']['RxPowerLowWarning']['value'] + txBiasHighAlarm = channel_threshold_data['data']['TxBiasHighAlarm']['value'] + txBiasLowAlarm = channel_threshold_data['data']['TxBiasLowAlarm']['value'] + txBiasHighWarn = channel_threshold_data['data']['TxBiasHighWarning']['value'] + txBiasLowWarn = channel_threshold_data['data']['TxBiasLowWarning']['value'] + else: + return None + + transceiver_dom_threshold_dict['temphighalarm'] = tempHighAlarm + transceiver_dom_threshold_dict['templowalarm'] = tempLowAlarm + transceiver_dom_threshold_dict['temphighwarning'] = tempHighWarn + transceiver_dom_threshold_dict['templowwarning'] = tempLowWarn + transceiver_dom_threshold_dict['vcchighalarm'] = vccHighAlarm + transceiver_dom_threshold_dict['vcclowalarm'] = vccLowAlarm + transceiver_dom_threshold_dict['vcchighwarning'] = vccHighWarn + transceiver_dom_threshold_dict['vcclowwarning'] = vccLowWarn + transceiver_dom_threshold_dict['rxpowerhighalarm'] = rxPowerHighAlarm + transceiver_dom_threshold_dict['rxpowerlowalarm'] = rxPowerLowAlarm + transceiver_dom_threshold_dict['rxpowerhighwarning'] = rxPowerHighWarn + transceiver_dom_threshold_dict['rxpowerlowwarning'] = rxPowerLowWarn + transceiver_dom_threshold_dict['txbiashighalarm'] = txBiasHighAlarm + transceiver_dom_threshold_dict['txbiaslowalarm'] = txBiasLowAlarm + transceiver_dom_threshold_dict['txbiashighwarning'] = txBiasHighWarn + transceiver_dom_threshold_dict['txbiaslowwarning'] = txBiasLowWarn + + return transceiver_dom_threshold_dict + + def get_transceiver_bulk_status(self): + """ + Retrieves transceiver bulk status of this SFP + """ + tx_bias_list = [] + rx_power_list = [] + transceiver_dom_dict = {} + transceiver_dom_dict = dict.fromkeys(dom_dict_keys, 'N/A') + + # RxLos + rx_los = self.get_rx_los() + + # TxFault + tx_fault = self.get_tx_fault() + + # ResetStatus + reset_state = self.get_reset_status() + + # LowPower Mode + lp_mode = self.get_lpmode() + + # TxDisable + tx_disable = self.get_tx_disable() + + # TxDisable Channel + tx_disable_channel = self.get_tx_disable_channel() + + # Temperature + temperature = self.get_temperature() + + # Voltage + voltage = self.get_voltage() + + # Channel Monitor + channel_monitor_data = self._get_eeprom_data('ChannelMonitor') + if (channel_monitor_data is not None): + tx_bias = channel_monitor_data['data']['TX1Bias']['value'] + tx_bias_list.append(tx_bias) + tx_bias = channel_monitor_data['data']['TX2Bias']['value'] + tx_bias_list.append(tx_bias) + tx_bias = channel_monitor_data['data']['TX3Bias']['value'] + tx_bias_list.append(tx_bias) + tx_bias = channel_monitor_data['data']['TX4Bias']['value'] + tx_bias_list.append(tx_bias) + rx_power = channel_monitor_data['data']['RX1Power']['value'] + rx_power_list.append(rx_power) + rx_power = channel_monitor_data['data']['RX2Power']['value'] + rx_power_list.append(rx_power) + rx_power = channel_monitor_data['data']['RX3Power']['value'] + rx_power_list.append(rx_power) + rx_power = channel_monitor_data['data']['RX4Power']['value'] + rx_power_list.append(rx_power) + else: + return None + + transceiver_dom_dict['rx_los'] = rx_los + transceiver_dom_dict['tx_fault'] = tx_fault + transceiver_dom_dict['reset_status'] = reset_state + transceiver_dom_dict['power_lpmode'] = lp_mode + transceiver_dom_dict['tx_disable'] = tx_disable + transceiver_dom_dict['tx_disable_channel'] = tx_disable_channel + transceiver_dom_dict['temperature'] = temperature + transceiver_dom_dict['voltage'] = voltage + transceiver_dom_dict['tx1bias'] = tx_bias_list[0] + transceiver_dom_dict['tx2bias'] = tx_bias_list[1] + transceiver_dom_dict['tx3bias'] = tx_bias_list[2] + transceiver_dom_dict['tx4bias'] = tx_bias_list[3] + transceiver_dom_dict['rx1power'] = rx_power_list[0] + transceiver_dom_dict['rx2power'] = rx_power_list[1] + transceiver_dom_dict['rx3power'] = rx_power_list[2] + transceiver_dom_dict['rx4power'] = rx_power_list[3] + + return transceiver_dom_dict + + def get_name(self): + """ + Retrieves the name of the sfp + Returns : QSFP or QSFP+ or QSFP28 + """ + iface_data = self._get_eeprom_data('type') + if (iface_data is not None): + identifier = iface_data['data']['type']['value'] + else: + return None + + return identifier + + def get_presence(self): + """ + Retrieves the presence of the sfp + """ + presence_ctrl = self.sfp_control + 'qsfp_modprs' + try: + reg_file = open(presence_ctrl) + except IOError as e: + return False + + reg_hex = reg_file.readline().rstrip() + + # content is a string containing the hex + # representation of the register + reg_value = int(reg_hex, 16) + + # Mask off the bit corresponding to our port + mask = (1 << self.sfp_ctrl_idx) + + # ModPrsL is active low + if ((reg_value & mask) == 0): + return True + + return False + + def get_model(self): + """ + Retrieves the model number (or part number) of the sfp + """ + vendor_pn_data = self._get_eeprom_data('modelname') + if (vendor_pn_data is not None): + vendor_pn = vendor_pn_data['data']['Vendor PN']['value'] + else: + return None + + return vendor_pn + + def get_serial(self): + """ + Retrieves the serial number of the sfp + """ + vendor_sn_data = self._get_eeprom_data('serialnum') + if (vendor_sn_data is not None): + vendor_sn = vendor_sn_data['data']['Vendor SN']['value'] + else: + return None + + return vendor_sn + + def get_reset_status(self): + """ + Retrieves the reset status of SFP + """ + reset_status = None + reset_ctrl = self.sfp_control + 'qsfp_reset' + try: + reg_file = open(reset_ctrl, "r+") + except IOError as e: + return False + + reg_hex = reg_file.readline().rstrip() + + # content is a string containing the hex + # representation of the register + reg_value = int(reg_hex, 16) + + # Mask off the bit corresponding to our port + index = self.sfp_ctrl_idx + + mask = (1 << index) + + if ((reg_value & mask) == 0): + reset_status = True + else: + reset_status = False + + return reset_status + + def get_rx_los(self): + """ + Retrieves the RX LOS (lost-of-signal) status of SFP + """ + rx_los = None + rx_los_list = [] + + rx_los_data = self._get_eeprom_data('rx_los') + if (rx_los_data is not None): + rx_los = rx_los_data['data']['Rx1LOS']['value'] + if (rx_los is 'On'): + rx_los_list.append(True) + else: + rx_los_list.append(False) + rx_los = rx_los_data['data']['Rx2LOS']['value'] + if (rx_los is 'On'): + rx_los_list.append(True) + else: + rx_los_list.append(False) + rx_los = rx_los_data['data']['Rx3LOS']['value'] + if (rx_los is 'On'): + rx_los_list.append(True) + else: + rx_los_list.append(False) + rx_los = rx_los_data['data']['Rx4LOS']['value'] + if (rx_los is 'On'): + rx_los_list.append(True) + else: + rx_los_list.append(False) + + if (rx_los_list[0] and rx_los_list[1] + and rx_los_list[2] and rx_los_list[3]): + rx_los = True + else: + rx_los = False + + return rx_los + + def get_tx_fault(self): + """ + Retrieves the TX fault status of SFP + """ + tx_fault = None + tx_fault_list = [] + + tx_fault_data = self._get_eeprom_data('tx_fault') + if (tx_fault_data is not None): + tx_fault = tx_fault_data['data']['Tx1Fault']['value'] + if (tx_fault is 'On'): + tx_fault_list.append(True) + else: + tx_fault_list.append(False) + tx_fault = tx_fault_data['data']['Tx2Fault']['value'] + if (tx_fault is 'On'): + tx_fault_list.append(True) + else: + tx_fault_list.append(False) + tx_fault = tx_fault_data['data']['Tx3Fault']['value'] + if (tx_fault is 'On'): + tx_fault_list.append(True) + else: + tx_fault_list.append(False) + tx_fault = tx_fault_data['data']['Tx4Fault']['value'] + if (tx_fault is 'On'): + tx_fault_list.append(True) + else: + tx_fault_list.append(False) + + if (tx_fault_list[0] and tx_fault_list[1] + and tx_fault_list[2] and tx_fault_list[3]): + tx_fault = True + else: + tx_fault = False + + return tx_fault + + def get_tx_disable(self): + """ + Retrieves the tx_disable status of this SFP + """ + tx_disable = None + tx_disable_list = [] + + tx_disable_data = self._get_eeprom_data('tx_disable') + if (tx_disable_data is not None): + tx_disable = tx_disable_data['data']['Tx1Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(True) + else: + tx_disable_list.append(False) + tx_disable = tx_disable_data['data']['Tx2Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(True) + else: + tx_disable_list.append(False) + tx_disable = tx_disable_data['data']['Tx3Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(True) + else: + tx_disable_list.append(False) + tx_disable = tx_disable_data['data']['Tx4Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(True) + else: + tx_disable_list.append(False) + + if (tx_disable_list[0] and tx_disable_list[1] + and tx_disable_list[2] and tx_disable_list[3]): + tx_disable = True + else: + tx_disable = False + + return tx_disable + + def get_tx_disable_channel(self): + """ + Retrieves the TX disabled channels in this SFP + """ + tx_disable = None + tx_disable_list = [] + + tx_disable_data = self._get_eeprom_data('tx_disable') + if (tx_disable_data is not None): + tx_disable = tx_disable_data['data']['Tx1Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(1) + else: + tx_disable_list.append(0) + tx_disable = tx_disable_data['data']['Tx2Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(1) + else: + tx_disable_list.append(0) + tx_disable = tx_disable_data['data']['Tx3Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(1) + else: + tx_disable_list.append(0) + tx_disable = tx_disable_data['data']['Tx4Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(1) + else: + tx_disable_list.append(0) + + bit4 = int(tx_disable_list[3]) * 8 + bit3 = int(tx_disable_list[2]) * 4 + bit2 = int(tx_disable_list[1]) * 2 + bit1 = int(tx_disable_list[0]) * 1 + + tx_disable_channel = hex(bit4 + bit3 + bit2 + bit1) + + return tx_disable_channel + + def get_lpmode(self): + """ + Retrieves the lpmode (low power mode) status of this SFP + """ + lpmode_ctrl = self.sfp_control + 'qsfp_lpmode' + try: + reg_file = open(lpmode_ctrl, "r+") + except IOError as e: + return False + + reg_hex = reg_file.readline().rstrip() + + # content is a string containing the hex + # representation of the register + reg_value = int(reg_hex, 16) + + # Mask off the bit corresponding to our port + index = self.sfp_ctrl_idx + + mask = (1 << index) + + if ((reg_value & mask) == 0): + lpmode_state = False + else: + lpmode_state = True + + return lpmode_state + + def get_power_override(self): + """ + Retrieves the power-override status of this SFP + """ + power_override_state = None + + # Reset Status + power_override_data = self._get_eeprom_data('power_override') + if (power_override_data is not None): + power_override = power_override_data['data']['PowerOverRide']['value'] + if (power_override is 'On'): + power_override_state = True + else: + power_override_state = False + + return power_override_state + + def get_temperature(self): + """ + Retrieves the temperature of this SFP + """ + temperature = None + + temperature_data = self._get_eeprom_data('Temperature') + if (temperature_data is not None): + temperature = temperature_data['data']['Temperature']['value'] + + return temperature + + def get_voltage(self): + """ + Retrieves the supply voltage of this SFP + """ + voltage = None + + voltage_data = self._get_eeprom_data('Voltage') + if (voltage_data is not None): + voltage = voltage_data['data']['Vcc']['value'] + + return voltage + + def get_tx_bias(self): + """ + Retrieves the TX bias current of this SFP + """ + tx_bias = None + tx_bias_list = [] + + tx_bias_data = self._get_eeprom_data('ChannelMonitor') + if (tx_bias_data is not None): + tx_bias = tx_bias_data['data']['TX1Bias']['value'] + tx_bias_list.append(tx_bias) + tx_bias = tx_bias_data['data']['TX2Bias']['value'] + tx_bias_list.append(tx_bias) + tx_bias = tx_bias_data['data']['TX3Bias']['value'] + tx_bias_list.append(tx_bias) + tx_bias = tx_bias_data['data']['TX4Bias']['value'] + tx_bias_list.append(tx_bias) + + return tx_bias_list + + def get_rx_power(self): + """ + Retrieves the received optical power for this SFP + """ + rx_power = None + rx_power_list = [] + + rx_power_data = self._get_eeprom_data('ChannelMonitor') + if (rx_power_data is not None): + rx_power = rx_power_data['data']['RX1Power']['value'] + rx_power_list.append(rx_power) + rx_power = rx_power_data['data']['RX2Power']['value'] + rx_power_list.append(rx_power) + rx_power = rx_power_data['data']['RX3Power']['value'] + rx_power_list.append(rx_power) + rx_power = rx_power_data['data']['RX4Power']['value'] + rx_power_list.append(rx_power) + + return rx_power_list + + + def get_tx_power(self): + """ + Retrieves the TX power of this SFP + """ + tx_power = None + tx_power_list = [] + + tx_power_list.append('-infdBm') + tx_power_list.append('-infdBm') + tx_power_list.append('-infdBm') + tx_power_list.append('-infdBm') + + return tx_power_list + + def reset(self): + """ + Reset SFP and return all user module settings to their default srate. + """ + reset_ctrl = self.sfp_control + 'qsfp_reset' + try: + # Open reset_ctrl in both read & write mode + reg_file = open(reset_ctrl, "r+") + except IOError as e: + return False + + reg_hex = reg_file.readline().rstrip() + reg_value = int(reg_hex, 16) + + # Mask off the bit corresponding to our port + index = self.sfp_ctrl_idx + + # Mask off the bit corresponding to our port + mask = (1 << index) + + # ResetL is active low + reg_value = (reg_value & ~mask) + + # Convert our register value back to a + # hex string and write back + reg_file.seek(0) + reg_file.write(hex(reg_value)) + reg_file.close() + + # Sleep 1 second to allow it to settle + time.sleep(1) + + # Flip the bit back high and write back to the + # register to take port out of reset + try: + reg_file = open(reset_ctrl, "w") + except IOError as e: + return False + + reg_value = reg_value | mask + reg_file.seek(0) + reg_file.write(hex(reg_value)) + reg_file.close() + + return True + + def set_lpmode(self, lpmode): + """ + Sets the lpmode (low power mode) of SFP + """ + lpmode_ctrl = self.sfp_control + 'qsfp_lpmode' + try: + reg_file = open(lpmode_ctrl, "r+") + except IOError as e: + return False + + reg_hex = reg_file.readline().rstrip() + + # content is a string containing the hex + # representation of the register + reg_value = int(reg_hex, 16) + + # Mask off the bit corresponding to our port + index = self.sfp_ctrl_idx + + mask = (1 << index) + + # LPMode is active high; set or clear the bit accordingly + if lpmode is True: + reg_value = (reg_value | mask) + else: + reg_value = (reg_value & ~mask) + + # Convert our register value back to a hex string and write back + content = hex(reg_value) + + reg_file.seek(0) + reg_file.write(content) + reg_file.close() + + return True + + def tx_disable(self, tx_disable): + """ + Disable SFP TX for all channels + """ + return False + + def tx_disable_channel(self, channel, disable): + """ + Sets the tx_disable for specified SFP channels + """ + return False + + def tx_disable_channel(self, channel, disable): + """ + Sets the tx_disable for specified SFP channels + """ + return False + + def set_power_override(self, power_override, power_set): + """ + Sets SFP power level using power_override and power_set + """ + return False + + def get_status(self): + """ + Retrieves the operational status of the device + """ + reset = self.get_reset_status() + + if (reset == True): + status = False + else: + status = True + + return status diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/chassis.py b/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/chassis.py index d03eee255d..5d569d9e70 100755 --- a/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/chassis.py +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/chassis.py @@ -55,15 +55,15 @@ class Chassis(ChassisBase): 8: [6, 74], 9: [6, 75], 10: [6, 76], 11: [6, 77], 12: [6, 78], 13: [6, 79], 14: [6, 80], 15: [6, 81], # IOM 2 - 16: [8, 50], 17: [8, 51], 18: [8, 52], 19: [8, 53], - 20: [8, 54], 21: [8, 55], 22: [8, 56], 23: [8, 57], - 24: [8, 58], 25: [8, 59], 26: [8, 60], 27: [8, 61], - 28: [8, 62], 29: [8, 63], 30: [8, 64], 31: [8, 65], + 16: [8, 34], 17: [8, 35], 18: [8, 36], 19: [8, 37], + 20: [8, 38], 21: [8, 39], 22: [8, 40], 23: [8, 41], + 24: [8, 42], 25: [8, 43], 26: [8, 44], 27: [8, 45], + 28: [8, 46], 29: [8, 47], 30: [8, 48], 31: [8, 49], # IOM 3 - 32: [7, 34], 33: [7, 35], 34: [7, 36], 35: [7, 37], - 36: [7, 38], 37: [7, 39], 38: [7, 40], 39: [7, 41], - 40: [7, 42], 41: [7, 43], 42: [7, 44], 43: [7, 45], - 44: [7, 46], 45: [7, 47], 46: [7, 48], 47: [7, 49], + 32: [7, 50], 33: [7, 51], 34: [7, 52], 35: [7, 53], + 36: [7, 54], 37: [7, 55], 38: [7, 56], 39: [7, 57], + 40: [7, 58], 41: [7, 59], 42: [7, 60], 43: [7, 61], + 44: [7, 62], 45: [7, 63], 46: [7, 64], 47: [7, 65], # IOM 4 48: [9, 18], 49: [9, 19], 50: [9, 20], 51: [9, 21], 52: [9, 22], 53: [9, 23], 54: [9, 24], 55: [9, 25], diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/sfp.py b/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/sfp.py index b312a52c7b..8f8f63266f 100755 --- a/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/sfp.py +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/sonic_platform/sfp.py @@ -418,7 +418,13 @@ class Sfp(SfpBase): reg_value = int(reg_hex, 16) # Mask off the bit corresponding to our port - mask = (1 << self.sfp_ctrl_idx) + if (self.sfp_ctrl_idx > 15): + index = self.sfp_ctrl_idx % 16 + else: + index = self.sfp_ctrl_idx + + # Mask off the bit corresponding to our port + mask = (1 << index) # ModPrsL is active low if ((reg_value & mask) == 0): @@ -849,3 +855,40 @@ class Sfp(SfpBase): reg_file.close() return True + + def tx_disable(self, tx_disable): + """ + Disable SFP TX for all channels + """ + return False + + def tx_disable_channel(self, channel, disable): + """ + Sets the tx_disable for specified SFP channels + """ + return False + + def tx_disable_channel(self, channel, disable): + """ + Sets the tx_disable for specified SFP channels + """ + return False + + def set_power_override(self, power_override, power_set): + """ + Sets SFP power level using power_override and power_set + """ + return False + + def get_status(self): + """ + Retrieves the operational status of the device + """ + reset = self.get_reset_status() + + if (reset == True): + status = False + else: + status = True + + return status diff --git a/platform/broadcom/sonic-platform-modules-dell/z9100/sonic_platform/sfp.py b/platform/broadcom/sonic-platform-modules-dell/z9100/sonic_platform/sfp.py deleted file mode 120000 index 84af7963bb..0000000000 --- a/platform/broadcom/sonic-platform-modules-dell/z9100/sonic_platform/sfp.py +++ /dev/null @@ -1 +0,0 @@ -../../s6100/sonic_platform/sfp.py \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-dell/z9100/sonic_platform/sfp.py b/platform/broadcom/sonic-platform-modules-dell/z9100/sonic_platform/sfp.py new file mode 100644 index 0000000000..f29b708b8e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-dell/z9100/sonic_platform/sfp.py @@ -0,0 +1,879 @@ +#!/usr/bin/env python + +############################################################################# +# DELLEMC +# +# Module contains an implementation of SONiC Platform Base API and +# provides the platform information +# +############################################################################# + +try: + import os + import time + from sonic_platform_base.chassis_base import ChassisBase + from sonic_platform_base.sfp_base import SfpBase + from sonic_platform_base.sonic_sfp.sff8436 import sff8436InterfaceId + from sonic_platform_base.sonic_sfp.sff8436 import sff8436Dom +except ImportError as e: + raise ImportError(str(e) + "- required module not found") + + +PAGE_OFFSET = 0 +KEY_OFFSET = 1 +KEY_WIDTH = 2 +FUNC_NAME = 3 + +INFO_OFFSET = 128 +DOM_OFFSET = 0 +DOM_OFFSET1 = 384 + +cable_length_tup = ('Length(km)', 'Length OM3(2m)', 'Length OM2(m)', + 'Length OM1(m)', 'Length Cable Assembly(m)') + +compliance_code_tup = ( + '10/40G Ethernet Compliance Code', + 'SONET Compliance codes', + 'SAS/SATA compliance codes', + 'Gigabit Ethernet Compliant codes', + 'Fibre Channel link length/Transmitter Technology', + 'Fibre Channel transmission media', + 'Fibre Channel Speed') + +info_dict_keys = ['type', 'hardwarerev', 'serialnum', + 'manufacturename', 'modelname', 'Connector', + 'encoding', 'ext_identifier', 'ext_rateselect_compliance', + 'cable_type', 'cable_length', 'nominal_bit_rate', + 'specification_compliance', 'vendor_date', 'vendor_oui'] + +dom_dict_keys = ['rx_los', 'tx_fault', 'reset_status', + 'power_lpmode', 'tx_disable', 'tx_disable_channel', + 'temperature', 'voltage', 'rx1power', + 'rx2power', 'rx3power', 'rx4power', + 'tx1bias', 'tx2bias', 'tx3bias', + 'tx4bias', 'tx1power', 'tx2power', + 'tx3power', 'tx4power'] + +threshold_dict_keys = ['temphighalarm', 'temphighwarning', + 'templowalarm', 'templowwarning', + 'vcchighalarm', 'vcchighwarning', + 'vcclowalarm', 'vcclowwarning', + 'rxpowerhighalarm', 'rxpowerhighwarning', + 'rxpowerlowalarm', 'rxpowerlowwarning', + 'txpowerhighalarm', 'txpowerhighwarning', + 'txpowerlowalarm', 'txpowerlowwarning', + 'txbiashighalarm', 'txbiashighwarning', + 'txbiaslowalarm', 'txbiaslowwarning'] + +sff8436_parser = { + 'reset_status': [DOM_OFFSET, 2, 1, 'parse_dom_status_indicator'], + 'rx_los': [DOM_OFFSET, 3, 1, 'parse_dom_tx_rx_los'], + 'tx_fault': [DOM_OFFSET, 4, 1, 'parse_dom_tx_fault'], + 'tx_disable': [DOM_OFFSET, 86, 1, 'parse_dom_tx_disable'], + 'power_lpmode': [DOM_OFFSET, 93, 1, 'parse_dom_power_control'], + 'power_override': [DOM_OFFSET, 93, 1, 'parse_dom_power_control'], + 'Temperature': [DOM_OFFSET, 22, 2, 'parse_temperature'], + 'Voltage': [DOM_OFFSET, 26, 2, 'parse_voltage'], + 'ChannelMonitor': [DOM_OFFSET, 34, 16, 'parse_channel_monitor_params'], + + 'cable_type': [INFO_OFFSET, -1, -1, 'parse_sfp_info_bulk'], + 'cable_length': [INFO_OFFSET, -1, -1, 'parse_sfp_info_bulk'], + 'Connector': [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'type': [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'encoding': [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'ext_identifier': [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'ext_rateselect_compliance': + [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'nominal_bit_rate': [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'specification_compliance': + [INFO_OFFSET, 0, 20, 'parse_sfp_info_bulk'], + 'manufacturename': [INFO_OFFSET, 20, 16, 'parse_vendor_name'], + 'vendor_oui': [INFO_OFFSET, 37, 3, 'parse_vendor_oui'], + 'modelname': [INFO_OFFSET, 40, 16, 'parse_vendor_pn'], + 'hardwarerev': [INFO_OFFSET, 56, 2, 'parse_vendor_rev'], + 'serialnum': [INFO_OFFSET, 68, 16, 'parse_vendor_sn'], + 'vendor_date': [INFO_OFFSET, 84, 8, 'parse_vendor_date'], + 'ModuleThreshold': [DOM_OFFSET1, 128, 24, 'parse_module_threshold_values'], + 'ChannelThreshold': [DOM_OFFSET1, 176, 16, 'parse_channel_threshold_values'], +} + + +class Sfp(SfpBase): + """ + DELLEMC Platform-specific Sfp class + """ + + def __init__(self, index, sfp_type, eeprom_path, + sfp_control, sfp_ctrl_idx): + SfpBase.__init__(self) + self.sfp_type = sfp_type + self.index = index + self.eeprom_path = eeprom_path + self.sfp_control = sfp_control + self.sfp_ctrl_idx = sfp_ctrl_idx + self.sfpInfo = sff8436InterfaceId() + self.sfpDomInfo = sff8436Dom() + + def _read_eeprom_bytes(self, eeprom_path, offset, num_bytes): + eeprom_raw = [] + try: + eeprom = open(eeprom_path, mode="rb", buffering=0) + except IOError: + return None + + for i in range(0, num_bytes): + eeprom_raw.append("0x00") + + try: + eeprom.seek(offset) + raw = eeprom.read(num_bytes) + except IOError: + eeprom.close() + return None + + try: + for n in range(0, num_bytes): + eeprom_raw[n] = hex(ord(raw[n]))[2:].zfill(2) + except BaseException: + eeprom.close() + return None + + eeprom.close() + return eeprom_raw + + def _get_eeprom_data(self, eeprom_key): + eeprom_data = None + page_offset = None + + if (self.sfpInfo is None): + return None + + page_offset = sff8436_parser[eeprom_key][PAGE_OFFSET] + eeprom_data_raw = self._read_eeprom_bytes( + self.eeprom_path, + (sff8436_parser[eeprom_key][PAGE_OFFSET] + + sff8436_parser[eeprom_key][KEY_OFFSET]), + sff8436_parser[eeprom_key][KEY_WIDTH]) + if (eeprom_data_raw is not None): + # Offset 128 is used to retrieve sff8436InterfaceId Info + # Offset 0 is used to retrieve sff8436Dom Info + if (page_offset == 128): + eeprom_data = getattr( + self.sfpInfo, sff8436_parser[eeprom_key][FUNC_NAME])( + eeprom_data_raw, 0) + else: + eeprom_data = getattr( + self.sfpDomInfo, sff8436_parser[eeprom_key][FUNC_NAME])( + eeprom_data_raw, 0) + + return eeprom_data + + def get_transceiver_info(self): + """ + Retrieves transceiver info of this SFP + """ + transceiver_info_dict = {} + compliance_code_dict = {} + transceiver_info_dict = dict.fromkeys(info_dict_keys, 'N/A') + + # BaseInformation + iface_data = self._get_eeprom_data('type') + if (iface_data is not None): + connector = iface_data['data']['Connector']['value'] + encoding = iface_data['data']['EncodingCodes']['value'] + ext_id = iface_data['data']['Extended Identifier']['value'] + rate_identifier = iface_data['data']['RateIdentifier']['value'] + identifier = iface_data['data']['type']['value'] + bit_rate = str( + iface_data['data']['Nominal Bit Rate(100Mbs)']['value']) + + for key in compliance_code_tup: + if key in iface_data['data']['Specification compliance']['value']: + compliance_code_dict[key] = iface_data['data']['Specification compliance']['value'][key]['value'] + for key in cable_length_tup: + if key in iface_data['data']: + cable_type = key + cable_length = str(iface_data['data'][key]['value']) + else: + return None + + # Vendor Date + vendor_date_data = self._get_eeprom_data('vendor_date') + if (vendor_date_data is not None): + vendor_date = vendor_date_data['data']['VendorDataCode(YYYY-MM-DD Lot)']['value'] + else: + return None + + # Vendor Name + vendor_name_data = self._get_eeprom_data('manufacturename') + if (vendor_name_data is not None): + vendor_name = vendor_name_data['data']['Vendor Name']['value'] + else: + return None + + # Vendor OUI + vendor_oui_data = self._get_eeprom_data('vendor_oui') + if (vendor_oui_data is not None): + vendor_oui = vendor_oui_data['data']['Vendor OUI']['value'] + else: + return None + + # Vendor PN + vendor_pn_data = self._get_eeprom_data('modelname') + if (vendor_pn_data is not None): + vendor_pn = vendor_pn_data['data']['Vendor PN']['value'] + else: + return None + + # Vendor Revision + vendor_rev_data = self._get_eeprom_data('hardwarerev') + if (vendor_rev_data is not None): + vendor_rev = vendor_rev_data['data']['Vendor Rev']['value'] + else: + return None + + # Vendor Serial Number + vendor_sn_data = self._get_eeprom_data('serialnum') + if (vendor_sn_data is not None): + vendor_sn = vendor_sn_data['data']['Vendor SN']['value'] + else: + return None + + # Fill The Dictionary and return + transceiver_info_dict['type'] = identifier + transceiver_info_dict['hardwarerev'] = vendor_rev + transceiver_info_dict['serialnum'] = vendor_sn + transceiver_info_dict['manufacturename'] = vendor_name + transceiver_info_dict['modelname'] = vendor_pn + transceiver_info_dict['Connector'] = connector + transceiver_info_dict['encoding'] = encoding + transceiver_info_dict['ext_identifier'] = ext_id + transceiver_info_dict['ext_rateselect_compliance'] = rate_identifier + transceiver_info_dict['cable_type'] = cable_type + transceiver_info_dict['cable_length'] = cable_length + transceiver_info_dict['nominal_bit_rate'] = bit_rate + transceiver_info_dict['specification_compliance'] = str( + compliance_code_dict) + transceiver_info_dict['vendor_date'] = vendor_date + transceiver_info_dict['vendor_oui'] = vendor_oui + + return transceiver_info_dict + + def get_transceiver_threshold_info(self): + """ + Retrieves transceiver threshold info of this SFP + """ + transceiver_dom_threshold_dict = {} + transceiver_dom_threshold_dict = dict.fromkeys( + threshold_dict_keys, 'N/A') + + # Module Threshold + module_threshold_data = self._get_eeprom_data('ModuleThreshold') + if (module_threshold_data is not None): + tempHighAlarm = module_threshold_data['data']['TempHighAlarm']['value'] + tempLowAlarm = module_threshold_data['data']['TempLowAlarm']['value'] + tempHighWarn = module_threshold_data['data']['TempHighWarning']['value'] + tempLowWarn = module_threshold_data['data']['TempLowWarning']['value'] + vccHighAlarm = module_threshold_data['data']['VccHighAlarm']['value'] + vccLowAlarm = module_threshold_data['data']['VccLowAlarm']['value'] + vccHighWarn = module_threshold_data['data']['VccHighWarning']['value'] + vccLowWarn = module_threshold_data['data']['VccLowWarning']['value'] + else: + return None + + # Channel Threshold + channel_threshold_data = self._get_eeprom_data('ChannelThreshold') + if (channel_threshold_data is not None): + rxPowerHighAlarm = channel_threshold_data['data']['RxPowerHighAlarm']['value'] + rxPowerLowAlarm = channel_threshold_data['data']['RxPowerLowAlarm']['value'] + rxPowerHighWarn = channel_threshold_data['data']['RxPowerHighWarning']['value'] + rxPowerLowWarn = channel_threshold_data['data']['RxPowerLowWarning']['value'] + txBiasHighAlarm = channel_threshold_data['data']['TxBiasHighAlarm']['value'] + txBiasLowAlarm = channel_threshold_data['data']['TxBiasLowAlarm']['value'] + txBiasHighWarn = channel_threshold_data['data']['TxBiasHighWarning']['value'] + txBiasLowWarn = channel_threshold_data['data']['TxBiasLowWarning']['value'] + else: + return None + + transceiver_dom_threshold_dict['temphighalarm'] = tempHighAlarm + transceiver_dom_threshold_dict['templowalarm'] = tempLowAlarm + transceiver_dom_threshold_dict['temphighwarning'] = tempHighWarn + transceiver_dom_threshold_dict['templowwarning'] = tempLowWarn + transceiver_dom_threshold_dict['vcchighalarm'] = vccHighAlarm + transceiver_dom_threshold_dict['vcclowalarm'] = vccLowAlarm + transceiver_dom_threshold_dict['vcchighwarning'] = vccHighWarn + transceiver_dom_threshold_dict['vcclowwarning'] = vccLowWarn + transceiver_dom_threshold_dict['rxpowerhighalarm'] = rxPowerHighAlarm + transceiver_dom_threshold_dict['rxpowerlowalarm'] = rxPowerLowAlarm + transceiver_dom_threshold_dict['rxpowerhighwarning'] = rxPowerHighWarn + transceiver_dom_threshold_dict['rxpowerlowwarning'] = rxPowerLowWarn + transceiver_dom_threshold_dict['txbiashighalarm'] = txBiasHighAlarm + transceiver_dom_threshold_dict['txbiaslowalarm'] = txBiasLowAlarm + transceiver_dom_threshold_dict['txbiashighwarning'] = txBiasHighWarn + transceiver_dom_threshold_dict['txbiaslowwarning'] = txBiasLowWarn + + return transceiver_dom_threshold_dict + + def get_transceiver_bulk_status(self): + """ + Retrieves transceiver bulk status of this SFP + """ + tx_bias_list = [] + rx_power_list = [] + transceiver_dom_dict = {} + transceiver_dom_dict = dict.fromkeys(dom_dict_keys, 'N/A') + + # RxLos + rx_los = self.get_rx_los() + + # TxFault + tx_fault = self.get_tx_fault() + + # ResetStatus + reset_state = self.get_reset_status() + + # LowPower Mode + lp_mode = self.get_lpmode() + + # TxDisable + tx_disable = self.get_tx_disable() + + # TxDisable Channel + tx_disable_channel = self.get_tx_disable_channel() + + # Temperature + temperature = self.get_temperature() + + # Voltage + voltage = self.get_voltage() + + # Channel Monitor + channel_monitor_data = self._get_eeprom_data('ChannelMonitor') + if (channel_monitor_data is not None): + tx_bias = channel_monitor_data['data']['TX1Bias']['value'] + tx_bias_list.append(tx_bias) + tx_bias = channel_monitor_data['data']['TX2Bias']['value'] + tx_bias_list.append(tx_bias) + tx_bias = channel_monitor_data['data']['TX3Bias']['value'] + tx_bias_list.append(tx_bias) + tx_bias = channel_monitor_data['data']['TX4Bias']['value'] + tx_bias_list.append(tx_bias) + rx_power = channel_monitor_data['data']['RX1Power']['value'] + rx_power_list.append(rx_power) + rx_power = channel_monitor_data['data']['RX2Power']['value'] + rx_power_list.append(rx_power) + rx_power = channel_monitor_data['data']['RX3Power']['value'] + rx_power_list.append(rx_power) + rx_power = channel_monitor_data['data']['RX4Power']['value'] + rx_power_list.append(rx_power) + else: + return None + + transceiver_dom_dict['rx_los'] = rx_los + transceiver_dom_dict['tx_fault'] = tx_fault + transceiver_dom_dict['reset_status'] = reset_state + transceiver_dom_dict['power_lpmode'] = lp_mode + transceiver_dom_dict['tx_disable'] = tx_disable + transceiver_dom_dict['tx_disable_channel'] = tx_disable_channel + transceiver_dom_dict['temperature'] = temperature + transceiver_dom_dict['voltage'] = voltage + transceiver_dom_dict['tx1bias'] = tx_bias_list[0] + transceiver_dom_dict['tx2bias'] = tx_bias_list[1] + transceiver_dom_dict['tx3bias'] = tx_bias_list[2] + transceiver_dom_dict['tx4bias'] = tx_bias_list[3] + transceiver_dom_dict['rx1power'] = rx_power_list[0] + transceiver_dom_dict['rx2power'] = rx_power_list[1] + transceiver_dom_dict['rx3power'] = rx_power_list[2] + transceiver_dom_dict['rx4power'] = rx_power_list[3] + + return transceiver_dom_dict + + def get_name(self): + """ + Retrieves the name of the sfp + Returns : QSFP or QSFP+ or QSFP28 + """ + iface_data = self._get_eeprom_data('type') + if (iface_data is not None): + identifier = iface_data['data']['type']['value'] + else: + return None + + return identifier + + def get_presence(self): + """ + Retrieves the presence of the sfp + """ + presence_ctrl = self.sfp_control + 'qsfp_modprs' + try: + reg_file = open(presence_ctrl) + except IOError as e: + return False + + reg_hex = reg_file.readline().rstrip() + + # content is a string containing the hex + # representation of the register + reg_value = int(reg_hex, 16) + + # Mask off the bit corresponding to our port + index = self.sfp_ctrl_idx + + # Mask off the bit corresponding to our port + mask = (1 << index) + + # ModPrsL is active low + if ((reg_value & mask) == 0): + return True + + return False + + def get_model(self): + """ + Retrieves the model number (or part number) of the sfp + """ + vendor_pn_data = self._get_eeprom_data('modelname') + if (vendor_pn_data is not None): + vendor_pn = vendor_pn_data['data']['Vendor PN']['value'] + else: + return None + + return vendor_pn + + def get_serial(self): + """ + Retrieves the serial number of the sfp + """ + vendor_sn_data = self._get_eeprom_data('serialnum') + if (vendor_sn_data is not None): + vendor_sn = vendor_sn_data['data']['Vendor SN']['value'] + else: + return None + + return vendor_sn + + def get_reset_status(self): + """ + Retrieves the reset status of SFP + """ + reset_status = None + reset_ctrl = self.sfp_control + 'qsfp_reset' + try: + reg_file = open(reset_ctrl, "r+") + except IOError as e: + return False + + reg_hex = reg_file.readline().rstrip() + + # content is a string containing the hex + # representation of the register + reg_value = int(reg_hex, 16) + + # Mask off the bit corresponding to our port + index = self.sfp_ctrl_idx + + mask = (1 << index) + + if ((reg_value & mask) == 0): + reset_status = True + else: + reset_status = False + + return reset_status + + def get_rx_los(self): + """ + Retrieves the RX LOS (lost-of-signal) status of SFP + """ + rx_los = None + rx_los_list = [] + + rx_los_data = self._get_eeprom_data('rx_los') + if (rx_los_data is not None): + rx_los = rx_los_data['data']['Rx1LOS']['value'] + if (rx_los is 'On'): + rx_los_list.append(True) + else: + rx_los_list.append(False) + rx_los = rx_los_data['data']['Rx2LOS']['value'] + if (rx_los is 'On'): + rx_los_list.append(True) + else: + rx_los_list.append(False) + rx_los = rx_los_data['data']['Rx3LOS']['value'] + if (rx_los is 'On'): + rx_los_list.append(True) + else: + rx_los_list.append(False) + rx_los = rx_los_data['data']['Rx4LOS']['value'] + if (rx_los is 'On'): + rx_los_list.append(True) + else: + rx_los_list.append(False) + + if (rx_los_list[0] and rx_los_list[1] + and rx_los_list[2] and rx_los_list[3]): + rx_los = True + else: + rx_los = False + + return rx_los + + def get_tx_fault(self): + """ + Retrieves the TX fault status of SFP + """ + tx_fault = None + tx_fault_list = [] + + tx_fault_data = self._get_eeprom_data('tx_fault') + if (tx_fault_data is not None): + tx_fault = tx_fault_data['data']['Tx1Fault']['value'] + if (tx_fault is 'On'): + tx_fault_list.append(True) + else: + tx_fault_list.append(False) + tx_fault = tx_fault_data['data']['Tx2Fault']['value'] + if (tx_fault is 'On'): + tx_fault_list.append(True) + else: + tx_fault_list.append(False) + tx_fault = tx_fault_data['data']['Tx3Fault']['value'] + if (tx_fault is 'On'): + tx_fault_list.append(True) + else: + tx_fault_list.append(False) + tx_fault = tx_fault_data['data']['Tx4Fault']['value'] + if (tx_fault is 'On'): + tx_fault_list.append(True) + else: + tx_fault_list.append(False) + + if (tx_fault_list[0] and tx_fault_list[1] + and tx_fault_list[2] and tx_fault_list[3]): + tx_fault = True + else: + tx_fault = False + + return tx_fault + + def get_tx_disable(self): + """ + Retrieves the tx_disable status of this SFP + """ + tx_disable = None + tx_disable_list = [] + + tx_disable_data = self._get_eeprom_data('tx_disable') + if (tx_disable_data is not None): + tx_disable = tx_disable_data['data']['Tx1Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(True) + else: + tx_disable_list.append(False) + tx_disable = tx_disable_data['data']['Tx2Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(True) + else: + tx_disable_list.append(False) + tx_disable = tx_disable_data['data']['Tx3Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(True) + else: + tx_disable_list.append(False) + tx_disable = tx_disable_data['data']['Tx4Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(True) + else: + tx_disable_list.append(False) + + if (tx_disable_list[0] and tx_disable_list[1] + and tx_disable_list[2] and tx_disable_list[3]): + tx_disable = True + else: + tx_disable = False + + return tx_disable + + def get_tx_disable_channel(self): + """ + Retrieves the TX disabled channels in this SFP + """ + tx_disable = None + tx_disable_list = [] + + tx_disable_data = self._get_eeprom_data('tx_disable') + if (tx_disable_data is not None): + tx_disable = tx_disable_data['data']['Tx1Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(1) + else: + tx_disable_list.append(0) + tx_disable = tx_disable_data['data']['Tx2Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(1) + else: + tx_disable_list.append(0) + tx_disable = tx_disable_data['data']['Tx3Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(1) + else: + tx_disable_list.append(0) + tx_disable = tx_disable_data['data']['Tx4Disable']['value'] + if (tx_disable is 'On'): + tx_disable_list.append(1) + else: + tx_disable_list.append(0) + + bit4 = int(tx_disable_list[3]) * 8 + bit3 = int(tx_disable_list[2]) * 4 + bit2 = int(tx_disable_list[1]) * 2 + bit1 = int(tx_disable_list[0]) * 1 + + tx_disable_channel = hex(bit4 + bit3 + bit2 + bit1) + + return tx_disable_channel + + def get_lpmode(self): + """ + Retrieves the lpmode (low power mode) status of this SFP + """ + lpmode_ctrl = self.sfp_control + 'qsfp_lpmode' + try: + reg_file = open(lpmode_ctrl, "r+") + except IOError as e: + return False + + reg_hex = reg_file.readline().rstrip() + + # content is a string containing the hex + # representation of the register + reg_value = int(reg_hex, 16) + + # Mask off the bit corresponding to our port + index = self.sfp_ctrl_idx + + mask = (1 << index) + + if ((reg_value & mask) == 0): + lpmode_state = False + else: + lpmode_state = True + + return lpmode_state + + def get_power_override(self): + """ + Retrieves the power-override status of this SFP + """ + power_override_state = None + + # Reset Status + power_override_data = self._get_eeprom_data('power_override') + if (power_override_data is not None): + power_override = power_override_data['data']['PowerOverRide']['value'] + if (power_override is 'On'): + power_override_state = True + else: + power_override_state = False + + return power_override_state + + def get_temperature(self): + """ + Retrieves the temperature of this SFP + """ + temperature = None + + temperature_data = self._get_eeprom_data('Temperature') + if (temperature_data is not None): + temperature = temperature_data['data']['Temperature']['value'] + + return temperature + + def get_voltage(self): + """ + Retrieves the supply voltage of this SFP + """ + voltage = None + + voltage_data = self._get_eeprom_data('Voltage') + if (voltage_data is not None): + voltage = voltage_data['data']['Vcc']['value'] + + return voltage + + def get_tx_bias(self): + """ + Retrieves the TX bias current of this SFP + """ + tx_bias = None + tx_bias_list = [] + + tx_bias_data = self._get_eeprom_data('ChannelMonitor') + if (tx_bias_data is not None): + tx_bias = tx_bias_data['data']['TX1Bias']['value'] + tx_bias_list.append(tx_bias) + tx_bias = tx_bias_data['data']['TX2Bias']['value'] + tx_bias_list.append(tx_bias) + tx_bias = tx_bias_data['data']['TX3Bias']['value'] + tx_bias_list.append(tx_bias) + tx_bias = tx_bias_data['data']['TX4Bias']['value'] + tx_bias_list.append(tx_bias) + + return tx_bias_list + + def get_rx_power(self): + """ + Retrieves the received optical power for this SFP + """ + rx_power = None + rx_power_list = [] + + rx_power_data = self._get_eeprom_data('ChannelMonitor') + if (rx_power_data is not None): + rx_power = rx_power_data['data']['RX1Power']['value'] + rx_power_list.append(rx_power) + rx_power = rx_power_data['data']['RX2Power']['value'] + rx_power_list.append(rx_power) + rx_power = rx_power_data['data']['RX3Power']['value'] + rx_power_list.append(rx_power) + rx_power = rx_power_data['data']['RX4Power']['value'] + rx_power_list.append(rx_power) + + return rx_power_list + + + def get_tx_power(self): + """ + Retrieves the TX power of this SFP + """ + tx_power = None + tx_power_list = [] + + tx_power_list.append('-infdBm') + tx_power_list.append('-infdBm') + tx_power_list.append('-infdBm') + tx_power_list.append('-infdBm') + + return tx_power_list + + def reset(self): + """ + Reset SFP and return all user module settings to their default srate. + """ + reset_ctrl = self.sfp_control + 'qsfp_reset' + try: + # Open reset_ctrl in both read & write mode + reg_file = open(reset_ctrl, "r+") + except IOError as e: + return False + + reg_hex = reg_file.readline().rstrip() + reg_value = int(reg_hex, 16) + + # Mask off the bit corresponding to our port + index = self.sfp_ctrl_idx + + # Mask off the bit corresponding to our port + mask = (1 << index) + + # ResetL is active low + reg_value = (reg_value & ~mask) + + # Convert our register value back to a + # hex string and write back + reg_file.seek(0) + reg_file.write(hex(reg_value)) + reg_file.close() + + # Sleep 1 second to allow it to settle + time.sleep(1) + + # Flip the bit back high and write back to the + # register to take port out of reset + try: + reg_file = open(reset_ctrl, "w") + except IOError as e: + return False + + reg_value = reg_value | mask + reg_file.seek(0) + reg_file.write(hex(reg_value)) + reg_file.close() + + return True + + def set_lpmode(self, lpmode): + """ + Sets the lpmode (low power mode) of SFP + """ + lpmode_ctrl = self.sfp_control + 'qsfp_lpmode' + try: + reg_file = open(lpmode_ctrl, "r+") + except IOError as e: + return False + + reg_hex = reg_file.readline().rstrip() + + # content is a string containing the hex + # representation of the register + reg_value = int(reg_hex, 16) + + # Mask off the bit corresponding to our port + index = self.sfp_ctrl_idx + + mask = (1 << index) + + # LPMode is active high; set or clear the bit accordingly + if lpmode is True: + reg_value = (reg_value | mask) + else: + reg_value = (reg_value & ~mask) + + # Convert our register value back to a hex string and write back + content = hex(reg_value) + + reg_file.seek(0) + reg_file.write(content) + reg_file.close() + + return True + + def tx_disable(self, tx_disable): + """ + Disable SFP TX for all channels + """ + return False + + def tx_disable_channel(self, channel, disable): + """ + Sets the tx_disable for specified SFP channels + """ + return False + + def tx_disable_channel(self, channel, disable): + """ + Sets the tx_disable for specified SFP channels + """ + return False + + def set_power_override(self, power_override, power_set): + """ + Sets SFP power level using power_override and power_set + """ + return False + + def get_status(self): + """ + Retrieves the operational status of the device + """ + reset = self.get_reset_status() + + if (reset == True): + status = False + else: + status = True + + return status From 150ee07dd2dab5c36d3a807e4018eec34028f75a Mon Sep 17 00:00:00 2001 From: Wirut Getbamrung Date: Sat, 7 Sep 2019 04:58:12 +0700 Subject: [PATCH 36/43] [device/celestica]: Update new platform APIs (#3415) * [device/celestica]: Update fan and psu apis * [device/celestica]: Update sfp apis --- .../sonic_platform/chassis.py | 10 +- .../x86_64-cel_e1031-r0/sonic_platform/fan.py | 226 +++--- .../x86_64-cel_e1031-r0/sonic_platform/psu.py | 156 +++- .../x86_64-cel_e1031-r0/sonic_platform/sfp.py | 569 +++++++++------ .../sonic_platform/chassis.py | 10 +- .../sonic_platform/fan.py | 296 ++++---- .../sonic_platform/psu.py | 177 ++++- .../sonic_platform/sfp.py | 677 +++++++++++------- 8 files changed, 1380 insertions(+), 741 deletions(-) diff --git a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/chassis.py b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/chassis.py index fde9afaa6f..633af66dba 100644 --- a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/chassis.py +++ b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/chassis.py @@ -26,7 +26,8 @@ try: except ImportError as e: raise ImportError(str(e) + "- required module not found") -NUM_FAN = 3 +NUM_FAN_TRAY = 3 +NUM_FAN = 1 NUM_PSU = 2 NUM_THERMAL = 7 NUM_SFP = 52 @@ -42,9 +43,10 @@ class Chassis(ChassisBase): def __init__(self): self.config_data = {} - for index in range(0, NUM_FAN): - fan = Fan(index) - self._fan_list.append(fan) + for fant_index in range(0, NUM_FAN_TRAY): + for fan_index in range(0, NUM_FAN): + fan = Fan(fant_index, fan_index) + self._fan_list.append(fan) for index in range(0, NUM_PSU): psu = Psu(index) self._psu_list.append(psu) diff --git a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/fan.py b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/fan.py index 88e21b3e5e..2c5bc5c0c4 100644 --- a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/fan.py +++ b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/fan.py @@ -17,35 +17,50 @@ try: except ImportError as e: raise ImportError(str(e) + "- required module not found") -EMC2305_FAN_PATH = "/sys/bus/i2c/drivers/emc2305/" +EMC2305_PATH = "/sys/bus/i2c/drivers/emc2305/" FAN_PATH = "/sys/devices/platform/e1031.smc/" -SYS_GPIO_DIR = "/sys/class/gpio" EMC2305_MAX_PWM = 255 EMC2305_FAN_PWM = "pwm{}" EMC2305_FAN_TARGET = "fan{}_target" EMC2305_FAN_INPUT = "pwm{}" FAN_NAME_LIST = ["FAN-1", "FAN-2", "FAN-3"] +PSU_FAN_MAX_RPM = 11000 +PSU_HWMON_PATH = "/sys/bus/i2c/devices/i2c-{0}/{0}-00{1}/hwmon" +PSU_I2C_MAPPING = { + 0: { + "num": 13, + "addr": "5b" + }, + 1: { + "num": 12, + "addr": "5a" + }, +} class Fan(FanBase): """Platform-specific Fan class""" - def __init__(self, fan_index): - self.index = fan_index - self.config_data = {} - self.fan_speed = 0 - FanBase.__init__(self) + def __init__(self, fan_tray_index, fan_index=0, is_psu_fan=False, psu_index=0): + self.fan_index = fan_index + self.fan_tray_index = fan_tray_index + self.is_psu_fan = is_psu_fan + if self.is_psu_fan: + self.psu_index = psu_index + self.psu_i2c_num = PSU_I2C_MAPPING[self.psu_index]["num"] + self.psu_i2c_addr = PSU_I2C_MAPPING[self.psu_index]["addr"] + self.psu_hwmon_path = PSU_HWMON_PATH.format( + self.psu_i2c_num, self.psu_i2c_addr) # e1031 fan attributes # Single emc2305 chip located at i2c-23-4d # to control a fan module - self.e1031_emc2305_chip = [ + self.emc2305_chip_mapping = [ { 'device': "23-004d", 'index_map': [1, 2, 4] } ] - self.fan_e1031_presence = "fan{}_prs" self.fan_e1031_direction = "fan{}_dir" self.fan_e1031_led = "fan{}_led" @@ -56,84 +71,103 @@ class Fan(FanBase): } FanBase.__init__(self) - def get_direction(self): - - direction = self.FAN_DIRECTION_INTAKE - + def __read_txt_file(self, file_path): try: - fan_direction_file = (FAN_PATH + - self.fan_e1031_direction.format(self.index+1)) - with open(fan_direction_file, 'r') as file: - raw = file.read().strip('\r\n') - if str(raw).upper() == "F2B": - direction = self.FAN_DIRECTION_INTAKE - else: - direction = self.FAN_DIRECTION_EXHAUST + with open(file_path, 'r') as fd: + data = fd.read() + return data.strip() except IOError: + pass + return "" + + def __write_txt_file(self, file_path, value): + try: + with open(file_path, 'w') as fd: + fd.write(str(value)) + except: return False + return True + + def __search_file_by_name(self, directory, file_name): + for dirpath, dirnames, files in os.walk(directory): + for name in files: + file_path = os.path.join(dirpath, name) + if name in file_name: + return file_path + return None + + def get_direction(self): + """ + Retrieves the direction of fan + Returns: + A string, either FAN_DIRECTION_INTAKE or FAN_DIRECTION_EXHAUST + depending on fan direction + """ + direction = self.FAN_DIRECTION_EXHAUST + if not self.is_psu_fan: + fan_direction_file = (FAN_PATH + + self.fan_e1031_direction.format(self.fan_tray_index+1)) + raw = self.__read_txt_file(fan_direction_file).strip('\r\n') + direction = self.FAN_DIRECTION_INTAKE if str( + raw).upper() == "F2B" else self.FAN_DIRECTION_EXHAUST return direction def get_speed(self): """ - E1031 platform specific data: + Retrieves the speed of fan as a percentage of full speed + Returns: + An integer, the percentage of full fan speed, in the range 0 (off) + to 100 (full speed) + Note: speed = pwm_in/255*100 """ - # TODO: Seperate PSU's fan and main fan class - if self.fan_speed != 0: - return self.fan_speed - else: - speed = 0 - pwm = [] - emc2305_chips = self.e1031_emc2305_chip + speed = 0 + if self.is_psu_fan: + fan_speed_sysfs_name = "fan{}_input".format(self.fan_index+1) + fan_speed_sysfs_path = self.__search_file_by_name( + self.psu_hwmon_path, fan_speed_sysfs_name) + fan_speed_rpm = self.__read_txt_file(fan_speed_sysfs_path) or 0 + fan_speed_raw = float(fan_speed_rpm)/PSU_FAN_MAX_RPM * 100 + speed = math.ceil(float(fan_speed_rpm) * 100 / PSU_FAN_MAX_RPM) + elif self.get_presence(): + chip = self.emc2305_chip_mapping[self.fan_index] + device = chip['device'] + fan_index = chip['index_map'] + sysfs_path = "%s%s/%s" % ( + EMC2305_PATH, device, EMC2305_FAN_INPUT) + sysfs_path = sysfs_path.format(fan_index[self.fan_tray_index]) + raw = self.__read_txt_file(sysfs_path).strip('\r\n') + pwm = int(raw, 10) if raw else 0 + speed = math.ceil(float(pwm * 100 / EMC2305_MAX_PWM)) - for chip in emc2305_chips: - device = chip['device'] - fan_index = chip['index_map'] - sysfs_path = "%s%s/%s" % ( - EMC2305_FAN_PATH, device, EMC2305_FAN_INPUT) - sysfs_path = sysfs_path.format(fan_index[self.index]) - try: - with open(sysfs_path, 'r') as file: - raw = file.read().strip('\r\n') - pwm.append(int(raw, 10)) - except IOError: - raise IOError("Unable to open " + sysfs_path) - - speed = math.ceil( - float(pwm[0]) * 100 / EMC2305_MAX_PWM) - - return int(speed) + return int(speed) def get_target_speed(self): """ - E1031 platform specific data: + Retrieves the target (expected) speed of the fan + Returns: + An integer, the percentage of full fan speed, in the range 0 (off) + to 100 (full speed) + Note: speed_pc = pwm_target/255*100 0 : when PWM mode is use pwm : when pwm mode is not use - """ target = 0 - pwm = [] - emc2305_chips = self.e1031_emc2305_chip - - for chip in emc2305_chips: + if not self.is_psu_fan: + chip = self.emc2305_chip_mapping[self.fan_index] device = chip['device'] fan_index = chip['index_map'] sysfs_path = "%s%s/%s" % ( - EMC2305_FAN_PATH, device, EMC2305_FAN_TARGET) - sysfs_path = sysfs_path.format(fan_index[self.index]) - try: - with open(sysfs_path, 'r') as file: - raw = file.read().strip('\r\n') - pwm.append(int(raw, 10)) - except IOError: - raise IOError("Unable to open " + sysfs_path) - - target = pwm[0] * 100 / EMC2305_MAX_PWM + EMC2305_PATH, device, EMC2305_FAN_TARGET) + sysfs_path = sysfs_path.format(fan_index[self.fan_tray_index]) + raw = self.__read_txt_file(sysfs_path).strip('\r\n') + pwm = int(raw, 10) if raw else 0 + target = math.ceil(float(pwm) * 100 / EMC2305_MAX_PWM) return target @@ -148,40 +182,50 @@ class Fan(FanBase): def set_speed(self, speed): """ - Depends on pwm or target mode is selected: + Sets the fan speed + Args: + speed: An integer, the percentage of full fan speed to set fan to, + in the range 0 (off) to 100 (full speed) + Returns: + A boolean, True if speed is set successfully, False if not + + Note: + Depends on pwm or target mode is selected: 1) pwm = speed_pc * 255 <-- Currently use this mode. 2) target_pwm = speed_pc * 100 / 255 2.1) set pwm{}_enable to 3 """ pwm = speed * 255 / 100 - emc2305_chips = self.e1031_emc2305_chip - - for chip in emc2305_chips: + if not self.is_psu_fan and self.get_presence(): + chip = self.emc2305_chip_mapping[self.fan_index] device = chip['device'] fan_index = chip['index_map'] sysfs_path = "%s%s/%s" % ( - EMC2305_FAN_PATH, device, EMC2305_FAN_PWM) - sysfs_path = sysfs_path.format(fan_index[self.index]) - try: - with open(sysfs_path, 'w') as file: - file.write(str(int(pwm))) - except IOError: - return False + EMC2305_PATH, device, EMC2305_FAN_PWM) + sysfs_path = sysfs_path.format(fan_index[self.fan_tray_index]) + return self.__write_txt_file(sysfs_path, int(pwm)) - return True + return False def set_status_led(self, color): - - try: + """ + Sets the state of the fan module status LED + Args: + color: A string representing the color with which to set the + fan module status LED + Returns: + bool: True if status LED state is set successfully, False if not + """ + set_status_led = False + if not self.is_psu_fan: fan_led_file = (FAN_PATH + - self.fan_e1031_led.format(self.index+1)) - with open(fan_led_file, 'r') as file: - file.write(self.fan_e1031_led_col_map[color]) - except IOError: - return False + self.fan_e1031_led.format(self.fan_tray_index+1)) - return True + set_status_led = self.__write_txt_file( + fan_led_file, self.fan_e1031_led_col_map[color]) if self.get_presence() else False + + return set_status_led def get_name(self): """ @@ -189,7 +233,10 @@ class Fan(FanBase): Returns: string: The name of the device """ - return FAN_NAME_LIST[self.index] + fan_name = FAN_NAME_LIST[self.fan_tray_index] if not self.is_psu_fan else "PSU-{} FAN-{}".format( + self.psu_index+1, self.fan_index+1) + + return fan_name def get_presence(self): """ @@ -197,13 +244,8 @@ class Fan(FanBase): Returns: bool: True if PSU is present, False if not """ + fan_direction_file = (FAN_PATH + + self.fan_e1031_presence.format(self.fan_tray_index+1)) + present_str = self.__read_txt_file(fan_direction_file) or '1' - try: - fan_direction_file = (FAN_PATH + - self.fan_e1031_presence.format(self.index+1)) - with open(fan_direction_file, 'r') as file: - present = int(file.read().strip('\r\n')) - except IOError: - return False - - return present == 0 + return int(present_str) == 0 if not self.is_psu_fan else True diff --git a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/psu.py b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/psu.py index 73b890a8b7..9777bb6fea 100644 --- a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/psu.py +++ b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/psu.py @@ -18,8 +18,20 @@ except ImportError as e: raise ImportError(str(e) + "- required module not found") FAN_E1031_SPEED_PATH = "/sys/class/hwmon/hwmon{}/fan1_input" +HWMON_PATH = "/sys/bus/i2c/devices/i2c-{0}/{0}-00{1}/hwmon" FAN_MAX_RPM = 11000 PSU_NAME_LIST = ["PSU-R", "PSU-L"] +PSU_NUM_FAN = [1, 1] +PSU_I2C_MAPPING = { + 0: { + "num": 13, + "addr": "5b" + }, + 1: { + "num": 12, + "addr": "5a" + }, +} class Psu(PsuBase): @@ -31,26 +43,109 @@ class Psu(PsuBase): self.psu_path = "/sys/devices/platform/e1031.smc/" self.psu_presence = "psu{}_prs" self.psu_oper_status = "psu{}_status" + self.i2c_num = PSU_I2C_MAPPING[self.index]["num"] + self.i2c_addr = PSU_I2C_MAPPING[self.index]["addr"] + self.hwmon_path = HWMON_PATH.format(self.i2c_num, self.i2c_addr) + for fan_index in range(0, PSU_NUM_FAN[self.index]): + fan = Fan(fan_index, 0, is_psu_fan=True, psu_index=self.index) + self._fan_list.append(fan) + PsuBase.__init__(self) - def get_fan(self): - """ - Retrieves object representing the fan module contained in this PSU - Returns: - An object dervied from FanBase representing the fan module - contained in this PSU - """ - fan_speed_path = FAN_E1031_SPEED_PATH.format( - str(self.index+3)) + def __read_txt_file(self, file_path): try: - with open(fan_speed_path) as fan_speed_file: - fan_speed_rpm = int(fan_speed_file.read()) + with open(file_path, 'r') as fd: + data = fd.read() + return data.strip() except IOError: - fan_speed = 0 + pass + return "" - fan_speed = float(fan_speed_rpm)/FAN_MAX_RPM * 100 - fan = Fan(0) - fan.fan_speed = int(fan_speed) if int(fan_speed) <= 100 else 100 - return fan + def __search_file_by_contain(self, directory, search_str, file_start): + for dirpath, dirnames, files in os.walk(directory): + for name in files: + file_path = os.path.join(dirpath, name) + if name.startswith(file_start) and search_str in self.__read_txt_file(file_path): + return file_path + return None + + def get_voltage(self): + """ + Retrieves current PSU voltage output + Returns: + A float number, the output voltage in volts, + e.g. 12.1 + """ + psu_voltage = 0.0 + voltage_name = "in{}_input" + voltage_label = "vout1" + + vout_label_path = self.__search_file_by_contain( + self.hwmon_path, voltage_label, "in") + if vout_label_path: + dir_name = os.path.dirname(vout_label_path) + basename = os.path.basename(vout_label_path) + in_num = filter(str.isdigit, basename) + vout_path = os.path.join( + dir_name, voltage_name.format(in_num)) + vout_val = self.__read_txt_file(vout_path) + psu_voltage = float(vout_val) / 1000 + + return psu_voltage + + def get_current(self): + """ + Retrieves present electric current supplied by PSU + Returns: + A float number, the electric current in amperes, e.g 15.4 + """ + psu_current = 0.0 + current_name = "curr{}_input" + current_label = "iout1" + + curr_label_path = self.__search_file_by_contain( + self.hwmon_path, current_label, "cur") + if curr_label_path: + dir_name = os.path.dirname(curr_label_path) + basename = os.path.basename(curr_label_path) + cur_num = filter(str.isdigit, basename) + cur_path = os.path.join( + dir_name, current_name.format(cur_num)) + cur_val = self.__read_txt_file(cur_path) + psu_current = float(cur_val) / 1000 + + return psu_current + + def get_power(self): + """ + Retrieves current energy supplied by PSU + Returns: + A float number, the power in watts, e.g. 302.6 + """ + psu_power = 0.0 + current_name = "power{}_input" + current_label = "pout1" + + pw_label_path = self.__search_file_by_contain( + self.hwmon_path, current_label, "power") + if pw_label_path: + dir_name = os.path.dirname(pw_label_path) + basename = os.path.basename(pw_label_path) + pw_num = filter(str.isdigit, basename) + pw_path = os.path.join( + dir_name, current_name.format(pw_num)) + pw_val = self.__read_txt_file(pw_path) + psu_power = float(pw_val) / 1000000 + + return psu_power + + def get_powergood_status(self): + """ + Retrieves the powergood status of PSU + Returns: + A boolean, True if PSU has stablized its output voltages and passed all + its internal self-tests, False if not. + """ + return self.get_status() def set_status_led(self, color): """ @@ -64,6 +159,15 @@ class Psu(PsuBase): # Hardware not supported return False + def get_status_led(self): + """ + Gets the state of the PSU status LED + Returns: + A string, one of the predefined STATUS_LED_COLOR_* strings above + """ + # Hardware not supported + return self.STATUS_LED_COLOR_OFF + def get_name(self): """ Retrieves the name of the device @@ -79,14 +183,10 @@ class Psu(PsuBase): bool: True if PSU is present, False if not """ psu_location = ["R", "L"] - status = 0 - try: - with open(self.psu_path + self.psu_presence.format(psu_location[self.index]), 'r') as psu_prs: - status = int(psu_prs.read()) - except IOError: - return False + presences_status = self.__read_txt_file( + self.psu_path + self.psu_presence.format(psu_location[self.index])) or 0 - return status == 1 + return int(presences_status) == 1 def get_status(self): """ @@ -95,11 +195,7 @@ class Psu(PsuBase): A boolean value, True if device is operating properly, False if not """ psu_location = ["R", "L"] - status = 0 - try: - with open(self.psu_path + self.psu_oper_status.format(psu_location[self.index]), 'r') as power_status: - status = int(power_status.read()) - except IOError: - return False + power_status = self.__read_txt_file( + self.psu_path + self.psu_oper_status.format(psu_location[self.index])) or 0 - return status == 1 + return int(power_status) == 1 diff --git a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/sfp.py b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/sfp.py index c67e487e4c..4cfdcf50b6 100644 --- a/device/celestica/x86_64-cel_e1031-r0/sonic_platform/sfp.py +++ b/device/celestica/x86_64-cel_e1031-r0/sonic_platform/sfp.py @@ -15,16 +15,65 @@ import sonic_device_util from ctypes import create_string_buffer try: - from swsssdk import ConfigDBConnector from sonic_platform_base.sfp_base import SfpBase - from sonic_platform_base.sonic_sfp.sfputilbase import SfpUtilBase + from sonic_platform_base.sonic_sfp.sff8472 import sff8472Dom + from sonic_platform_base.sonic_sfp.sff8472 import sff8472InterfaceId + from sonic_platform_base.sonic_sfp.sff8472 import sffbase + from sonic_platform_base.sonic_sfp.sfputilhelper import SfpUtilHelper except ImportError as e: raise ImportError(str(e) + "- required module not found") +INFO_OFFSET = 0 +DOM_OFFSET = 256 -class Sfp(SfpBase, SfpUtilBase): +XCVR_INTFACE_BULK_OFFSET = 0 +XCVR_INTFACE_BULK_WIDTH_SFP = 21 +XCVR_VENDOR_NAME_OFFSET = 20 +XCVR_VENDOR_NAME_WIDTH = 16 +XCVR_VENDOR_OUI_OFFSET = 37 +XCVR_VENDOR_OUI_WIDTH = 3 +XCVR_VENDOR_PN_OFFSET = 40 +XCVR_VENDOR_PN_WIDTH = 16 +XCVR_HW_REV_OFFSET = 56 +XCVR_HW_REV_WIDTH_SFP = 4 +XCVR_VENDOR_SN_OFFSET = 68 +XCVR_VENDOR_SN_WIDTH = 16 +XCVR_VENDOR_DATE_OFFSET = 84 +XCVR_VENDOR_DATE_WIDTH = 8 +XCVR_DOM_CAPABILITY_OFFSET = 92 +XCVR_DOM_CAPABILITY_WIDTH = 1 + +# Offset for values in SFP eeprom +SFP_TEMPE_OFFSET = 96 +SFP_TEMPE_WIDTH = 2 +SFP_VOLT_OFFSET = 98 +SFP_VOLT_WIDTH = 2 +SFP_CHANNL_MON_OFFSET = 100 +SFP_CHANNL_MON_WIDTH = 6 +SFP_MODULE_THRESHOLD_OFFSET = 0 +SFP_MODULE_THRESHOLD_WIDTH = 40 +SFP_CHANNL_THRESHOLD_OFFSET = 112 +SFP_CHANNL_THRESHOLD_WIDTH = 2 +SFP_STATUS_CONTROL_OFFSET = 110 +SFP_STATUS_CONTROL_WIDTH = 1 +SFP_TX_DISABLE_HARD_BIT = 7 +SFP_TX_DISABLE_SOFT_BIT = 6 + +sfp_cable_length_tup = ('LengthSMFkm-UnitsOfKm', 'LengthSMF(UnitsOf100m)', + 'Length50um(UnitsOf10m)', 'Length62.5um(UnitsOfm)', + 'LengthCable(UnitsOfm)', 'LengthOM3(UnitsOf10m)') + +sfp_compliance_code_tup = ('10GEthernetComplianceCode', 'InfinibandComplianceCode', + 'ESCONComplianceCodes', 'SONETComplianceCodes', + 'EthernetComplianceCodes', 'FibreChannelLinkLength', + 'FibreChannelTechnology', 'SFP+CableTechnology', + 'FibreChannelTransmissionMedia', 'FibreChannelSpeed') + + +class Sfp(SfpBase): """Platform-specific Sfp class""" + # Port number PORT_START = 1 PORT_END = 52 port_to_i2c_mapping = { @@ -33,54 +82,39 @@ class Sfp(SfpBase, SfpUtilBase): 51: 17, 52: 16 } + _sfp_port = range(49, PORT_END + 1) PRS_PATH = "/sys/devices/platform/e1031.smc/SFP/sfp_modabs" PLATFORM_ROOT_PATH = '/usr/share/sonic/device' PMON_HWSKU_PATH = '/usr/share/sonic/hwsku' - SFP_STATUS_CONTROL_OFFSET = 110 - SFP_STATUS_CONTROL_WIDTH = 1 - - _port_to_eeprom_mapping = {} - _sfp_port = range(49, PORT_END + 1) - - SFP_EEPROM_TYPE_KEY = "TypeOfTransceiver" - SFP_EEPROM_HW_REV_KEY = "VendorRev" - SFP_EEPROM_MF_NAME_KEY = "VendorName" - SFP_EEPROM_MODEL_NAME_KEY = "VendorPN" - SFP_EEPROM_SERIAL_KEY = "VendorSN" - SFP_EEPROM_CONNECTOR_KEY = "Connector" - SFP_EEPROM_ENCODE_KEY = "EncodingCodes" - SFP_EEPROM_EXT_IDENT_KEY = "ExtIdentOfTypeOfTransceiver" - SFP_EEPROM_CABLE_KEY = "LengthCable(UnitsOfm)" - SFP_EEPROM_BIT_RATE_KEY = "NominalSignallingRate(UnitsOf100Mbd)" - SFP_EEPROM_SPEC_COM_KEY = "Specification compliance" - SFP_EEPROM_DATE_KEY = "VendorDataCode(YYYY-MM-DD Lot)" - SFP_EEPROM_OUI_KEY = "VendorOUI" - SFP_EEPROM_MON_DATA_KEY = "MonitorData" - SFP_EEPROM_TEMP_KEY = "Temperature" - SFP_EEPROM_VCC_KEY = "Vcc" - SFP_EEPROM_RX_PWR_KEY = "RXPower" - SFP_EEPROM_TX_PWR_KEY = "TXPower" - SFP_EEPROM_TX_BS_KEY = "TXBias" - SFP_EEPROM_STATUS_CON_KEY = "StatusControl" - PLATFORM = "x86_64-cel_e1031-r0" - HWSKU = "Celestica-E1031-T48S4" HOST_CHK_CMD = "docker > /dev/null 2>&1" - @property - def port_start(self): - return self.PORT_START + PLATFORM = "x86_64-cel_e1031-r0" + HWSKU = "Celestica-E1031-T48S4" - @property - def port_end(self): - return self.PORT_END + def __init__(self, sfp_index): + # Init index + self.index = sfp_index + self.port_num = self.index + 1 - @property - def qsfp_ports(self): - return [] + # Init eeprom path + eeprom_path = '/sys/bus/i2c/devices/i2c-{0}/{0}-0050/eeprom' + self.port_to_eeprom_mapping = {} + for x in range(self.PORT_START, self.PORT_END + 1): + if x not in self._sfp_port: + self.port_to_i2c_mapping[x] = None + self.port_to_eeprom_mapping[x] = eeprom_path.format( + self.port_to_i2c_mapping[x]) - @property - def port_to_eeprom_mapping(self): - return self._port_to_eeprom_mapping + self.info_dict_keys = ['type', 'hardwarerev', 'serialnum', 'manufacturename', 'modelname', 'Connector', 'encoding', 'ext_identifier', + 'ext_rateselect_compliance', 'cable_type', 'cable_length', 'nominal_bit_rate', 'specification_compliance', 'vendor_date', 'vendor_oui'] + + self.dom_dict_keys = ['rx_los', 'tx_fault', 'reset_status', 'power_lpmode', 'tx_disable', 'tx_disable_channel', 'temperature', 'voltage', + 'rx1power', 'rx2power', 'rx3power', 'rx4power', 'tx1bias', 'tx2bias', 'tx3bias', 'tx4bias', 'tx1power', 'tx2power', 'tx3power', 'tx4power'] + + self.threshold_dict_keys = ['temphighalarm', 'temphighwarning', 'templowalarm', 'templowwarning', 'vcchighalarm', 'vcchighwarning', 'vcclowalarm', 'vcclowwarning', 'rxpowerhighalarm', 'rxpowerhighwarning', + 'rxpowerlowalarm', 'rxpowerlowwarning', 'txpowerhighalarm', 'txpowerhighwarning', 'txpowerlowalarm', 'txpowerlowwarning', 'txbiashighalarm', 'txbiashighwarning', 'txbiaslowalarm', 'txbiaslowwarning'] + + SfpBase.__init__(self) def _convert_string_to_num(self, value_str): if "-inf" in value_str: @@ -102,49 +136,46 @@ class Sfp(SfpBase, SfpUtilBase): else: return 'N/A' - def get_low_power_mode(self, port_num): - raise NotImplementedError - - def set_low_power_mode(self, port_num, lpmode): - raise NotImplementedError - - def get_transceiver_change_event(self, timeout=0): - raise NotImplementedError - - def __init__(self, sfp_index): - # Init SfpUtilBase - eeprom_path = '/sys/bus/i2c/devices/i2c-{0}/{0}-0050/eeprom' - for x in range(self.PORT_START, self.PORT_END + 1): - if x not in self._sfp_port: - self.port_to_i2c_mapping[x] = None - self.port_to_eeprom_mapping[x] = eeprom_path.format( - self.port_to_i2c_mapping[x]) - self.read_porttab_mappings(self.__get_path_to_port_config_file()) - SfpUtilBase.__init__(self) - - # Init index - self.index = sfp_index - self.port_num = self.index + 1 + def __read_txt_file(self, file_path): + try: + with open(file_path, 'r') as fd: + data = fd.read() + return data.strip() + except IOError: + pass + return "" def __is_host(self): return os.system(self.HOST_CHK_CMD) == 0 - def __get_sysfsfile_eeprom(self): - sysfsfile_eeprom = None - sysfs_sfp_i2c_client_eeprom_path = self.port_to_eeprom_mapping[self.port_num] - try: - sysfsfile_eeprom = open( - sysfs_sfp_i2c_client_eeprom_path, mode="r+b", buffering=0) - except IOError: - pass - return sysfsfile_eeprom - def __get_path_to_port_config_file(self): platform_path = "/".join([self.PLATFORM_ROOT_PATH, self.PLATFORM]) hwsku_path = "/".join([platform_path, self.HWSKU] ) if self.__is_host() else self.PMON_HWSKU_PATH return "/".join([hwsku_path, "port_config.ini"]) + def __read_eeprom_specific_bytes(self, offset, num_bytes): + sysfsfile_eeprom = None + eeprom_raw = [] + for i in range(0, num_bytes): + eeprom_raw.append("0x00") + + sysfs_sfp_i2c_client_eeprom_path = self.port_to_eeprom_mapping[self.port_num] + try: + sysfsfile_eeprom = open( + sysfs_sfp_i2c_client_eeprom_path, mode="rb", buffering=0) + sysfsfile_eeprom.seek(offset) + raw = sysfsfile_eeprom.read(num_bytes) + for n in range(0, num_bytes): + eeprom_raw[n] = hex(ord(raw[n]))[2:].zfill(2) + except: + pass + finally: + if sysfsfile_eeprom: + sysfsfile_eeprom.close() + + return eeprom_raw + def get_transceiver_info(self): """ Retrieves transceiver info of this SFP @@ -169,44 +200,84 @@ class Sfp(SfpBase, SfpUtilBase): vendor_oui |1*255VCHAR |vendor OUI ======================================================================== """ - transceiver_info_dict = dict() - # get eeprom data - self.eeprom_dict = self.get_eeprom_dict(self.port_num) - if self.eeprom_dict and self.eeprom_dict.get('interface'): - transceiver_info_data = self.eeprom_dict['interface'].get('data') + # check present status + sfpi_obj = sff8472InterfaceId() + if not self.get_presence() or not sfpi_obj: + return {} - # set specification_compliance - spec_com = transceiver_info_data.get( - self.SFP_EEPROM_SPEC_COM_KEY, {}) - spec_com_str = "/".join(list(spec_com.values())) + offset = INFO_OFFSET - # set normal transceiver info - transceiver_info_dict['type'] = transceiver_info_data.get( - self.SFP_EEPROM_TYPE_KEY, 'N/A') - transceiver_info_dict['hardwarerev'] = transceiver_info_data.get( - self.SFP_EEPROM_HW_REV_KEY, 'N/A') - transceiver_info_dict['manufacturename'] = transceiver_info_data.get( - self.SFP_EEPROM_MF_NAME_KEY, 'N/A') - transceiver_info_dict['modelname'] = transceiver_info_data.get( - self.SFP_EEPROM_MODEL_NAME_KEY, 'N/A') - transceiver_info_dict['serialnum'] = transceiver_info_data.get( - self.SFP_EEPROM_SERIAL_KEY, 'N/A') - transceiver_info_dict['Connector'] = transceiver_info_data.get( - self.SFP_EEPROM_CONNECTOR_KEY, 'N/A') - transceiver_info_dict['encoding'] = transceiver_info_data.get( - self.SFP_EEPROM_ENCODE_KEY, 'N/A') - transceiver_info_dict['ext_identifier'] = transceiver_info_data.get( - self.SFP_EEPROM_EXT_IDENT_KEY, 'N/A') - transceiver_info_dict['cable_length'] = transceiver_info_data.get( - self.SFP_EEPROM_CABLE_KEY, 'N/A') - transceiver_info_dict['nominal_bit_rate'] = transceiver_info_data.get( - self.SFP_EEPROM_BIT_RATE_KEY, 'N/A') - transceiver_info_dict['vendor_date'] = transceiver_info_data.get( - self.SFP_EEPROM_DATE_KEY, 'N/A') - transceiver_info_dict['vendor_oui'] = transceiver_info_data.get( - self.SFP_EEPROM_OUI_KEY, 'N/A') - transceiver_info_dict['ext_rateselect_compliance'] = "N/A" - transceiver_info_dict['specification_compliance'] = spec_com_str or "N/A" + sfp_interface_bulk_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_INTFACE_BULK_OFFSET), XCVR_INTFACE_BULK_WIDTH_SFP) + sfp_interface_bulk_data = sfpi_obj.parse_sfp_info_bulk( + sfp_interface_bulk_raw, 0) + + sfp_vendor_name_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_VENDOR_NAME_OFFSET), XCVR_VENDOR_NAME_WIDTH) + sfp_vendor_name_data = sfpi_obj.parse_vendor_name( + sfp_vendor_name_raw, 0) + + sfp_vendor_pn_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_VENDOR_PN_OFFSET), XCVR_VENDOR_PN_WIDTH) + sfp_vendor_pn_data = sfpi_obj.parse_vendor_pn( + sfp_vendor_pn_raw, 0) + + sfp_vendor_rev_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_HW_REV_OFFSET), XCVR_HW_REV_WIDTH_SFP) + sfp_vendor_rev_data = sfpi_obj.parse_vendor_rev( + sfp_vendor_rev_raw, 0) + + sfp_vendor_sn_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_VENDOR_SN_OFFSET), XCVR_VENDOR_SN_WIDTH) + sfp_vendor_sn_data = sfpi_obj.parse_vendor_sn( + sfp_vendor_sn_raw, 0) + + sfp_vendor_oui_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_VENDOR_OUI_OFFSET), XCVR_VENDOR_OUI_WIDTH) + if sfp_vendor_oui_raw is not None: + sfp_vendor_oui_data = sfpi_obj.parse_vendor_oui( + sfp_vendor_oui_raw, 0) + + sfp_vendor_date_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_VENDOR_DATE_OFFSET), XCVR_VENDOR_DATE_WIDTH) + sfp_vendor_date_data = sfpi_obj.parse_vendor_date( + sfp_vendor_date_raw, 0) + + transceiver_info_dict = dict.fromkeys(self.info_dict_keys, 'N/A') + compliance_code_dict = dict() + + if sfp_interface_bulk_data: + transceiver_info_dict['type'] = sfp_interface_bulk_data['data']['type']['value'] + transceiver_info_dict['Connector'] = sfp_interface_bulk_data['data']['Connector']['value'] + transceiver_info_dict['encoding'] = sfp_interface_bulk_data['data']['EncodingCodes']['value'] + transceiver_info_dict['ext_identifier'] = sfp_interface_bulk_data['data']['Extended Identifier']['value'] + transceiver_info_dict['ext_rateselect_compliance'] = sfp_interface_bulk_data['data']['RateIdentifier']['value'] + transceiver_info_dict['type_abbrv_name'] = sfp_interface_bulk_data['data']['type_abbrv_name']['value'] + + transceiver_info_dict['manufacturename'] = sfp_vendor_name_data[ + 'data']['Vendor Name']['value'] if sfp_vendor_name_data else 'N/A' + transceiver_info_dict['modelname'] = sfp_vendor_pn_data['data']['Vendor PN']['value'] if sfp_vendor_pn_data else 'N/A' + transceiver_info_dict['hardwarerev'] = sfp_vendor_rev_data['data']['Vendor Rev']['value'] if sfp_vendor_rev_data else 'N/A' + transceiver_info_dict['serialnum'] = sfp_vendor_sn_data['data']['Vendor SN']['value'] if sfp_vendor_sn_data else 'N/A' + transceiver_info_dict['vendor_oui'] = sfp_vendor_oui_data['data']['Vendor OUI']['value'] if sfp_vendor_oui_data else 'N/A' + transceiver_info_dict['vendor_date'] = sfp_vendor_date_data[ + 'data']['VendorDataCode(YYYY-MM-DD Lot)']['value'] if sfp_vendor_date_data else 'N/A' + transceiver_info_dict['cable_type'] = "Unknown" + transceiver_info_dict['cable_length'] = "Unknown" + + for key in sfp_cable_length_tup: + if key in sfp_interface_bulk_data['data']: + transceiver_info_dict['cable_type'] = key + transceiver_info_dict['cable_length'] = str( + sfp_interface_bulk_data['data'][key]['value']) + + for key in sfp_compliance_code_tup: + if key in sfp_interface_bulk_data['data']['Specification compliance']['value']: + compliance_code_dict[key] = sfp_interface_bulk_data['data']['Specification compliance']['value'][key]['value'] + transceiver_info_dict['specification_compliance'] = str( + compliance_code_dict) + transceiver_info_dict['nominal_bit_rate'] = str( + sfp_interface_bulk_data['data']['NominalSignallingRate(UnitsOf100Mbd)']['value']) return transceiver_info_dict @@ -218,60 +289,146 @@ class Sfp(SfpBase, SfpUtilBase): ======================================================================== keys |Value Format |Information ---------------------------|---------------|---------------------------- - RX LOS |BOOLEAN |RX lost-of-signal status, - | |True if has RX los, False if not. - TX FAULT |BOOLEAN |TX fault status, - | |True if has TX fault, False if not. - Reset status |BOOLEAN |reset status, - | |True if SFP in reset, False if not. - LP mode |BOOLEAN |low power mode status, - | |True in lp mode, False if not. - TX disable |BOOLEAN |TX disable status, - | |True TX disabled, False if not. - TX disabled channel |HEX |disabled TX channles in hex, - | |bits 0 to 3 represent channel 0 + rx_los |BOOLEAN |RX loss-of-signal status, True if has RX los, False if not. + tx_fault |BOOLEAN |TX fault status, True if has TX fault, False if not. + reset_status |BOOLEAN |reset status, True if SFP in reset, False if not. + lp_mode |BOOLEAN |low power mode status, True in lp mode, False if not. + tx_disable |BOOLEAN |TX disable status, True TX disabled, False if not. + tx_disabled_channel |HEX |disabled TX channels in hex, bits 0 to 3 represent channel 0 | |to channel 3. - Temperature |INT |module temperature in Celsius - Voltage |INT |supply voltage in mV - TX bias |INT |TX Bias Current in mA - RX power |INT |received optical power in mW - TX power |INT |TX output power in mW + temperature |INT |module temperature in Celsius + voltage |INT |supply voltage in mV + txbias |INT |TX Bias Current in mA, n is the channel number, + | |for example, tx2bias stands for tx bias of channel 2. + rxpower |INT |received optical power in mW, n is the channel number, + | |for example, rx2power stands for rx power of channel 2. + txpower |INT |TX output power in mW, n is the channel number, + | |for example, tx2power stands for tx power of channel 2. ======================================================================== """ - transceiver_bulk_status_dict = dict() - # get eeprom data - self.eeprom_dict = self.get_eeprom_dict(self.port_num) - if self.eeprom_dict and self.eeprom_dict.get('dom'): - transceiver_dom_data = self.eeprom_dict['dom'].get('data', {}) - transceiver_dom_data_mmv = transceiver_dom_data.get( - self.SFP_EEPROM_MON_DATA_KEY) + # check present status + sfpd_obj = sff8472Dom() + if not self.get_presence() or not sfpd_obj: + return {} - # set normal transceiver bulk status - transceiver_bulk_status_dict['temperature'] = transceiver_dom_data_mmv.get( - self.SFP_EEPROM_TEMP_KEY, 'N/A') - transceiver_bulk_status_dict['voltage'] = transceiver_dom_data_mmv.get( - self.SFP_EEPROM_VCC_KEY, 'N/A') - transceiver_bulk_status_dict['rx1power'] = transceiver_dom_data_mmv.get( - self.SFP_EEPROM_RX_PWR_KEY, 'N/A') - transceiver_bulk_status_dict['rx2power'] = "N/A" - transceiver_bulk_status_dict['rx3power'] = "N/A" - transceiver_bulk_status_dict['rx4power'] = "N/A" - transceiver_bulk_status_dict['tx1bias'] = transceiver_dom_data_mmv.get( - self.SFP_EEPROM_TX_BS_KEY, 'N/A') - transceiver_bulk_status_dict['tx2bias'] = "N/A" - transceiver_bulk_status_dict['tx3bias'] = "N/A" - transceiver_bulk_status_dict['tx4bias'] = "N/A" - transceiver_bulk_status_dict['tx1power'] = transceiver_dom_data_mmv.get( - self.SFP_EEPROM_TX_PWR_KEY, 'N/A') - transceiver_bulk_status_dict['tx2power'] = "N/A" - transceiver_bulk_status_dict['tx3power'] = "N/A" - transceiver_bulk_status_dict['tx4power'] = "N/A" + eeprom_ifraw = self.__read_eeprom_specific_bytes(0, DOM_OFFSET) + sfpi_obj = sff8472InterfaceId(eeprom_ifraw) + cal_type = sfpi_obj.get_calibration_type() + sfpd_obj._calibration_type = cal_type - for key in transceiver_bulk_status_dict: - transceiver_bulk_status_dict[key] = self._convert_string_to_num( - transceiver_bulk_status_dict[key]) + offset = DOM_OFFSET + transceiver_dom_info_dict = dict.fromkeys(self.dom_dict_keys, 'N/A') + dom_temperature_raw = self.__read_eeprom_specific_bytes( + (offset + SFP_TEMPE_OFFSET), SFP_TEMPE_WIDTH) - return transceiver_bulk_status_dict + if dom_temperature_raw is not None: + dom_temperature_data = sfpd_obj.parse_temperature( + dom_temperature_raw, 0) + transceiver_dom_info_dict['temperature'] = dom_temperature_data['data']['Temperature']['value'] + + dom_voltage_raw = self.__read_eeprom_specific_bytes( + (offset + SFP_VOLT_OFFSET), SFP_VOLT_WIDTH) + if dom_voltage_raw is not None: + dom_voltage_data = sfpd_obj.parse_voltage(dom_voltage_raw, 0) + transceiver_dom_info_dict['voltage'] = dom_voltage_data['data']['Vcc']['value'] + + dom_channel_monitor_raw = self.__read_eeprom_specific_bytes( + (offset + SFP_CHANNL_MON_OFFSET), SFP_CHANNL_MON_WIDTH) + if dom_channel_monitor_raw is not None: + dom_voltage_data = sfpd_obj.parse_channel_monitor_params( + dom_channel_monitor_raw, 0) + transceiver_dom_info_dict['tx1power'] = dom_voltage_data['data']['TXPower']['value'] + transceiver_dom_info_dict['rx1power'] = dom_voltage_data['data']['RXPower']['value'] + transceiver_dom_info_dict['tx1bias'] = dom_voltage_data['data']['TXBias']['value'] + + for key in transceiver_dom_info_dict: + transceiver_dom_info_dict[key] = self._convert_string_to_num( + transceiver_dom_info_dict[key]) + + transceiver_dom_info_dict['rx_los'] = self.get_rx_los() + transceiver_dom_info_dict['tx_fault'] = self.get_tx_fault() + transceiver_dom_info_dict['reset_status'] = self.get_reset_status() + transceiver_dom_info_dict['lp_mode'] = self.get_lpmode() + + return transceiver_dom_info_dict + + def get_transceiver_threshold_info(self): + """ + Retrieves transceiver threshold info of this SFP + Returns: + A dict which contains following keys/values : + ======================================================================== + keys |Value Format |Information + ---------------------------|---------------|---------------------------- + temphighalarm |FLOAT |High Alarm Threshold value of temperature in Celsius. + templowalarm |FLOAT |Low Alarm Threshold value of temperature in Celsius. + temphighwarning |FLOAT |High Warning Threshold value of temperature in Celsius. + templowwarning |FLOAT |Low Warning Threshold value of temperature in Celsius. + vcchighalarm |FLOAT |High Alarm Threshold value of supply voltage in mV. + vcclowalarm |FLOAT |Low Alarm Threshold value of supply voltage in mV. + vcchighwarning |FLOAT |High Warning Threshold value of supply voltage in mV. + vcclowwarning |FLOAT |Low Warning Threshold value of supply voltage in mV. + rxpowerhighalarm |FLOAT |High Alarm Threshold value of received power in dBm. + rxpowerlowalarm |FLOAT |Low Alarm Threshold value of received power in dBm. + rxpowerhighwarning |FLOAT |High Warning Threshold value of received power in dBm. + rxpowerlowwarning |FLOAT |Low Warning Threshold value of received power in dBm. + txpowerhighalarm |FLOAT |High Alarm Threshold value of transmit power in dBm. + txpowerlowalarm |FLOAT |Low Alarm Threshold value of transmit power in dBm. + txpowerhighwarning |FLOAT |High Warning Threshold value of transmit power in dBm. + txpowerlowwarning |FLOAT |Low Warning Threshold value of transmit power in dBm. + txbiashighalarm |FLOAT |High Alarm Threshold value of tx Bias Current in mA. + txbiaslowalarm |FLOAT |Low Alarm Threshold value of tx Bias Current in mA. + txbiashighwarning |FLOAT |High Warning Threshold value of tx Bias Current in mA. + txbiaslowwarning |FLOAT |Low Warning Threshold value of tx Bias Current in mA. + ======================================================================== + """ + # check present status + sfpd_obj = sff8472Dom() + + if not self.get_presence() and not sfpd_obj: + return {} + + eeprom_ifraw = self.__read_eeprom_specific_bytes(0, DOM_OFFSET) + sfpi_obj = sff8472InterfaceId(eeprom_ifraw) + cal_type = sfpi_obj.get_calibration_type() + sfpd_obj._calibration_type = cal_type + + offset = DOM_OFFSET + transceiver_dom_threshold_info_dict = dict.fromkeys( + self.threshold_dict_keys, 'N/A') + dom_module_threshold_raw = self.__read_eeprom_specific_bytes( + (offset + SFP_MODULE_THRESHOLD_OFFSET), SFP_MODULE_THRESHOLD_WIDTH) + if dom_module_threshold_raw is not None: + dom_module_threshold_data = sfpd_obj.parse_alarm_warning_threshold( + dom_module_threshold_raw, 0) + + transceiver_dom_threshold_info_dict['temphighalarm'] = dom_module_threshold_data['data']['TempHighAlarm']['value'] + transceiver_dom_threshold_info_dict['templowalarm'] = dom_module_threshold_data['data']['TempLowAlarm']['value'] + transceiver_dom_threshold_info_dict['temphighwarning'] = dom_module_threshold_data['data']['TempHighWarning']['value'] + transceiver_dom_threshold_info_dict['templowwarning'] = dom_module_threshold_data['data']['TempLowWarning']['value'] + transceiver_dom_threshold_info_dict['vcchighalarm'] = dom_module_threshold_data['data']['VoltageHighAlarm']['value'] + transceiver_dom_threshold_info_dict['vcclowalarm'] = dom_module_threshold_data['data']['VoltageLowAlarm']['value'] + transceiver_dom_threshold_info_dict['vcchighwarning'] = dom_module_threshold_data[ + 'data']['VoltageHighWarning']['value'] + transceiver_dom_threshold_info_dict['vcclowwarning'] = dom_module_threshold_data['data']['VoltageLowWarning']['value'] + transceiver_dom_threshold_info_dict['txbiashighalarm'] = dom_module_threshold_data['data']['BiasHighAlarm']['value'] + transceiver_dom_threshold_info_dict['txbiaslowalarm'] = dom_module_threshold_data['data']['BiasLowAlarm']['value'] + transceiver_dom_threshold_info_dict['txbiashighwarning'] = dom_module_threshold_data['data']['BiasHighWarning']['value'] + transceiver_dom_threshold_info_dict['txbiaslowwarning'] = dom_module_threshold_data['data']['BiasLowWarning']['value'] + transceiver_dom_threshold_info_dict['txpowerhighalarm'] = dom_module_threshold_data['data']['TXPowerHighAlarm']['value'] + transceiver_dom_threshold_info_dict['txpowerlowalarm'] = dom_module_threshold_data['data']['TXPowerLowAlarm']['value'] + transceiver_dom_threshold_info_dict['txpowerhighwarning'] = dom_module_threshold_data['data']['TXPowerHighWarning']['value'] + transceiver_dom_threshold_info_dict['txpowerlowwarning'] = dom_module_threshold_data['data']['TXPowerLowWarning']['value'] + transceiver_dom_threshold_info_dict['rxpowerhighalarm'] = dom_module_threshold_data['data']['RXPowerHighAlarm']['value'] + transceiver_dom_threshold_info_dict['rxpowerlowalarm'] = dom_module_threshold_data['data']['RXPowerLowAlarm']['value'] + transceiver_dom_threshold_info_dict['rxpowerhighwarning'] = dom_module_threshold_data['data']['RXPowerHighWarning']['value'] + transceiver_dom_threshold_info_dict['rxpowerlowwarning'] = dom_module_threshold_data['data']['RXPowerLowWarning']['value'] + + for key in transceiver_dom_threshold_info_dict: + transceiver_dom_threshold_info_dict[key] = self._convert_string_to_num( + transceiver_dom_threshold_info_dict[key]) + + return transceiver_dom_threshold_info_dict def get_reset_status(self): """ @@ -280,7 +437,7 @@ class Sfp(SfpBase, SfpUtilBase): A Boolean, True if reset enabled, False if disabled """ # SFP doesn't support this feature - return NotImplementedError + return False def get_rx_los(self): """ @@ -290,14 +447,12 @@ class Sfp(SfpBase, SfpUtilBase): Note : RX LOS status is latched until a call to get_rx_los or a reset. """ rx_los = False - rx_los_key = "RXLOSState" - self.eeprom_dict = self.get_eeprom_dict(self.port_num) - if self.eeprom_dict and self.eeprom_dict.get('dom'): - transceiver_dom_data = self.eeprom_dict['dom'].get('data', {}) - transceiver_dom_data_sc = transceiver_dom_data.get( - self.SFP_EEPROM_STATUS_CON_KEY) - state = transceiver_dom_data_sc.get(rx_los_key) - rx_los = True if 'off' not in state.lower() else False + status_control_raw = self.__read_eeprom_specific_bytes( + SFP_STATUS_CONTROL_OFFSET, SFP_STATUS_CONTROL_WIDTH) + if status_control_raw: + data = int(status_control_raw[0], 16) + rx_los = (sffbase().test_bit(data, 1) != 0) + return rx_los def get_tx_fault(self): @@ -308,14 +463,12 @@ class Sfp(SfpBase, SfpUtilBase): Note : TX fault status is lached until a call to get_tx_fault or a reset. """ tx_fault = False - tx_fault_key = "TXFaultState" - self.eeprom_dict = self.get_eeprom_dict(self.port_num) - if self.eeprom_dict and self.eeprom_dict.get('dom'): - transceiver_dom_data = self.eeprom_dict['dom'].get('data', {}) - transceiver_dom_data_sc = transceiver_dom_data.get( - self.SFP_EEPROM_STATUS_CON_KEY) - state = transceiver_dom_data_sc.get(tx_fault_key) - tx_fault = True if 'off' not in state.lower() else False + status_control_raw = self.__read_eeprom_specific_bytes( + SFP_STATUS_CONTROL_OFFSET, SFP_STATUS_CONTROL_WIDTH) + if status_control_raw: + data = int(status_control_raw[0], 16) + tx_fault = (sffbase().test_bit(data, 2) != 0) + return tx_fault def get_tx_disable(self): @@ -325,14 +478,17 @@ class Sfp(SfpBase, SfpUtilBase): A Boolean, True if tx_disable is enabled, False if disabled """ tx_disable = False - tx_disable_key = "TXDisableState" - self.eeprom_dict = self.get_eeprom_dict(self.port_num) - if self.eeprom_dict and self.eeprom_dict.get('dom'): - transceiver_dom_data = self.eeprom_dict['dom'].get('data', {}) - transceiver_dom_data_sc = transceiver_dom_data.get( - self.SFP_EEPROM_STATUS_CON_KEY) - state = transceiver_dom_data_sc.get(tx_disable_key) - tx_disable = True if 'off' not in state.lower() else False + tx_fault = False + status_control_raw = self.__read_eeprom_specific_bytes( + SFP_STATUS_CONTROL_OFFSET, SFP_STATUS_CONTROL_WIDTH) + if status_control_raw: + data = int(status_control_raw[0], 16) + tx_disable_hard = (sffbase().test_bit( + data, SFP_TX_DISABLE_HARD_BIT) != 0) + tx_disable_soft = (sffbase().test_bit( + data, SFP_TX_DISABLE_SOFT_BIT) != 0) + tx_disable = tx_disable_hard | tx_disable_soft + return tx_disable def get_tx_disable_channel(self): @@ -345,7 +501,7 @@ class Sfp(SfpBase, SfpUtilBase): and channel 2 have been disabled. """ # SFP doesn't support this feature - return NotImplementedError + return 0 def get_lpmode(self): """ @@ -354,7 +510,7 @@ class Sfp(SfpBase, SfpUtilBase): A Boolean, True if lpmode is enabled, False if disabled """ # SFP doesn't support this feature - return self.get_low_power_mode(self.port_num) + return False def get_power_override(self): """ @@ -363,7 +519,7 @@ class Sfp(SfpBase, SfpUtilBase): A Boolean, True if power-override is enabled, False if disabled """ # SFP doesn't support this feature - return NotImplementedError + return False def get_temperature(self): """ @@ -426,7 +582,7 @@ class Sfp(SfpBase, SfpUtilBase): A boolean, True if successful, False if not """ # SFP doesn't support this feature - return NotImplementedError + return False def tx_disable(self, tx_disable): """ @@ -437,26 +593,29 @@ class Sfp(SfpBase, SfpUtilBase): Returns: A boolean, True if tx_disable is set successfully, False if not """ - - sysfsfile_eeprom = self.__get_sysfsfile_eeprom() - status_control_raw = self._read_eeprom_specific_bytes( - sysfsfile_eeprom, self.SFP_STATUS_CONTROL_OFFSET, self.SFP_STATUS_CONTROL_WIDTH) if sysfsfile_eeprom else None + sysfs_sfp_i2c_client_eeprom_path = self.port_to_eeprom_mapping[self.port_num] + status_control_raw = self.__read_eeprom_specific_bytes( + SFP_STATUS_CONTROL_OFFSET, SFP_STATUS_CONTROL_WIDTH) if status_control_raw is not None: - tx_disable_bit = 0x80 if tx_disable else 0x7f + # Set bit 6 for Soft TX Disable Select + # 01000000 = 64 and 10111111 = 191 + tx_disable_bit = 64 if tx_disable else 191 status_control = int(status_control_raw[0], 16) tx_disable_ctl = (status_control | tx_disable_bit) if tx_disable else ( status_control & tx_disable_bit) try: + sysfsfile_eeprom = open( + sysfs_sfp_i2c_client_eeprom_path, mode="r+b", buffering=0) buffer = create_string_buffer(1) buffer[0] = chr(tx_disable_ctl) # Write to eeprom - sysfsfile_eeprom.seek(self.SFP_STATUS_CONTROL_OFFSET) + sysfsfile_eeprom.seek(SFP_STATUS_CONTROL_OFFSET) sysfsfile_eeprom.write(buffer[0]) - except IOError as e: - print "Error: unable to open file: %s" % str(e) + except: + #print("Error: unable to open file: %s" % str(e)) return False finally: - if sysfsfile_eeprom is not None: + if sysfsfile_eeprom: sysfsfile_eeprom.close() time.sleep(0.01) return True @@ -474,7 +633,7 @@ class Sfp(SfpBase, SfpUtilBase): A boolean, True if successful, False if not """ # SFP doesn't support this feature - return NotImplementedError + return False def set_lpmode(self, lpmode): """ @@ -485,7 +644,8 @@ class Sfp(SfpBase, SfpUtilBase): Returns: A boolean, True if lpmode is set successfully, False if not """ - return self.set_low_power_mode(self.port_num, lpmode) + # SFP doesn't support this feature + return False def set_power_override(self, power_override, power_set): """ @@ -504,7 +664,8 @@ class Sfp(SfpBase, SfpUtilBase): A boolean, True if power-override and power_set are set successfully, False if not """ - return NotImplementedError + # SFP doesn't support this feature + return False def get_name(self): """ @@ -512,7 +673,11 @@ class Sfp(SfpBase, SfpUtilBase): Returns: string: The name of the device """ - return self.logical[self.index] + sfputil_helper = SfpUtilHelper() + sfputil_helper.read_porttab_mappings( + self.__get_path_to_port_config_file()) + name = sfputil_helper.logical[self.index] or "Unknown" + return name def get_presence(self): """ diff --git a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/chassis.py b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/chassis.py index 91db08f4a6..7e597b7d08 100644 --- a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/chassis.py +++ b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/chassis.py @@ -26,7 +26,8 @@ try: except ImportError as e: raise ImportError(str(e) + "- required module not found") -NUM_FAN = 5 +NUM_FAN_TRAY = 5 +NUM_FAN = 2 NUM_PSU = 2 NUM_THERMAL = 5 NUM_SFP = 32 @@ -44,9 +45,10 @@ class Chassis(ChassisBase): def __init__(self): self.config_data = {} - for index in range(0, NUM_FAN): - fan = Fan(index) - self._fan_list.append(fan) + for fant_index in range(0, NUM_FAN_TRAY): + for fan_index in range(0, NUM_FAN): + fan = Fan(fant_index, fan_index) + self._fan_list.append(fan) for index in range(0, NUM_PSU): psu = Psu(index) self._psu_list.append(psu) diff --git a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/fan.py b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/fan.py index 86eda4cfbe..c0724e9bb6 100644 --- a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/fan.py +++ b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/fan.py @@ -18,27 +18,46 @@ except ImportError as e: raise ImportError(str(e) + "- required module not found") EMC2305_PATH = "/sys/bus/i2c/drivers/emc2305/" -SYS_GPIO_DIR = "/sys/class/gpio" +GPIO_DIR = "/sys/class/gpio" +GPIO_LABEL = "pca9505" EMC2305_MAX_PWM = 255 EMC2305_FAN_PWM = "pwm{}" EMC2305_FAN_TARGET = "fan{}_target" EMC2305_FAN_INPUT = "pwm{}" -FAN_NAME_LIST = ["FAN-1", "FAN-2", "FAN-3", "FAN-4", "FAN-5"] +FAN_NAME_LIST = ["FAN-1F", "FAN-1R", "FAN-2F", "FAN-2R", + "FAN-3F", "FAN-3R", "FAN-4F", "FAN-4R", "FAN-5F", "FAN-5R"] +PSU_FAN_MAX_RPM = 11000 +PSU_HWMON_PATH = "/sys/bus/i2c/devices/i2c-{0}/{0}-00{1}/hwmon" +PSU_I2C_MAPPING = { + 0: { + "num": 10, + "addr": "5a" + }, + 1: { + "num": 11, + "addr": "5b" + }, +} class Fan(FanBase): """Platform-specific Fan class""" - def __init__(self, fan_index): - self.index = fan_index - self.config_data = {} - self.fan_speed = 0 - FanBase.__init__(self) + def __init__(self, fan_tray_index, fan_index=0, is_psu_fan=False, psu_index=0): + self.fan_index = fan_index + self.fan_tray_index = fan_tray_index + self.is_psu_fan = is_psu_fan + if self.is_psu_fan: + self.psu_index = psu_index + self.psu_i2c_num = PSU_I2C_MAPPING[self.psu_index]["num"] + self.psu_i2c_addr = PSU_I2C_MAPPING[self.psu_index]["addr"] + self.psu_hwmon_path = PSU_HWMON_PATH.format( + self.psu_i2c_num, self.psu_i2c_addr) # dx010 fan attributes # Two EMC2305s located at i2c-13-4d and i2c-13-2e # to control a dual-fan module. - self.dx010_emc2305_chip = [ + self.emc2305_chip_mapping = [ { 'device': "13-002e", 'index_map': [2, 1, 4, 5, 3] @@ -48,121 +67,133 @@ class Fan(FanBase): 'index_map': [2, 4, 5, 3, 1] } ] - self.dx010_fan_gpio = [ - {'base': self.get_gpio_base()}, - {'prs': 10, 'dir': 15, 'color': {'red': 31, 'green': 32}}, - {'prs': 11, 'dir': 16, 'color': {'red': 29, 'green': 30}}, - {'prs': 12, 'dir': 17, 'color': {'red': 35, 'green': 36}}, - {'prs': 13, 'dir': 18, 'color': {'red': 37, 'green': 38}}, - {'prs': 14, 'dir': 19, 'color': {'red': 33, 'green': 34}}, + {'base': self.__get_gpio_base()}, + {'prs': 11, 'dir': 16, 'color': {'red': 31, 'green': 32}}, # 1 + {'prs': 10, 'dir': 15, 'color': {'red': 29, 'green': 30}}, # 2 + {'prs': 13, 'dir': 18, 'color': {'red': 35, 'green': 36}}, # 3 + {'prs': 14, 'dir': 19, 'color': {'red': 37, 'green': 38}}, # 4 + {'prs': 12, 'dir': 17, 'color': {'red': 33, 'green': 34}}, # 5 ] + FanBase.__init__(self) - def get_gpio_base(self): - for r in os.listdir(SYS_GPIO_DIR): - if "gpiochip" in r: + def __read_txt_file(self, file_path): + try: + with open(file_path, 'r') as fd: + data = fd.read() + return data.strip() + except IOError: + pass + return "" + + def __write_txt_file(self, file_path, value): + try: + with open(file_path, 'w') as fd: + fd.write(str(value)) + except: + return False + return True + + def __search_file_by_name(self, directory, file_name): + for dirpath, dirnames, files in os.walk(directory): + for name in files: + file_path = os.path.join(dirpath, name) + if name in file_name: + return file_path + return None + + def __get_gpio_base(self): + for r in os.listdir(GPIO_DIR): + label_path = os.path.join(GPIO_DIR, r, "label") + if "gpiochip" in r and GPIO_LABEL in self.__read_txt_file(label_path): return int(r[8:], 10) return 216 # Reserve - def get_gpio_value(self, pinnum): + def __get_gpio_value(self, pinnum): gpio_base = self.dx010_fan_gpio[0]['base'] - - gpio_dir = SYS_GPIO_DIR + '/gpio' + str(gpio_base+pinnum) + gpio_dir = GPIO_DIR + '/gpio' + str(gpio_base+pinnum) gpio_file = gpio_dir + "/value" + retval = self.__read_txt_file(gpio_file) + return retval.rstrip('\r\n') - try: - with open(gpio_file, 'r') as fd: - retval = fd.read() - except IOError: - raise IOError("Unable to open " + gpio_file + "file !") - - retval = retval.rstrip('\r\n') - return retval - - def set_gpio_value(self, pinnum, value=0): + def __set_gpio_value(self, pinnum, value=0): gpio_base = self.dx010_fan_gpio[0]['base'] - - gpio_dir = SYS_GPIO_DIR + '/gpio' + str(gpio_base+pinnum) + gpio_dir = GPIO_DIR + '/gpio' + str(gpio_base+pinnum) gpio_file = gpio_dir + "/value" - - try: - with open(gpio_file, 'w') as fd: - retval = fd.write(str(value)) - except IOError: - raise IOError("Unable to open " + gpio_file + "file !") + return self.__write_txt_file(gpio_file, value) def get_direction(self): + """ + Retrieves the direction of fan + Returns: + A string, either FAN_DIRECTION_INTAKE or FAN_DIRECTION_EXHAUST + depending on fan direction + """ + direction = self.FAN_DIRECTION_EXHAUST + if not self.is_psu_fan: + raw = self.__get_gpio_value( + self.dx010_fan_gpio[self.fan_tray_index+1]['dir']) - direction = self.FAN_DIRECTION_INTAKE - raw = self.get_gpio_value(self.dx010_fan_gpio[self.index+1]['dir']) - - if int(raw, 10) == 0: - direction = self.FAN_DIRECTION_INTAKE - else: - direction = self.FAN_DIRECTION_EXHAUST + direction = self.FAN_DIRECTION_INTAKE if int( + raw, 10) == 0 else self.FAN_DIRECTION_EXHAUST return direction def get_speed(self): """ - DX010 platform specific data: + Retrieves the speed of fan as a percentage of full speed + Returns: + An integer, the percentage of full fan speed, in the range 0 (off) + to 100 (full speed) + Note: speed = pwm_in/255*100 """ - # TODO: Seperate PSU's fan and main fan class - if self.fan_speed != 0: - return self.fan_speed - else: - speed = 0 - pwm = [] - emc2305_chips = self.dx010_emc2305_chip + speed = 0 + if self.is_psu_fan: + fan_speed_sysfs_name = "fan{}_input".format(self.fan_index+1) + fan_speed_sysfs_path = self.__search_file_by_name( + self.psu_hwmon_path, fan_speed_sysfs_name) + fan_speed_rpm = self.__read_txt_file(fan_speed_sysfs_path) or 0 + fan_speed_raw = float(fan_speed_rpm)/PSU_FAN_MAX_RPM * 100 + speed = math.ceil(float(fan_speed_rpm) * 100 / PSU_FAN_MAX_RPM) + elif self.get_presence(): + chip = self.emc2305_chip_mapping[self.fan_index] + device = chip['device'] + fan_index = chip['index_map'] + sysfs_path = "%s%s/%s" % ( + EMC2305_PATH, device, EMC2305_FAN_INPUT) + sysfs_path = sysfs_path.format(fan_index[self.fan_tray_index]) + raw = self.__read_txt_file(sysfs_path).strip('\r\n') + pwm = int(raw, 10) if raw else 0 + speed = math.ceil(float(pwm * 100 / EMC2305_MAX_PWM)) - for chip in emc2305_chips: - device = chip['device'] - fan_index = chip['index_map'] - sysfs_path = "%s%s/%s" % ( - EMC2305_PATH, device, EMC2305_FAN_INPUT) - sysfs_path = sysfs_path.format(fan_index[self.index]) - try: - with open(sysfs_path, 'r') as file: - raw = file.read().strip('\r\n') - pwm.append(int(raw, 10)) - except IOError: - raise IOError("Unable to open " + sysfs_path) - - speed = math.ceil( - float(pwm[0]) * 100 / EMC2305_MAX_PWM) - - return int(speed) + return int(speed) def get_target_speed(self): """ - DX010 platform specific data: + Retrieves the target (expected) speed of the fan + Returns: + An integer, the percentage of full fan speed, in the range 0 (off) + to 100 (full speed) + Note: speed_pc = pwm_target/255*100 0 : when PWM mode is use pwm : when pwm mode is not use - """ target = 0 - pwm = [] - emc2305_chips = self.dx010_emc2305_chip - - for chip in emc2305_chips: + if not self.is_psu_fan: + chip = self.emc2305_chip_mapping[self.fan_index] device = chip['device'] fan_index = chip['index_map'] sysfs_path = "%s%s/%s" % ( EMC2305_PATH, device, EMC2305_FAN_TARGET) - sysfs_path = sysfs_path.format(fan_index[self.index]) - try: - with open(sysfs_path, 'r') as file: - raw = file.read().strip('\r\n') - pwm.append(int(raw, 10)) - except IOError: - raise IOError("Unable to open " + sysfs_path) - - target = pwm[0] * 100 / EMC2305_MAX_PWM + sysfs_path = sysfs_path.format(fan_index[self.fan_tray_index]) + raw = self.__read_txt_file(sysfs_path).strip('\r\n') + pwm = int(raw, 10) if raw else 0 + target = math.ceil(float(pwm) * 100 / EMC2305_MAX_PWM) return target @@ -177,55 +208,68 @@ class Fan(FanBase): def set_speed(self, speed): """ - Depends on pwm or target mode is selected: + Sets the fan speed + Args: + speed: An integer, the percentage of full fan speed to set fan to, + in the range 0 (off) to 100 (full speed) + Returns: + A boolean, True if speed is set successfully, False if not + + Note: + Depends on pwm or target mode is selected: 1) pwm = speed_pc * 255 <-- Currently use this mode. 2) target_pwm = speed_pc * 100 / 255 2.1) set pwm{}_enable to 3 """ pwm = speed * 255 / 100 - emc2305_chips = self.dx010_emc2305_chip - - for chip in emc2305_chips: + if not self.is_psu_fan and self.get_presence(): + chip = self.emc2305_chip_mapping[self.fan_index] device = chip['device'] fan_index = chip['index_map'] sysfs_path = "%s%s/%s" % ( EMC2305_PATH, device, EMC2305_FAN_PWM) - sysfs_path = sysfs_path.format(fan_index[self.index]) + sysfs_path = sysfs_path.format(fan_index[self.fan_tray_index]) + return self.__write_txt_file(sysfs_path, int(pwm)) + + return False + + def set_status_led(self, color): + """ + Sets the state of the fan module status LED + Args: + color: A string representing the color with which to set the + fan module status LED + Returns: + bool: True if status LED state is set successfully, False if not + """ + set_status_led = False + if not self.is_psu_fan: + s1, s2 = False, False try: - with open(sysfs_path, 'w') as file: - file.write(str(int(pwm))) + if color == self.STATUS_LED_COLOR_GREEN: + s1 = self.__set_gpio_value( + self.dx010_fan_gpio[self.fan_tray_index+1]['color']['red'], 1) + s2 = self.__set_gpio_value( + self.dx010_fan_gpio[self.fan_tray_index+1]['color']['green'], 0) + + elif color == self.STATUS_LED_COLOR_RED: + s1 = self.__set_gpio_value( + self.dx010_fan_gpio[self.fan_tray_index+1]['color']['red'], 0) + s2 = self.__set_gpio_value( + self.dx010_fan_gpio[self.fan_tray_index+1]['color']['green'], 1) + + elif color == self.STATUS_LED_COLOR_OFF: + s1 = self.__set_gpio_value( + self.dx010_fan_gpio[self.fan_tray_index+1]['color']['red'], 1) + s2 = self.__set_gpio_value( + self.dx010_fan_gpio[self.fan_tray_index+1]['color']['green'], 1) + set_status_led = s1 and s2 + return set_status_led except IOError: return False - return True - - def set_status_led(self, color): - try: - if color == self.STATUS_LED_COLOR_GREEN: - self.set_gpio_value( - self.dx010_fan_gpio[self.index+1]['color']['red'], 1) - self.set_gpio_value( - self.dx010_fan_gpio[self.index+1]['color']['green'], 0) - - elif color == self.STATUS_LED_COLOR_RED: - self.set_gpio_value( - self.dx010_fan_gpio[self.index+1]['color']['red'], 0) - self.set_gpio_value( - self.dx010_fan_gpio[self.index+1]['color']['green'], 1) - - elif color == self.STATUS_LED_COLOR_OFF: - self.set_gpio_value( - self.dx010_fan_gpio[self.index+1]['color']['red'], 1) - self.set_gpio_value( - self.dx010_fan_gpio[self.index+1]['color']['green'], 1) - else: - return False - - except IOError: - return False - - return True + return set_status_led def get_name(self): """ @@ -233,7 +277,10 @@ class Fan(FanBase): Returns: string: The name of the device """ - return FAN_NAME_LIST[self.index] + fan_name = FAN_NAME_LIST[self.fan_tray_index*2 + self.fan_index] if not self.is_psu_fan else "PSU-{} FAN-{}".format( + self.psu_index+1, self.fan_index+1) + + return fan_name def get_presence(self): """ @@ -241,6 +288,7 @@ class Fan(FanBase): Returns: bool: True if PSU is present, False if not """ - raw = self.get_gpio_value(self.dx010_fan_gpio[self.index+1]['prs']) + present_str = self.__get_gpio_value( + self.dx010_fan_gpio[self.fan_tray_index+1]['prs']) - return int(raw, 10) == 0 + return int(present_str, 10) == 0 if not self.is_psu_fan else True diff --git a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/psu.py b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/psu.py index ab22314495..7e18827cbf 100644 --- a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/psu.py +++ b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/psu.py @@ -8,7 +8,7 @@ # ############################################################################# -import os.path +import os import sonic_platform try: @@ -17,66 +17,152 @@ try: except ImportError as e: raise ImportError(str(e) + "- required module not found") -FAN_DX010_SPEED_PATH = "/sys/class/hwmon/hwmon{}/fan1_input" GREEN_LED_PATH = "/sys/devices/platform/leds_dx010/leds/dx010:green:p-{}/brightness" -FAN_MAX_RPM = 11000 -SYS_GPIO_DIR = "/sys/class/gpio" +HWMON_PATH = "/sys/bus/i2c/devices/i2c-{0}/{0}-00{1}/hwmon" +GPIO_DIR = "/sys/class/gpio" +GPIO_LABEL = "pca9505" PSU_NAME_LIST = ["PSU-1", "PSU-2"] +PSU_NUM_FAN = [1, 1] +PSU_I2C_MAPPING = { + 0: { + "num": 10, + "addr": "5a" + }, + 1: { + "num": 11, + "addr": "5b" + }, +} class Psu(PsuBase): """Platform-specific Psu class""" def __init__(self, psu_index): - PsuBase.__init__(self) self.index = psu_index self.green_led_path = GREEN_LED_PATH.format(self.index+1) self.dx010_psu_gpio = [ - {'base': self.get_gpio_base()}, + {'base': self.__get_gpio_base()}, {'prs': 27, 'status': 22}, {'prs': 28, 'status': 25} ] + self.i2c_num = PSU_I2C_MAPPING[self.index]["num"] + self.i2c_addr = PSU_I2C_MAPPING[self.index]["addr"] + self.hwmon_path = HWMON_PATH.format(self.i2c_num, self.i2c_addr) + for fan_index in range(0, PSU_NUM_FAN[self.index]): + fan = Fan(fan_index, 0, is_psu_fan=True, psu_index=self.index) + self._fan_list.append(fan) + PsuBase.__init__(self) - def get_gpio_base(self): - for r in os.listdir(SYS_GPIO_DIR): - if "gpiochip" in r: + def __read_txt_file(self, file_path): + try: + with open(file_path, 'r') as fd: + data = fd.read() + return data.strip() + except IOError: + pass + return "" + + def __search_file_by_contain(self, directory, search_str, file_start): + for dirpath, dirnames, files in os.walk(directory): + for name in files: + file_path = os.path.join(dirpath, name) + if name.startswith(file_start) and search_str in self.__read_txt_file(file_path): + return file_path + return None + + def __get_gpio_base(self): + for r in os.listdir(GPIO_DIR): + label_path = os.path.join(GPIO_DIR, r, "label") + if "gpiochip" in r and GPIO_LABEL in self.__read_txt_file(label_path): return int(r[8:], 10) return 216 # Reserve - def get_gpio_value(self, pinnum): + def __get_gpio_value(self, pinnum): gpio_base = self.dx010_psu_gpio[0]['base'] - gpio_file = "{}/gpio{}/value".format(SYS_GPIO_DIR, - str(gpio_base+pinnum)) + gpio_dir = GPIO_DIR + '/gpio' + str(gpio_base+pinnum) + gpio_file = gpio_dir + "/value" + retval = self.__read_txt_file(gpio_file) + return retval.rstrip('\r\n') - try: - with open(gpio_file, 'r') as fd: - retval = fd.read() - except IOError: - raise IOError("Unable to open " + gpio_file + "file !") - - retval = retval.rstrip('\r\n') - return retval - - def get_fan(self): + def get_voltage(self): """ - Retrieves object representing the fan module contained in this PSU + Retrieves current PSU voltage output Returns: - An object dervied from FanBase representing the fan module - contained in this PSU + A float number, the output voltage in volts, + e.g. 12.1 """ + psu_voltage = 0.0 + voltage_name = "in{}_input" + voltage_label = "vout1" - fan_speed_path = FAN_DX010_SPEED_PATH.format( - str(self.index+8)) - try: - with open(fan_speed_path) as fan_speed_file: - fan_speed_rpm = int(fan_speed_file.read()) - except IOError: - fan_speed = 0 + vout_label_path = self.__search_file_by_contain( + self.hwmon_path, voltage_label, "in") + if vout_label_path: + dir_name = os.path.dirname(vout_label_path) + basename = os.path.basename(vout_label_path) + in_num = filter(str.isdigit, basename) + vout_path = os.path.join( + dir_name, voltage_name.format(in_num)) + vout_val = self.__read_txt_file(vout_path) + psu_voltage = float(vout_val) / 1000 - fan_speed = float(fan_speed_rpm)/FAN_MAX_RPM * 100 - fan = Fan(0) - fan.fan_speed = int(fan_speed) if int(fan_speed) <= 100 else 100 - return fan + return psu_voltage + + def get_current(self): + """ + Retrieves present electric current supplied by PSU + Returns: + A float number, the electric current in amperes, e.g 15.4 + """ + psu_current = 0.0 + current_name = "curr{}_input" + current_label = "iout1" + + curr_label_path = self.__search_file_by_contain( + self.hwmon_path, current_label, "cur") + if curr_label_path: + dir_name = os.path.dirname(curr_label_path) + basename = os.path.basename(curr_label_path) + cur_num = filter(str.isdigit, basename) + cur_path = os.path.join( + dir_name, current_name.format(cur_num)) + cur_val = self.__read_txt_file(cur_path) + psu_current = float(cur_val) / 1000 + + return psu_current + + def get_power(self): + """ + Retrieves current energy supplied by PSU + Returns: + A float number, the power in watts, e.g. 302.6 + """ + psu_power = 0.0 + current_name = "power{}_input" + current_label = "pout1" + + pw_label_path = self.__search_file_by_contain( + self.hwmon_path, current_label, "power") + if pw_label_path: + dir_name = os.path.dirname(pw_label_path) + basename = os.path.basename(pw_label_path) + pw_num = filter(str.isdigit, basename) + pw_path = os.path.join( + dir_name, current_name.format(pw_num)) + pw_val = self.__read_txt_file(pw_path) + psu_power = float(pw_val) / 1000000 + + return psu_power + + def get_powergood_status(self): + """ + Retrieves the powergood status of PSU + Returns: + A boolean, True if PSU has stablized its output voltages and passed all + its internal self-tests, False if not. + """ + return self.get_status() def set_status_led(self, color): """ @@ -104,6 +190,20 @@ class Psu(PsuBase): return True + def get_status_led(self): + """ + Gets the state of the PSU status LED + Returns: + A string, one of the predefined STATUS_LED_COLOR_* strings above + """ + status = self.__read_txt_file(self.green_led_path) + status_str = { + '255': self.STATUS_LED_COLOR_GREEN, + '0': self.STATUS_LED_COLOR_OFF + }.get(status, None) + + return status_str + def get_name(self): """ Retrieves the name of the device @@ -118,7 +218,7 @@ class Psu(PsuBase): Returns: bool: True if PSU is present, False if not """ - raw = self.get_gpio_value(self.dx010_psu_gpio[self.index+1]['prs']) + raw = self.__get_gpio_value(self.dx010_psu_gpio[self.index+1]['prs']) return int(raw, 10) == 0 def get_status(self): @@ -127,5 +227,6 @@ class Psu(PsuBase): Returns: A boolean value, True if device is operating properly, False if not """ - raw = self.get_gpio_value(self.dx010_psu_gpio[self.index+1]['status']) + raw = self.__get_gpio_value( + self.dx010_psu_gpio[self.index+1]['status']) return int(raw, 10) == 1 diff --git a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/sfp.py b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/sfp.py index 9275776e0e..3a02be39df 100644 --- a/device/celestica/x86_64-cel_seastone-r0/sonic_platform/sfp.py +++ b/device/celestica/x86_64-cel_seastone-r0/sonic_platform/sfp.py @@ -15,47 +15,76 @@ import sonic_device_util from ctypes import create_string_buffer try: - from swsssdk import ConfigDBConnector from sonic_platform_base.sfp_base import SfpBase - from sonic_platform_base.sonic_sfp.sfputilbase import SfpUtilBase from sonic_platform_base.sonic_sfp.sff8436 import sff8436Dom + from sonic_platform_base.sonic_sfp.sff8436 import sff8436InterfaceId + from sonic_platform_base.sonic_sfp.sfputilhelper import SfpUtilHelper except ImportError as e: raise ImportError(str(e) + "- required module not found") +INFO_OFFSET = 128 +DOM_OFFSET = 0 -class Sfp(SfpBase, SfpUtilBase): +XCVR_INTFACE_BULK_OFFSET = 0 +XCVR_INTFACE_BULK_WIDTH_QSFP = 20 +XCVR_HW_REV_WIDTH_QSFP = 2 +XCVR_CABLE_LENGTH_WIDTH_QSFP = 5 +XCVR_VENDOR_NAME_OFFSET = 20 +XCVR_VENDOR_NAME_WIDTH = 16 +XCVR_VENDOR_OUI_OFFSET = 37 +XCVR_VENDOR_OUI_WIDTH = 3 +XCVR_VENDOR_PN_OFFSET = 40 +XCVR_VENDOR_PN_WIDTH = 16 +XCVR_HW_REV_OFFSET = 56 +XCVR_HW_REV_WIDTH_OSFP = 2 +XCVR_HW_REV_WIDTH_SFP = 4 +XCVR_VENDOR_SN_OFFSET = 68 +XCVR_VENDOR_SN_WIDTH = 16 +XCVR_VENDOR_DATE_OFFSET = 84 +XCVR_VENDOR_DATE_WIDTH = 8 +XCVR_DOM_CAPABILITY_OFFSET = 92 +XCVR_DOM_CAPABILITY_WIDTH = 1 + +# Offset for values in QSFP eeprom +QSFP_DOM_REV_OFFSET = 1 +QSFP_DOM_REV_WIDTH = 1 +QSFP_TEMPE_OFFSET = 22 +QSFP_TEMPE_WIDTH = 2 +QSFP_VOLT_OFFSET = 26 +QSFP_VOLT_WIDTH = 2 +QSFP_CHANNL_MON_OFFSET = 34 +QSFP_CHANNL_MON_WIDTH = 16 +QSFP_CHANNL_MON_WITH_TX_POWER_WIDTH = 24 +QSFP_CONTROL_OFFSET = 86 +QSFP_CONTROL_WIDTH = 8 +QSFP_CHANNL_RX_LOS_STATUS_OFFSET = 3 +QSFP_CHANNL_RX_LOS_STATUS_WIDTH = 1 +QSFP_CHANNL_TX_FAULT_STATUS_OFFSET = 4 +QSFP_CHANNL_TX_FAULT_STATUS_WIDTH = 1 +QSFP_POWEROVERRIDE_OFFSET = 93 +QSFP_POWEROVERRIDE_WIDTH = 1 +QSFP_MODULE_THRESHOLD_OFFSET = 128 +QSFP_MODULE_THRESHOLD_WIDTH = 24 +QSFP_CHANNEL_THRESHOLD_OFFSET = 176 +QSFP_CHANNEL_THRESHOLD_WIDTH = 16 + +qsfp_cable_length_tup = ('Length(km)', 'Length OM3(2m)', + 'Length OM2(m)', 'Length OM1(m)', + 'Length Cable Assembly(m)') + +qsfp_compliance_code_tup = ('10/40G Ethernet Compliance Code', 'SONET Compliance codes', + 'SAS/SATA compliance codes', 'Gigabit Ethernet Compliant codes', + 'Fibre Channel link length/Transmitter Technology', + 'Fibre Channel transmission media', 'Fibre Channel Speed') + + + +class Sfp(SfpBase): """Platform-specific Sfp class""" # Port number PORT_START = 1 PORT_END = 32 - PORTS_IN_BLOCK = 32 - - # Offset for values in QSFP info eeprom - QSFP_CONTROL_OFFSET = 86 - QSFP_CONTROL_WIDTH = 8 - QSFP_CHANNL_RX_LOS_STATUS_OFFSET = 3 - QSFP_CHANNL_RX_LOS_STATUS_WIDTH = 1 - QSFP_CHANNL_TX_FAULT_STATUS_OFFSET = 4 - QSFP_CHANNL_TX_FAULT_STATUS_WIDTH = 1 - QSFP_POWEROVERRIDE_OFFSET = 93 - QSFP_POWEROVERRIDE_WIDTH = 1 - - # Key for values in QSFP eeprom dict - QSFP_EEPROM_TYPE_KEY = "Identifier" - QSFP_EEPROM_HW_REV_KEY = "Vendor Rev" - QSFP_EEPROM_MF_NAME_KEY = "Vendor Name" - QSFP_EEPROM_MODEL_NAME_KEY = "Vendor PN" - QSFP_EEPROM_SERIAL_KEY = "Vendor SN" - QSFP_EEPROM_CONNECTOR_KEY = "Connector" - QSFP_EEPROM_ENCODE_KEY = "Encoding" - QSFP_EEPROM_EXT_IDENT_KEY = "Extended Identifier" - QSFP_EEPROM_EXT_RATE_KEY = "Extended RateSelect Compliance" - QSFP_EEPROM_CABLE_KEY = "Length(km)" - QSFP_EEPROM_BIT_RATE_KEY = "Nominal Bit Rate(100Mbs)" - QSFP_EEPROM_SPEC_COM_KEY = "Specification compliance" - QSFP_EEPROM_DATE_KEY = "Vendor Date Code(YYYY-MM-DD Lot)" - QSFP_EEPROM_OUI_KEY = "Vendor OUI" # Path to QSFP sysfs RESET_PATH = "/sys/devices/platform/dx010_cpld/qsfp_reset" @@ -63,27 +92,33 @@ class Sfp(SfpBase, SfpUtilBase): PRS_PATH = "/sys/devices/platform/dx010_cpld/qsfp_modprs" PLATFORM_ROOT_PATH = "/usr/share/sonic/device" PMON_HWSKU_PATH = "/usr/share/sonic/hwsku" - PLATFORM = "x86_64-cel_seastone-r0" - HWSKU = "Seastone-DX010" HOST_CHK_CMD = "docker > /dev/null 2>&1" - _port_to_eeprom_mapping = {} + PLATFORM = "x86_64-cel_seastone-r0" + HWSKU = "Seastone-DX010" - @property - def port_start(self): - return self.PORT_START + def __init__(self, sfp_index): + # Init index + self.index = sfp_index + self.port_num = self.index + 1 if self.PORT_START == 1 else index - @property - def port_end(self): - return self.PORT_END + # Init eeprom path + eeprom_path = '/sys/bus/i2c/devices/i2c-{0}/{0}-0050/eeprom' + self.port_to_eeprom_mapping = {} + for x in range(self.PORT_START, self.PORT_END + 1): + p_num = x - 1 if self.PORT_START == 1 else x + self.port_to_eeprom_mapping[x] = eeprom_path.format(p_num + 26) - @property - def qsfp_ports(self): - return range(self.PORT_START, self.PORTS_IN_BLOCK + 1) + self.info_dict_keys = ['type', 'hardwarerev', 'serialnum', 'manufacturename', 'modelname', 'Connector', 'encoding', 'ext_identifier', + 'ext_rateselect_compliance', 'cable_type', 'cable_length', 'nominal_bit_rate', 'specification_compliance', 'vendor_date', 'vendor_oui'] - @property - def port_to_eeprom_mapping(self): - return self._port_to_eeprom_mapping + self.dom_dict_keys = ['rx_los', 'tx_fault', 'reset_status', 'power_lpmode', 'tx_disable', 'tx_disable_channel', 'temperature', 'voltage', + 'rx1power', 'rx2power', 'rx3power', 'rx4power', 'tx1bias', 'tx2bias', 'tx3bias', 'tx4bias', 'tx1power', 'tx2power', 'tx3power', 'tx4power'] + + self.threshold_dict_keys = ['temphighalarm', 'temphighwarning', 'templowalarm', 'templowwarning', 'vcchighalarm', 'vcchighwarning', 'vcclowalarm', 'vcclowwarning', 'rxpowerhighalarm', 'rxpowerhighwarning', + 'rxpowerlowalarm', 'rxpowerlowwarning', 'txpowerhighalarm', 'txpowerhighwarning', 'txpowerlowalarm', 'txpowerlowwarning', 'txbiashighalarm', 'txbiashighwarning', 'txbiaslowalarm', 'txbiaslowwarning'] + + SfpBase.__init__(self) def _convert_string_to_num(self, value_str): if "-inf" in value_str: @@ -105,88 +140,14 @@ class Sfp(SfpBase, SfpUtilBase): else: return 'N/A' - def get_low_power_mode(self, port_num): - # Check for invalid port_num - if port_num < self.port_start or port_num > self.port_end: - return False - + def __read_txt_file(self, file_path): try: - reg_file = open(self.LP_PATH, "r") - content = reg_file.readline().rstrip() - except IOError as e: - print("Error: unable to open file: %s" % str(e)) - return False - - # content is a string containing the hex representation of the register - reg_value = int(content, 16) - - # Determind if port_num start from 1 or 0 - bit_index = port_num - 1 if self.port_start == 1 else port_num - - # Mask off the bit corresponding to our port - mask = (1 << bit_index) - - # LPMode is active high - if reg_value & mask == 0: - return False - - return True - - def set_low_power_mode(self, port_num, lpmode): - try: - reg_file = open(self.LP_PATH, "r+") - except IOError as e: - print("Error: unable to open file: %s" % str(e)) - return False - - content = reg_file.readline().rstrip() - - # content is a string containing the hex representation of the register - reg_value = int(content, 16) - - # Determind if port_num start from 1 or 0 - bit_index = port_num - 1 if self.port_start == 1 else port_num - - # Mask off the bit corresponding to our port - mask = (1 << bit_index) - # LPMode is active high; set or clear the bit accordingly - reg_value = reg_value | mask if lpmode else reg_value & ~mask - - # Convert our register value back to a hex string and write back - content = hex(reg_value).strip('L') - - reg_file.seek(0) - reg_file.write(content) - reg_file.close() - - return True - - def get_transceiver_change_event(self, timeout=0): - raise NotImplementedError - - def __init__(self, sfp_index): - # Init SfpUtilBase - eeprom_path = '/sys/bus/i2c/devices/i2c-{0}/{0}-0050/eeprom' - - for x in range(self.PORT_START, self.PORT_END + 1): - if self.port_start == 1: - self._port_to_eeprom_mapping[x] = eeprom_path.format( - (x - 1) + 26) - else: - self._port_to_eeprom_mapping[x] = eeprom_path.format(x + 26) - - self.__read_porttab() - SfpUtilBase.__init__(self) - - # Init index - self.index = sfp_index - self.port_num = self.index + 1 - - def __read_porttab(self): - try: - self.read_porttab_mappings(self.__get_path_to_port_config_file()) - except: + with open(file_path, 'r') as fd: + data = fd.read() + return data.strip() + except IOError: pass + return "" def __is_host(self): return os.system(self.HOST_CHK_CMD) == 0 @@ -199,19 +160,24 @@ class Sfp(SfpBase, SfpUtilBase): def __read_eeprom_specific_bytes(self, offset, num_bytes): sysfsfile_eeprom = None - eeprom_raw = None + eeprom_raw = [] + for i in range(0, num_bytes): + eeprom_raw.append("0x00") + sysfs_sfp_i2c_client_eeprom_path = self.port_to_eeprom_mapping[self.port_num] try: sysfsfile_eeprom = open( sysfs_sfp_i2c_client_eeprom_path, mode="rb", buffering=0) - except IOError: - print("Error: reading sysfs file %s" % - sysfs_sfp_i2c_client_eeprom_path) + sysfsfile_eeprom.seek(offset) + raw = sysfsfile_eeprom.read(num_bytes) + for n in range(0, num_bytes): + eeprom_raw[n] = hex(ord(raw[n]))[2:].zfill(2) + except: + pass finally: if sysfsfile_eeprom: - eeprom_raw = self._read_eeprom_specific_bytes( - sysfsfile_eeprom, offset, num_bytes) sysfsfile_eeprom.close() + return eeprom_raw def get_transceiver_info(self): @@ -238,45 +204,84 @@ class Sfp(SfpBase, SfpUtilBase): vendor_oui |1*255VCHAR |vendor OUI ======================================================================== """ - transceiver_info_dict = dict() - # get eeprom data - self.eeprom_dict = self.get_eeprom_dict(self.port_num) - if self.eeprom_dict and self.eeprom_dict.get('interface'): - transceiver_info_data = self.eeprom_dict['interface'].get('data') + # check present status + sfpi_obj = sff8436InterfaceId() + if not self.get_presence() or not sfpi_obj: + return {} - # set specification_compliance - spec_com = transceiver_info_data.get( - self.QSFP_EEPROM_SPEC_COM_KEY, {}) - spec_com_str = "/".join(list(spec_com.values())) + offset = INFO_OFFSET - # set normal transceiver info - transceiver_info_dict['type'] = transceiver_info_data.get( - self.QSFP_EEPROM_TYPE_KEY, 'N/A') - transceiver_info_dict['hardwarerev'] = transceiver_info_data.get( - self.QSFP_EEPROM_HW_REV_KEY, 'N/A') - transceiver_info_dict['manufacturename'] = transceiver_info_data.get( - self.QSFP_EEPROM_MF_NAME_KEY, 'N/A') - transceiver_info_dict['modelname'] = transceiver_info_data.get( - self.QSFP_EEPROM_MODEL_NAME_KEY, 'N/A') - transceiver_info_dict['serialnum'] = transceiver_info_data.get( - self.QSFP_EEPROM_SERIAL_KEY, 'N/A') - transceiver_info_dict['Connector'] = transceiver_info_data.get( - self.QSFP_EEPROM_CONNECTOR_KEY, 'N/A') - transceiver_info_dict['encoding'] = transceiver_info_data.get( - self.QSFP_EEPROM_ENCODE_KEY, 'N/A') - transceiver_info_dict['ext_identifier'] = transceiver_info_data.get( - self.QSFP_EEPROM_EXT_IDENT_KEY, 'N/A') - transceiver_info_dict['ext_rateselect_compliance'] = transceiver_info_data.get( - self.QSFP_EEPROM_EXT_RATE_KEY, 'N/A') - transceiver_info_dict['cable_length'] = transceiver_info_data.get( - self.QSFP_EEPROM_CABLE_KEY, 'N/A') - transceiver_info_dict['vendor_date'] = transceiver_info_data.get( - self.QSFP_EEPROM_DATE_KEY, 'N/A') - transceiver_info_dict['vendor_oui'] = transceiver_info_data.get( - self.QSFP_EEPROM_OUI_KEY, 'N/A') - transceiver_info_dict['nominal_bit_rate'] = transceiver_info_data.get( - self.QSFP_EEPROM_BIT_RATE_KEY, 'N/A') - transceiver_info_dict['specification_compliance'] = spec_com_str or "N/A" + sfp_interface_bulk_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_INTFACE_BULK_OFFSET), XCVR_INTFACE_BULK_WIDTH_QSFP) + sfp_interface_bulk_data = sfpi_obj.parse_sfp_info_bulk( + sfp_interface_bulk_raw, 0) + + sfp_vendor_name_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_VENDOR_NAME_OFFSET), XCVR_VENDOR_NAME_WIDTH) + sfp_vendor_name_data = sfpi_obj.parse_vendor_name( + sfp_vendor_name_raw, 0) + + sfp_vendor_pn_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_VENDOR_PN_OFFSET), XCVR_VENDOR_PN_WIDTH) + sfp_vendor_pn_data = sfpi_obj.parse_vendor_pn( + sfp_vendor_pn_raw, 0) + + sfp_vendor_rev_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_HW_REV_OFFSET), XCVR_HW_REV_WIDTH_QSFP) + sfp_vendor_rev_data = sfpi_obj.parse_vendor_rev( + sfp_vendor_rev_raw, 0) + + sfp_vendor_sn_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_VENDOR_SN_OFFSET), XCVR_VENDOR_SN_WIDTH) + sfp_vendor_sn_data = sfpi_obj.parse_vendor_sn( + sfp_vendor_sn_raw, 0) + + sfp_vendor_oui_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_VENDOR_OUI_OFFSET), XCVR_VENDOR_OUI_WIDTH) + if sfp_vendor_oui_raw is not None: + sfp_vendor_oui_data = sfpi_obj.parse_vendor_oui( + sfp_vendor_oui_raw, 0) + + sfp_vendor_date_raw = self.__read_eeprom_specific_bytes( + (offset + XCVR_VENDOR_DATE_OFFSET), XCVR_VENDOR_DATE_WIDTH) + sfp_vendor_date_data = sfpi_obj.parse_vendor_date( + sfp_vendor_date_raw, 0) + + transceiver_info_dict = dict.fromkeys(self.info_dict_keys, 'N/A') + compliance_code_dict = dict() + + if sfp_interface_bulk_data: + transceiver_info_dict['type'] = sfp_interface_bulk_data['data']['type']['value'] + transceiver_info_dict['Connector'] = sfp_interface_bulk_data['data']['Connector']['value'] + transceiver_info_dict['encoding'] = sfp_interface_bulk_data['data']['EncodingCodes']['value'] + transceiver_info_dict['ext_identifier'] = sfp_interface_bulk_data['data']['Extended Identifier']['value'] + transceiver_info_dict['ext_rateselect_compliance'] = sfp_interface_bulk_data['data']['RateIdentifier']['value'] + transceiver_info_dict['type_abbrv_name'] = sfp_interface_bulk_data['data']['type_abbrv_name']['value'] + + transceiver_info_dict['manufacturename'] = sfp_vendor_name_data[ + 'data']['Vendor Name']['value'] if sfp_vendor_name_data else 'N/A' + transceiver_info_dict['modelname'] = sfp_vendor_pn_data['data']['Vendor PN']['value'] if sfp_vendor_pn_data else 'N/A' + transceiver_info_dict['hardwarerev'] = sfp_vendor_rev_data['data']['Vendor Rev']['value'] if sfp_vendor_rev_data else 'N/A' + transceiver_info_dict['serialnum'] = sfp_vendor_sn_data['data']['Vendor SN']['value'] if sfp_vendor_sn_data else 'N/A' + transceiver_info_dict['vendor_oui'] = sfp_vendor_oui_data['data']['Vendor OUI']['value'] if sfp_vendor_oui_data else 'N/A' + transceiver_info_dict['vendor_date'] = sfp_vendor_date_data[ + 'data']['VendorDataCode(YYYY-MM-DD Lot)']['value'] if sfp_vendor_date_data else 'N/A' + transceiver_info_dict['cable_type'] = "Unknown" + transceiver_info_dict['cable_length'] = "Unknown" + + for key in qsfp_cable_length_tup: + if key in sfp_interface_bulk_data['data']: + transceiver_info_dict['cable_type'] = key + transceiver_info_dict['cable_length'] = str( + sfp_interface_bulk_data['data'][key]['value']) + + for key in qsfp_compliance_code_tup: + if key in sfp_interface_bulk_data['data']['Specification compliance']['value']: + compliance_code_dict[key] = sfp_interface_bulk_data['data']['Specification compliance']['value'][key]['value'] + transceiver_info_dict['specification_compliance'] = str( + compliance_code_dict) + transceiver_info_dict['nominal_bit_rate'] = str( + sfp_interface_bulk_data['data']['Nominal Bit Rate(100Mbs)']['value']) return transceiver_info_dict @@ -288,83 +293,200 @@ class Sfp(SfpBase, SfpUtilBase): ======================================================================== keys |Value Format |Information ---------------------------|---------------|---------------------------- - RX LOS |BOOLEAN |RX lost-of-signal status, - | |True if has RX los, False if not. - TX FAULT |BOOLEAN |TX fault status, - | |True if has TX fault, False if not. - Reset status |BOOLEAN |reset status, - | |True if SFP in reset, False if not. - LP mode |BOOLEAN |low power mode status, - | |True in lp mode, False if not. - TX disable |BOOLEAN |TX disable status, - | |True TX disabled, False if not. - TX disabled channel |HEX |disabled TX channles in hex, - | |bits 0 to 3 represent channel 0 + rx_los |BOOLEAN |RX loss-of-signal status, True if has RX los, False if not. + tx_fault |BOOLEAN |TX fault status, True if has TX fault, False if not. + reset_status |BOOLEAN |reset status, True if SFP in reset, False if not. + lp_mode |BOOLEAN |low power mode status, True in lp mode, False if not. + tx_disable |BOOLEAN |TX disable status, True TX disabled, False if not. + tx_disabled_channel |HEX |disabled TX channels in hex, bits 0 to 3 represent channel 0 | |to channel 3. - Temperature |INT |module temperature in Celsius - Voltage |INT |supply voltage in mV - TX bias |INT |TX Bias Current in mA - RX power |INT |received optical power in mW - TX power |INT |TX output power in mW + temperature |INT |module temperature in Celsius + voltage |INT |supply voltage in mV + txbias |INT |TX Bias Current in mA, n is the channel number, + | |for example, tx2bias stands for tx bias of channel 2. + rxpower |INT |received optical power in mW, n is the channel number, + | |for example, rx2power stands for rx power of channel 2. + txpower |INT |TX output power in mW, n is the channel number, + | |for example, tx2power stands for tx power of channel 2. ======================================================================== """ - transceiver_dom_info_dict = dict() - self.eeprom_dict = self.get_eeprom_dict(self.port_num) - if self.eeprom_dict and self.eeprom_dict.get('dom'): - transceiver_dom_data = self.eeprom_dict['dom'].get('data', {}) - transceiver_dom_data_mmv = transceiver_dom_data.get( - "ModuleMonitorValues") - transceiver_dom_data_cmv = transceiver_dom_data.get( - "ChannelMonitorValues") - transceiver_dom_info_dict['temperature'] = transceiver_dom_data_mmv.get( - 'Temperature', 'N/A') - transceiver_dom_info_dict['voltage'] = transceiver_dom_data_mmv.get( - 'Vcc', 'N/A') - transceiver_dom_info_dict['rx1power'] = transceiver_dom_data_cmv.get( - 'RX1Power', 'N/A') - transceiver_dom_info_dict['rx2power'] = transceiver_dom_data_cmv.get( - 'RX2Power', 'N/A') - transceiver_dom_info_dict['rx3power'] = transceiver_dom_data_cmv.get( - 'RX3Power', 'N/A') - transceiver_dom_info_dict['rx4power'] = transceiver_dom_data_cmv.get( - 'RX4Power', 'N/A') - transceiver_dom_info_dict['tx1bias'] = transceiver_dom_data_cmv.get( - 'TX1Bias', 'N/A') - transceiver_dom_info_dict['tx2bias'] = transceiver_dom_data_cmv.get( - 'TX2Bias', 'N/A') - transceiver_dom_info_dict['tx3bias'] = transceiver_dom_data_cmv.get( - 'TX3Bias', 'N/A') - transceiver_dom_info_dict['tx4bias'] = transceiver_dom_data_cmv.get( - 'TX4Bias', 'N/A') - transceiver_dom_info_dict['tx1power'] = transceiver_dom_data_cmv.get( - 'TX1Power', 'N/A') - transceiver_dom_info_dict['tx2power'] = transceiver_dom_data_cmv.get( - 'TX2Power', 'N/A') - transceiver_dom_info_dict['tx3power'] = transceiver_dom_data_cmv.get( - 'TX3Power', 'N/A') - transceiver_dom_info_dict['tx4power'] = transceiver_dom_data_cmv.get( - 'TX4Power', 'N/A') + # check present status + sfpd_obj = sff8436Dom() + sfpi_obj = sff8436InterfaceId() + + if not self.get_presence() or not sfpi_obj or not sfpd_obj: + return {} + + transceiver_dom_info_dict = dict.fromkeys(self.dom_dict_keys, 'N/A') + offset = DOM_OFFSET + offset_xcvr = INFO_OFFSET + + # QSFP capability byte parse, through this byte can know whether it support tx_power or not. + # TODO: in the future when decided to migrate to support SFF-8636 instead of SFF-8436, + # need to add more code for determining the capability and version compliance + # in SFF-8636 dom capability definitions evolving with the versions. + qsfp_dom_capability_raw = self.__read_eeprom_specific_bytes( + (offset_xcvr + XCVR_DOM_CAPABILITY_OFFSET), XCVR_DOM_CAPABILITY_WIDTH) + if qsfp_dom_capability_raw is not None: + qspf_dom_capability_data = sfpi_obj.parse_qsfp_dom_capability( + qsfp_dom_capability_raw, 0) + else: + return None + + dom_temperature_raw = self.__read_eeprom_specific_bytes( + (offset + QSFP_TEMPE_OFFSET), QSFP_TEMPE_WIDTH) + if dom_temperature_raw is not None: + dom_temperature_data = sfpd_obj.parse_temperature( + dom_temperature_raw, 0) + transceiver_dom_info_dict['temperature'] = dom_temperature_data['data']['Temperature']['value'] + + dom_voltage_raw = self.__read_eeprom_specific_bytes( + (offset + QSFP_VOLT_OFFSET), QSFP_VOLT_WIDTH) + if dom_voltage_raw is not None: + dom_voltage_data = sfpd_obj.parse_voltage(dom_voltage_raw, 0) + transceiver_dom_info_dict['voltage'] = dom_voltage_data['data']['Vcc']['value'] + + qsfp_dom_rev_raw = self.__read_eeprom_specific_bytes( + (offset + QSFP_DOM_REV_OFFSET), QSFP_DOM_REV_WIDTH) + if qsfp_dom_rev_raw is not None: + qsfp_dom_rev_data = sfpd_obj.parse_sfp_dom_rev(qsfp_dom_rev_raw, 0) + qsfp_dom_rev = qsfp_dom_rev_data['data']['dom_rev']['value'] + + # The tx_power monitoring is only available on QSFP which compliant with SFF-8636 + # and claimed that it support tx_power with one indicator bit. + dom_channel_monitor_data = {} + dom_channel_monitor_raw = None + qsfp_tx_power_support = qspf_dom_capability_data['data']['Tx_power_support']['value'] + if (qsfp_dom_rev[0:8] != 'SFF-8636' or (qsfp_dom_rev[0:8] == 'SFF-8636' and qsfp_tx_power_support != 'on')): + dom_channel_monitor_raw = self.__read_eeprom_specific_bytes( + (offset + QSFP_CHANNL_MON_OFFSET), QSFP_CHANNL_MON_WIDTH) + if dom_channel_monitor_raw is not None: + dom_channel_monitor_data = sfpd_obj.parse_channel_monitor_params( + dom_channel_monitor_raw, 0) + + else: + dom_channel_monitor_raw = self.__read_eeprom_specific_bytes( + (offset + QSFP_CHANNL_MON_OFFSET), QSFP_CHANNL_MON_WITH_TX_POWER_WIDTH) + if dom_channel_monitor_raw is not None: + dom_channel_monitor_data = sfpd_obj.parse_channel_monitor_params_with_tx_power( + dom_channel_monitor_raw, 0) + transceiver_dom_info_dict['tx1power'] = dom_channel_monitor_data['data']['TX1Power']['value'] + transceiver_dom_info_dict['tx2power'] = dom_channel_monitor_data['data']['TX2Power']['value'] + transceiver_dom_info_dict['tx3power'] = dom_channel_monitor_data['data']['TX3Power']['value'] + transceiver_dom_info_dict['tx4power'] = dom_channel_monitor_data['data']['TX4Power']['value'] + + if dom_channel_monitor_raw: + transceiver_dom_info_dict['rx1power'] = dom_channel_monitor_data['data']['RX1Power']['value'] + transceiver_dom_info_dict['rx2power'] = dom_channel_monitor_data['data']['RX2Power']['value'] + transceiver_dom_info_dict['rx3power'] = dom_channel_monitor_data['data']['RX3Power']['value'] + transceiver_dom_info_dict['rx4power'] = dom_channel_monitor_data['data']['RX4Power']['value'] + transceiver_dom_info_dict['tx1bias'] = dom_channel_monitor_data['data']['TX1Bias']['value'] + transceiver_dom_info_dict['tx2bias'] = dom_channel_monitor_data['data']['TX2Bias']['value'] + transceiver_dom_info_dict['tx3bias'] = dom_channel_monitor_data['data']['TX3Bias']['value'] + transceiver_dom_info_dict['tx4bias'] = dom_channel_monitor_data['data']['TX4Bias']['value'] for key in transceiver_dom_info_dict: transceiver_dom_info_dict[key] = self._convert_string_to_num( transceiver_dom_info_dict[key]) + transceiver_dom_info_dict['rx_los'] = self.get_rx_los() + transceiver_dom_info_dict['tx_fault'] = self.get_tx_fault() + transceiver_dom_info_dict['reset_status'] = self.get_reset_status() + transceiver_dom_info_dict['lp_mode'] = self.get_lpmode() + return transceiver_dom_info_dict + def get_transceiver_threshold_info(self): + """ + Retrieves transceiver threshold info of this SFP + Returns: + A dict which contains following keys/values : + ======================================================================== + keys |Value Format |Information + ---------------------------|---------------|---------------------------- + temphighalarm |FLOAT |High Alarm Threshold value of temperature in Celsius. + templowalarm |FLOAT |Low Alarm Threshold value of temperature in Celsius. + temphighwarning |FLOAT |High Warning Threshold value of temperature in Celsius. + templowwarning |FLOAT |Low Warning Threshold value of temperature in Celsius. + vcchighalarm |FLOAT |High Alarm Threshold value of supply voltage in mV. + vcclowalarm |FLOAT |Low Alarm Threshold value of supply voltage in mV. + vcchighwarning |FLOAT |High Warning Threshold value of supply voltage in mV. + vcclowwarning |FLOAT |Low Warning Threshold value of supply voltage in mV. + rxpowerhighalarm |FLOAT |High Alarm Threshold value of received power in dBm. + rxpowerlowalarm |FLOAT |Low Alarm Threshold value of received power in dBm. + rxpowerhighwarning |FLOAT |High Warning Threshold value of received power in dBm. + rxpowerlowwarning |FLOAT |Low Warning Threshold value of received power in dBm. + txpowerhighalarm |FLOAT |High Alarm Threshold value of transmit power in dBm. + txpowerlowalarm |FLOAT |Low Alarm Threshold value of transmit power in dBm. + txpowerhighwarning |FLOAT |High Warning Threshold value of transmit power in dBm. + txpowerlowwarning |FLOAT |Low Warning Threshold value of transmit power in dBm. + txbiashighalarm |FLOAT |High Alarm Threshold value of tx Bias Current in mA. + txbiaslowalarm |FLOAT |Low Alarm Threshold value of tx Bias Current in mA. + txbiashighwarning |FLOAT |High Warning Threshold value of tx Bias Current in mA. + txbiaslowwarning |FLOAT |Low Warning Threshold value of tx Bias Current in mA. + ======================================================================== + """ + # check present status + sfpd_obj = sff8436Dom() + + if not self.get_presence() or not sfpd_obj: + return {} + + transceiver_dom_threshold_dict = dict.fromkeys( + self.threshold_dict_keys, 'N/A') + dom_thres_raw = self.__read_eeprom_specific_bytes( + QSFP_MODULE_THRESHOLD_OFFSET, QSFP_MODULE_THRESHOLD_WIDTH) if self.get_presence() and sfpd_obj else None + + if dom_thres_raw: + module_threshold_values = sfpd_obj.parse_module_threshold_values( + dom_thres_raw, 0) + module_threshold_data = module_threshold_values.get('data') + if module_threshold_data: + transceiver_dom_threshold_dict['temphighalarm'] = module_threshold_data['TempHighAlarm']['value'] + transceiver_dom_threshold_dict['templowalarm'] = module_threshold_data['TempLowAlarm']['value'] + transceiver_dom_threshold_dict['temphighwarning'] = module_threshold_data['TempHighWarning']['value'] + transceiver_dom_threshold_dict['templowwarning'] = module_threshold_data['TempLowWarning']['value'] + transceiver_dom_threshold_dict['vcchighalarm'] = module_threshold_data['VccHighAlarm']['value'] + transceiver_dom_threshold_dict['vcclowalarm'] = module_threshold_data['VccLowAlarm']['value'] + transceiver_dom_threshold_dict['vcchighwarning'] = module_threshold_data['VccHighWarning']['value'] + transceiver_dom_threshold_dict['vcclowwarning'] = module_threshold_data['VccLowWarning']['value'] + + dom_thres_raw = self.__read_eeprom_specific_bytes( + QSFP_CHANNEL_THRESHOLD_OFFSET, QSFP_CHANNEL_THRESHOLD_WIDTH) if self.get_presence() and sfpd_obj else None + channel_threshold_values = sfpd_obj.parse_channel_threshold_values( + dom_thres_raw, 0) + channel_threshold_data = channel_threshold_values.get('data') + if channel_threshold_data: + transceiver_dom_threshold_dict['rxpowerhighalarm'] = channel_threshold_data['RxPowerHighAlarm']['value'] + transceiver_dom_threshold_dict['rxpowerlowalarm'] = channel_threshold_data['RxPowerLowAlarm']['value'] + transceiver_dom_threshold_dict['rxpowerhighwarning'] = channel_threshold_data['RxPowerHighWarning']['value'] + transceiver_dom_threshold_dict['rxpowerlowwarning'] = channel_threshold_data['RxPowerLowWarning']['value'] + transceiver_dom_threshold_dict['txpowerhighalarm'] = "0.0dBm" + transceiver_dom_threshold_dict['txpowerlowalarm'] = "0.0dBm" + transceiver_dom_threshold_dict['txpowerhighwarning'] = "0.0dBm" + transceiver_dom_threshold_dict['txpowerlowwarning'] = "0.0dBm" + transceiver_dom_threshold_dict['txbiashighalarm'] = channel_threshold_data['TxBiasHighAlarm']['value'] + transceiver_dom_threshold_dict['txbiaslowalarm'] = channel_threshold_data['TxBiasLowAlarm']['value'] + transceiver_dom_threshold_dict['txbiashighwarning'] = channel_threshold_data['TxBiasHighWarning']['value'] + transceiver_dom_threshold_dict['txbiaslowwarning'] = channel_threshold_data['TxBiasLowWarning']['value'] + + for key in transceiver_dom_threshold_dict: + transceiver_dom_threshold_dict[key] = self._convert_string_to_num( + transceiver_dom_threshold_dict[key]) + + return transceiver_dom_threshold_dict + def get_reset_status(self): """ Retrieves the reset status of SFP Returns: A Boolean, True if reset enabled, False if disabled """ - try: - reg_file = open(self.RESET_PATH, "r") - except IOError as e: - print("Error: unable to open file: %s" % str(e)) + reset_status_raw = self.__read_txt_file(self.RESET_PATH).rstrip() + if not reset_status_raw: return False - content = reg_file.readline().rstrip() - reg_value = int(content, 16) + reg_value = int(reset_status_raw, 16) bin_format = bin(reg_value)[2:].zfill(32) return bin_format[::-1][self.index] == '0' @@ -375,16 +497,18 @@ class Sfp(SfpBase, SfpUtilBase): A Boolean, True if SFP has RX LOS, False if not. Note : RX LOS status is latched until a call to get_rx_los or a reset. """ + rx_los = False rx_los_list = [] dom_channel_monitor_raw = self.__read_eeprom_specific_bytes( - self.QSFP_CHANNL_RX_LOS_STATUS_OFFSET, self.QSFP_CHANNL_RX_LOS_STATUS_WIDTH) if self.get_presence() else None + QSFP_CHANNL_RX_LOS_STATUS_OFFSET, QSFP_CHANNL_RX_LOS_STATUS_WIDTH) if self.get_presence() else None if dom_channel_monitor_raw is not None: rx_los_data = int(dom_channel_monitor_raw[0], 16) rx_los_list.append(rx_los_data & 0x01 != 0) rx_los_list.append(rx_los_data & 0x02 != 0) rx_los_list.append(rx_los_data & 0x04 != 0) rx_los_list.append(rx_los_data & 0x08 != 0) - return rx_los_list + rx_los = rx_los_list[0] and rx_los_list[1] and rx_los_list[2] and rx_los_list[3] + return rx_los def get_tx_fault(self): """ @@ -393,16 +517,19 @@ class Sfp(SfpBase, SfpUtilBase): A Boolean, True if SFP has TX fault, False if not Note : TX fault status is lached until a call to get_tx_fault or a reset. """ + tx_fault = False tx_fault_list = [] dom_channel_monitor_raw = self.__read_eeprom_specific_bytes( - self.QSFP_CHANNL_TX_FAULT_STATUS_OFFSET, self.QSFP_CHANNL_TX_FAULT_STATUS_WIDTH) if self.get_presence() else None + QSFP_CHANNL_TX_FAULT_STATUS_OFFSET, QSFP_CHANNL_TX_FAULT_STATUS_WIDTH) if self.get_presence() else None if dom_channel_monitor_raw is not None: tx_fault_data = int(dom_channel_monitor_raw[0], 16) tx_fault_list.append(tx_fault_data & 0x01 != 0) tx_fault_list.append(tx_fault_data & 0x02 != 0) tx_fault_list.append(tx_fault_data & 0x04 != 0) tx_fault_list.append(tx_fault_data & 0x08 != 0) - return tx_fault_list + tx_fault = tx_fault_list[0] and tx_fault_list[1] and tx_fault_list[2] and tx_fault_list[3] + + return tx_fault def get_tx_disable(self): """ @@ -417,7 +544,7 @@ class Sfp(SfpBase, SfpUtilBase): return False dom_control_raw = self.__read_eeprom_specific_bytes( - self.QSFP_CONTROL_OFFSET, self.QSFP_CONTROL_WIDTH) if self.get_presence() else None + QSFP_CONTROL_OFFSET, QSFP_CONTROL_WIDTH) if self.get_presence() else None if dom_control_raw is not None: dom_control_data = sfpd_obj.parse_control_bytes(dom_control_raw, 0) tx_disable_list.append( @@ -455,7 +582,27 @@ class Sfp(SfpBase, SfpUtilBase): Returns: A Boolean, True if lpmode is enabled, False if disabled """ - return self.get_low_power_mode(self.port_num) + try: + reg_file = open(self.LP_PATH, "r") + content = reg_file.readline().rstrip() + except IOError as e: + print("Error: unable to open file: %s" % str(e)) + return False + + # content is a string containing the hex representation of the register + reg_value = int(content, 16) + + # Determind if port_num start from 1 or 0 + bit_index = self.port_num - 1 if self.PORT_START == 1 else self.port_num + + # Mask off the bit corresponding to our port + mask = (1 << bit_index) + + # LPMode is active high + if reg_value & mask == 0: + return False + + return True def get_power_override(self): """ @@ -471,7 +618,7 @@ class Sfp(SfpBase, SfpUtilBase): return False dom_control_raw = self.__read_eeprom_specific_bytes( - self.QSFP_CONTROL_OFFSET, self.QSFP_CONTROL_WIDTH) if self.get_presence() else None + QSFP_CONTROL_OFFSET, QSFP_CONTROL_WIDTH) if self.get_presence() else None if dom_control_raw is not None: dom_control_data = sfpd_obj.parse_control_bytes(dom_control_raw, 0) power_override = ( @@ -540,7 +687,7 @@ class Sfp(SfpBase, SfpUtilBase): tx2_pw = transceiver_dom_info_dict.get("tx2power", "N/A") tx3_pw = transceiver_dom_info_dict.get("tx3power", "N/A") tx4_pw = transceiver_dom_info_dict.get("tx4power", "N/A") - return [tx1_pw, tx2_pw, tx3_pw, tx4_pw] if transceiver_dom_info_dict else [] + return [tx1_pw, tx2_pw, tx3_pw, tx4_pw] def reset(self): """ @@ -563,7 +710,7 @@ class Sfp(SfpBase, SfpUtilBase): reg_value = int(content, 16) # Determind if port_num start from 1 or 0 - bit_index = self.port_num - 1 if self.port_start == 1 else self.port_num + bit_index = self.port_num - 1 if self.PORT_START == 1 else self.port_num # Mask off the bit corresponding to our port mask = (1 << bit_index) @@ -610,7 +757,7 @@ class Sfp(SfpBase, SfpUtilBase): # Write to eeprom sysfsfile_eeprom = open( self.port_to_eeprom_mapping[self.port_num], "r+b") - sysfsfile_eeprom.seek(self.QSFP_CONTROL_OFFSET) + sysfsfile_eeprom.seek(QSFP_CONTROL_OFFSET) sysfsfile_eeprom.write(buffer[0]) except IOError as e: print "Error: unable to open file: %s" % str(e) @@ -644,7 +791,7 @@ class Sfp(SfpBase, SfpUtilBase): # Write to eeprom sysfsfile_eeprom = open( self.port_to_eeprom_mapping[self.port_num], "r+b") - sysfsfile_eeprom.seek(self.QSFP_CONTROL_OFFSET) + sysfsfile_eeprom.seek(QSFP_CONTROL_OFFSET) sysfsfile_eeprom.write(buffer[0]) except IOError as e: print "Error: unable to open file: %s" % str(e) @@ -664,7 +811,33 @@ class Sfp(SfpBase, SfpUtilBase): Returns: A boolean, True if lpmode is set successfully, False if not """ - return self.set_low_power_mode(self.port_num, lpmode) + try: + reg_file = open(self.LP_PATH, "r+") + except IOError as e: + print("Error: unable to open file: %s" % str(e)) + return False + + content = reg_file.readline().rstrip() + + # content is a string containing the hex representation of the register + reg_value = int(content, 16) + + # Determind if port_num start from 1 or 0 + bit_index = self.port_num - 1 if self.PORT_START == 1 else self.port_num + + # Mask off the bit corresponding to our port + mask = (1 << bit_index) + # LPMode is active high; set or clear the bit accordingly + reg_value = reg_value | mask if lpmode else reg_value & ~mask + + # Convert our register value back to a hex string and write back + content = hex(reg_value).strip('L') + + reg_file.seek(0) + reg_file.write(content) + reg_file.close() + + return True def set_power_override(self, power_override, power_set): """ @@ -697,7 +870,7 @@ class Sfp(SfpBase, SfpUtilBase): # Write to eeprom sysfsfile_eeprom = open( self.port_to_eeprom_mapping[self.port_num], "r+b") - sysfsfile_eeprom.seek(self.QSFP_POWEROVERRIDE_OFFSET) + sysfsfile_eeprom.seek(QSFP_POWEROVERRIDE_OFFSET) sysfsfile_eeprom.write(buffer[0]) except IOError as e: print "Error: unable to open file: %s" % str(e) @@ -714,7 +887,11 @@ class Sfp(SfpBase, SfpUtilBase): Returns: string: The name of the device """ - return self.logical[self.index] + sfputil_helper = SfpUtilHelper() + sfputil_helper.read_porttab_mappings( + self.__get_path_to_port_config_file()) + name = sfputil_helper.logical[self.index] or "Unknown" + return name def get_presence(self): """ @@ -722,17 +899,15 @@ class Sfp(SfpBase, SfpUtilBase): Returns: bool: True if PSU is present, False if not """ - try: - reg_file = open(self.PRS_PATH, "r") - except IOError as e: - print("Error: unable to open file: %s" % str(e)) + presence_status_raw = self.__read_txt_file(self.PRS_PATH).rstrip() + if not presence_status_raw: return False - content = reg_file.readline().rstrip() + content = presence_status_raw.rstrip() reg_value = int(content, 16) # Determind if port_num start from 1 or 0 - bit_index = self.port_num - 1 if self.port_start == 1 else self.port_num + bit_index = self.port_num - 1 if self.PORT_START == 1 else self.port_num # Mask off the bit corresponding to our port mask = (1 << bit_index) @@ -760,3 +935,11 @@ class Sfp(SfpBase, SfpUtilBase): """ transceiver_dom_info_dict = self.get_transceiver_info() return transceiver_dom_info_dict.get("serialnum", "N/A") + + def get_status(self): + """ + Retrieves the operational status of the device + Returns: + A boolean value, True if device is operating properly, False if not + """ + return self.get_presence() and self.get_transceiver_bulk_status() From d47ec5268c1f1316e3f0ece16511f377e2172aa1 Mon Sep 17 00:00:00 2001 From: jostar-yang Date: Sat, 7 Sep 2019 06:11:46 +0800 Subject: [PATCH 37/43] [devices]: Add to support thermal plan in as9716 platform (#3409) --- .../as9716-32d/classes/fanutil.py | 91 +-- .../as9716-32d/classes/thermalutil.py | 101 +-- .../utils/accton_as9716_32d_monitor.py | 587 ++++++++++++------ 3 files changed, 453 insertions(+), 326 deletions(-) diff --git a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/classes/fanutil.py b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/classes/fanutil.py index ca0f3f9da1..52889cd589 100755 --- a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/classes/fanutil.py +++ b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/classes/fanutil.py @@ -1,26 +1,22 @@ #!/usr/bin/env python +# Copyright (c) 2019 Edgecore Networks Corporation # -# Copyright (C) 2017 Accton Technology Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT +# LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS +# FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - +# See the Apache Version 2.0 License for specific language governing +# permissions and limitations under the License. +# # ------------------------------------------------------------------ # HISTORY: # mm/dd/yyyy (A.D.) -# 11/13/2017: Polly Hsu, Create -# 1/10/2018: Jostar modify for as7716_32 -# 12/03/2018: Jostar modify for as7726_32 +# 8/27/2019:Jostar craete for as9716_32d # ------------------------------------------------------------------ try: @@ -46,8 +42,8 @@ class FanUtil(object): FAN_NODE_FAULT_IDX_OF_MAP = 1 FAN_NODE_DIR_IDX_OF_MAP = 2 - BASE_VAL_PATH = '/sys/bus/i2c/devices/54-0066/{0}' - FAN_DUTY_PATH = '/sys/bus/i2c/devices/54-0066/fan_duty_cycle_percentage' + BASE_VAL_PATH = '/sys/bus/i2c/devices/17-0066/{0}' + FAN_DUTY_PATH = '/sys/bus/i2c/devices/17-0066/fan_duty_cycle_percentage' #logfile = '' #loglevel = logging.INFO @@ -56,14 +52,14 @@ class FanUtil(object): key1 = fan id index (integer) starting from 1 key2 = fan node index (interger) starting from 1 value = path to fan device file (string) """ - _fan_to_device_path_mapping = {} + _fan_device_path_mapping = {} #fan1_direction #fan1_fault #fan1_present #(FAN_NUM_2_IDX, FAN_NODE_DUTY_IDX_OF_MAP): 'fan2_duty_cycle_percentage', - _fan_to_device_node_mapping = { + _fan_device_node_mapping = { (FAN_NUM_1_IDX, FAN_NODE_FAULT_IDX_OF_MAP): 'fan1_fault', (FAN_NUM_1_IDX, FAN_NODE_DIR_IDX_OF_MAP): 'fan1_direction', @@ -83,8 +79,8 @@ class FanUtil(object): (FAN_NUM_6_IDX, FAN_NODE_DIR_IDX_OF_MAP): 'fan6_direction', } - def _get_fan_to_device_node(self, fan_num, node_num): - return self._fan_to_device_node_mapping[(fan_num, node_num)] + def _get_fan_device_node(self, fan_num, node_num): + return self._fan_device_node_mapping[(fan_num, node_num)] def _get_fan_node_val(self, fan_num, node_num): if fan_num < self.FAN_NUM_1_IDX or fan_num > self.FAN_NUM_ON_MAIN_BROAD: @@ -95,7 +91,7 @@ class FanUtil(object): logging.debug('GET. Parameter error. node_num:%d', node_num) return None - device_path = self.get_fan_to_device_path(fan_num, node_num) + device_path = self.get_fan_device_path(fan_num, node_num) try: val_file = open(device_path, 'r') @@ -131,7 +127,7 @@ class FanUtil(object): logging.debug('GET. content is NULL. device_path:%s', device_path) return None - device_path = self.get_fan_to_device_path(fan_num, node_num) + device_path = self.get_fan_device_path(fan_num, node_num) try: val_file = open(device_path, 'w') except IOError as e: @@ -153,8 +149,8 @@ class FanUtil(object): for fan_num in range(self.FAN_NUM_1_IDX, self.FAN_NUM_ON_MAIN_BROAD+1): for node_num in range(self.FAN_NODE_FAULT_IDX_OF_MAP, self.FAN_NODE_NUM_OF_MAP+1): - self._fan_to_device_path_mapping[(fan_num, node_num)] = fan_path.format( - self._fan_to_device_node_mapping[(fan_num, node_num)]) + self._fan_device_path_mapping[(fan_num, node_num)] = fan_path.format( + self._fan_device_node_mapping[(fan_num, node_num)]) def get_num_fans(self): return self.FAN_NUM_ON_MAIN_BROAD @@ -169,20 +165,17 @@ class FanUtil(object): return self.FAN_NODE_FAULT_IDX_OF_MAP def get_size_node_map(self): - return len(self._fan_to_device_node_mapping) + return len(self._fan_device_node_mapping) def get_size_path_map(self): - return len(self._fan_to_device_path_mapping) + return len(self._fan_device_path_mapping) - def get_fan_to_device_path(self, fan_num, node_num): - return self._fan_to_device_path_mapping[(fan_num, node_num)] + def get_fan_device_path(self, fan_num, node_num): + return self._fan_device_path_mapping[(fan_num, node_num)] def get_fan_fault(self, fan_num): return self._get_fan_node_val(fan_num, self.FAN_NODE_FAULT_IDX_OF_MAP) - #def get_fan_speed(self, fan_num): - # return self._get_fan_node_val(fan_num, self.FAN_NODE_SPEED_IDX_OF_MAP) - def get_fan_dir(self, fan_num): return self._get_fan_node_val(fan_num, self.FAN_NODE_DIR_IDX_OF_MAP) @@ -198,28 +191,18 @@ class FanUtil(object): val_file.close() return int(content) - #self._get_fan_node_val(fan_num, self.FAN_NODE_DUTY_IDX_OF_MAP) -#static u32 reg_val_to_duty_cycle(u8 reg_val) -#{ -# reg_val &= FAN_DUTY_CYCLE_REG_MASK; -# return ((u32)(reg_val+1) * 625 + 75)/ 100; -#} -# + def set_fan_duty_cycle(self, val): - try: fan_file = open(self.FAN_DUTY_PATH, 'r+') except IOError as e: print "Error: unable to open file: %s" % str(e) return False - #val = ((val + 1 ) * 625 +75 ) / 100 + fan_file.write(str(val)) fan_file.close() return True - - #def get_fanr_fault(self, fan_num): - # return self._get_fan_node_val(fan_num, self.FANR_NODE_FAULT_IDX_OF_MAP) - + def get_fanr_speed(self, fan_num): return self._get_fan_node_val(fan_num, self.FANR_NODE_SPEED_IDX_OF_MAP) @@ -232,20 +215,4 @@ class FanUtil(object): logging.debug('GET. FAN fault. fan_num, %d', fan_num) return False - #if self.get_fanr_fault(fan_num) is not None and self.get_fanr_fault(fan_num) > 0: - # logging.debug('GET. FANR fault. fan_num, %d', fan_num) - # return False - return True - -#def main(): -# fan = FanUtil() -# -# print 'get_size_node_map : %d' % fan.get_size_node_map() -# print 'get_size_path_map : %d' % fan.get_size_path_map() -# for x in range(fan.get_idx_fan_start(), fan.get_num_fans()+1): -# for y in range(fan.get_idx_node_start(), fan.get_num_nodes()+1): -# print fan.get_fan_to_device_path(x, y) -# -#if __name__ == '__main__': -# main() diff --git a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/classes/thermalutil.py b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/classes/thermalutil.py index 00c9950d52..abbc5e819a 100755 --- a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/classes/thermalutil.py +++ b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/classes/thermalutil.py @@ -1,24 +1,22 @@ #!/usr/bin/env python +# Copyright (c) 2019 Edgecore Networks Corporation # -# Copyright (C) 2017 Accton Technology Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT +# LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS +# FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - +# See the Apache Version 2.0 License for specific language governing +# permissions and limitations under the License. +# # ------------------------------------------------------------------ # HISTORY: # mm/dd/yyyy (A.D.) -# 12/18/2018:Jostar craete for as9716_32d +# 8/27/2019:Jostar craete for as9716_32d # ------------------------------------------------------------------ try: @@ -34,38 +32,29 @@ except ImportError as e: class ThermalUtil(object): """Platform-specific ThermalUtil class""" THERMAL_NUM_MAX = 8 - THERMAL_NUM_1_IDX = 1 # 1_ON_MAIN_BROAD. LM75 - THERMAL_NUM_2_IDX = 2 # 2_ON_MAIN_BROAD. LM75 - THERMAL_NUM_3_IDX = 3 # 3_ON_MAIN_BROAD. LM75 - THERMAL_NUM_4_IDX = 4 # 4_ON_MAIN_BROAD. LM75 - THERMAL_NUM_5_IDX = 5 # 5_ON_MAIN_BROAD. LM75 - THERMAL_NUM_6_IDX = 6 # 6_ON_MAIN_BROAD. LM75 - THERMAL_NUM_7_IDX = 7 # 7_ON_MAIN_BROAD. LM75 - THERMAL_NUM_8_IDX = 8 # 8_ON_MAIN_BROAD. LM75 - + THERMAL_NUM_1_IDX = 1 # 1~7 are mainboard thermal sensors + THERMAL_NUM_2_IDX = 2 + THERMAL_NUM_3_IDX = 3 + THERMAL_NUM_4_IDX = 4 + THERMAL_NUM_5_IDX = 5 + THERMAL_NUM_6_IDX = 6 + THERMAL_NUM_7_IDX = 7 # CPU core + THERMAL_NUM_8_IDX = 8 + """ Dictionary where key1 = thermal id index (integer) starting from 1 value = path to fan device file (string) """ #_thermal_to_device_path_mapping = {} - - _thermal_to_device_node_mapping = { - THERMAL_NUM_1_IDX: ['18', '48'], - THERMAL_NUM_2_IDX: ['18', '49'], - THERMAL_NUM_3_IDX: ['18', '4a'], - THERMAL_NUM_4_IDX: ['18', '4b'], - THERMAL_NUM_5_IDX: ['18', '4c'], - THERMAL_NUM_6_IDX: ['18', '4e'], - THERMAL_NUM_7_IDX: ['18', '4f'], - } + thermal_sysfspath ={ THERMAL_NUM_1_IDX: ["/sys/bus/i2c/devices/18-0048/hwmon/hwmon*/temp1_input"], THERMAL_NUM_2_IDX: ["/sys/bus/i2c/devices/18-0049/hwmon/hwmon*/temp1_input"], - THERMAL_NUM_3_IDX: ["/sys/bus/i2c/devices/18-004a/hwmon/hwmon*/temp1_input"], - THERMAL_NUM_4_IDX: ["/sys/bus/i2c/devices/18-004b/hwmon/hwmon*/temp1_input"], - THERMAL_NUM_5_IDX: ["/sys/bus/i2c/devices/18-004c/hwmon/hwmon*/temp1_input"], - THERMAL_NUM_6_IDX: ["/sys/bus/i2c/devices/18-004e/hwmon/hwmon*/temp1_input"], - THERMAL_NUM_7_IDX: ["/sys/bus/i2c/devices/18-004f/hwmon/hwmon*/temp1_input"], - THERMAL_NUM_8_IDX: ["/sys/class/hwmon/hwmon0/temp1_input"], + THERMAL_NUM_3_IDX: ["/sys/bus/i2c/devices/18-004a/hwmon/hwmon*/temp1_input"], + THERMAL_NUM_4_IDX: ["/sys/bus/i2c/devices/18-004c/hwmon/hwmon*/temp1_input"], + THERMAL_NUM_5_IDX: ["/sys/bus/i2c/devices/18-004e/hwmon/hwmon*/temp1_input"], + THERMAL_NUM_6_IDX: ["/sys/bus/i2c/devices/18-004f/hwmon/hwmon*/temp1_input"], + THERMAL_NUM_7_IDX: ["/sys/class/hwmon/hwmon0/temp1_input"], + THERMAL_NUM_8_IDX: ["/sys/bus/i2c/devices/18-004b/hwmon/hwmon*/temp1_input"], } #def __init__(self): @@ -75,7 +64,7 @@ class ThermalUtil(object): logging.debug('GET. Parameter error. thermal_num, %d', thermal_num) return None - device_path = self.get_thermal_to_device_path(thermal_num) + device_path = self.get_thermal_path(thermal_num) for filename in glob.glob(device_path): try: val_file = open(filename, 'r') @@ -97,39 +86,17 @@ class ThermalUtil(object): return 0 def get_num_thermals(self): - return self.THERMAL_NUM_MAX - - def get_idx_thermal_start(self): - return self.THERMAL_NUM_1_IDX - - def get_size_node_map(self): - return len(self._thermal_to_device_node_mapping) + return self.THERMAL_NUM_MAX def get_size_path_map(self): return len(self.thermal_sysfspath) - def get_thermal_to_device_path(self, thermal_num): + def get_thermal_path(self, thermal_num): return self.thermal_sysfspath[thermal_num][0] - - def get_thermal_temp(self): - return (self._get_thermal_node_val(self.THERMAL_NUM_1_IDX) + self._get_thermal_node_val(self.THERMAL_NUM_2_IDX) +self._get_thermal_node_val(self.THERMAL_NUM_3_IDX)) + def main(): - thermal = ThermalUtil() - print "termal1=%d" %thermal._get_thermal_val(1) - print "termal2=%d" %thermal._get_thermal_val(2) - print "termal3=%d" %thermal._get_thermal_val(3) - print "termal4=%d" %thermal._get_thermal_val(4) - print "termal5=%d" %thermal._get_thermal_val(5) - print "termal7=%d" %thermal._get_thermal_val(6) - print "termal8=%d" %thermal._get_thermal_val(7) - print "termal9=%d" %thermal._get_thermal_val(8) - -# -# print 'get_size_node_map : %d' % thermal.get_size_node_map() -# print 'get_size_path_map : %d' % thermal.get_size_path_map() -# for x in range(thermal.get_idx_thermal_start(), thermal.get_num_thermals()+1): -# print thermal.get_thermal_to_device_path(x) -# + thermal = ThermalUtil() + if __name__ == '__main__': main() \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/utils/accton_as9716_32d_monitor.py b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/utils/accton_as9716_32d_monitor.py index f80c1223a8..3752161d3e 100755 --- a/platform/broadcom/sonic-platform-modules-accton/as9716-32d/utils/accton_as9716_32d_monitor.py +++ b/platform/broadcom/sonic-platform-modules-accton/as9716-32d/utils/accton_as9716_32d_monitor.py @@ -1,28 +1,27 @@ #!/usr/bin/env python +# -*- coding: utf-8 -* +# Copyright (c) 2019 Edgecore Networks Corporation # -# Copyright (C) 2017 Accton Technology Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 # -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT +# LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS +# FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# ------------------------------------------------------------------ +# See the Apache Version 2.0 License for specific language governing +# permissions and limitations under the License. +# # HISTORY: # mm/dd/yyyy (A.D.)# -# 12/19/2018:Jostar create for as9716_32d thermal plan +# 8/27/2019:Jostar create for as9716_32d thermal plan # ------------------------------------------------------------------ try: import os + import commands import sys, getopt import subprocess import click @@ -41,31 +40,11 @@ except ImportError as e: # Deafults VERSION = '1.0' -FUNCTION_NAME = '/usr/local/bin/accton_as9716_32x_monitor' +FUNCTION_NAME = '/usr/local/bin/accton_as9716_32d_monitor' global log_file global log_level - -# Air Flow Front to Back : -# (Thermal sensor_LM75_4A + Thermal sensor_LM75_CPU) /2 <=38C : Keep 37.5%(0x04) Fan speed -# (Thermal sensor_LM75_4A + Thermal sensor_LM75_CPU) /2 > 38C : Change Fan speed from 37.5%(0x04) to 62.5%(0x08) -# (Thermal sensor_LM75_4A + Thermal sensor_LM75_CPU) /2 > 46C : Change Fan speed from 62.5%(0x08) to 100%(0x0E) -# (Thermal sensor_LM75_4A + Thermal sensor_LM75_CPU) /2 > 58C : Send alarm message -# (Thermal sensor_LM75_4A + Thermal sensor_LM75_CPU) /2 > 66C : Shut down system -# One Fan fail : Change Fan speed to 100%(0x0E) - - -# Air Flow Back to Front : -# (Thermal sensor_LM75_4A + Thermal sensor_LM75_CPU) /2 <=34C : Keep 37.5%(0x04) Fan speed -# (Thermal sensor_LM75_4A + Thermal sensor_LM75_CPU) /2 > 34C : Change Fan speed from 37.5%(0x04) to 62.5%(0x08) -# (Thermal sensor_LM75_4A + Thermal sensor_LM75_CPU) /2 > 44C : Change Fan speed from 62.5%(0x08) to 100%(0x0E) -# (Thermal sensor_LM75_4A + Thermal sensor_LM75_CPU) /2 > 59C : Send alarm message -# (Thermal sensor_LM75_4A + Thermal sensor_LM75_CPU) /2 > 67C : Shut down system -# One Fan fail: Change Fan speed to 100%(0x0E) -# sensor_LM75_CPU == sensor_LM75_4B - - class switch(object): def __init__(self, value): self.value = value @@ -87,20 +66,217 @@ class switch(object): return False -fan_policy_state=1 + +# Read fanN_direction=1: The air flow of Fan6 is “AFI-Back to Front” +# 0: The air flow of Fan6 is “AFO-Front to back” +# +# Thermal policy: +# a.Defaut fan duty_cycle=100% +# b.One fan fail, set to fan duty_cycle=100% +# 1.For AFI: +# Default fan duty_cycle will be 100%(fan_policy_state=LEVEL_FAN_MAX). +# If all below case meet with, set to 75%(LEVEL_FAN_MID). +# MB board +# LM75-1(0X48)<=57 +# LM75-2(0X49)<=47.3 +# LM75-3(0X4A)<=45 +# LM75-4(0X4C)<=45.1 +# LM75-5(0X4E)<=40.75 +# LM75-6(0X4F)<=42.1 +# CPU board +# Core<=44 +# LM75-1(0X4B)<=35 + +# When fan_policy_state=LEVEL_FAN_MID, meet with below case, Fan duty_cycle will be 100%(LEVEL_FAN_DAX) +# (MB board) +# LM75-1(0X48)>=61.5 +# LM75-2(0X49)>=51.5 +# LM75-3(0X4A)>=49.4 +# LM75-4(0X4C)>=49.4 +# LM75-5(0X4E)>=45.1 +# LM75-6(0X4F)>=46.75 +# (CPU board) +# Core>=48 +# LM75-1(0X4B)>=38.5 + +# 2. For AFO: +# At default, FAN duty_cycle was 100%(LEVEL_FAN_MAX). If all below case meet with, set to 75%(LEVEL_FAN_MID). +# (MB board) +# LM75-1(0X48)<=59 +# LM75-2(0X49)<=53.5 +# LM75-3(0X4A)<=55.3 +# LM75-4(0X4C)<=50.3 +# LM75-5(0X4E)<=50 +# LM75-6(0X4F)<=52.5 +# (CPU board) +# Core<=59 +# LM75-1(0X4B)<=41.1 + +# When FAN duty_cycle was 75%(LEVEL_FAN_MID). If all below case meet with, set to 50%(LEVEL_FAN_DEF). +# (MB board) +# LM75-1(0X48)<=55.8 +# LM75-2(0X49)<=50.5 +# LM75-3(0X4A)<=51.1 +# LM75-4(0X4C)<=47.6 +# LM75-5(0X4E)<=45.75 +# LM75-6(0X4F)<=50.1 +# (CPU board) +# Core<=57 +# LM75-1(0X4B)<=36.6 + +# When fan_speed 50%(LEVEL_FAN_DEF). +# Meet with below case, Fan duty_cycle will be 75%(LEVEL_FAN_MID) +# (MB board) +# LM75-1(0X48)>=70 +# LM75-2(0X49)>=66 +# LM75-3(0X4A)>=68 +# LM75-4(0X4C)>=62 +# LM75-5(0X4E)>=62 +# LM75-6(0X4F)>=67 +# (CPU board) +# Core>=77 +# LM75-1(0X4B)>=50 + +# When FAN duty_cycle was 75%(LEVEL_FAN_MID). If all below case meet with, set to 100%(LEVEL_FAN_MAX). +# (MB board) +# LM75-1(0X48)>=67 +# LM75-2(0X49)>=62.5 +# LM75-3(0X4A)>=65 +# LM75-4(0X4C)>=59 +# LM75-5(0X4E)>=58.5 +# LM75-6(0X4F)>=63 + +# (CPU board) +# Core >=69 +# LM75-1(0X4B)>=49 + + +#Yellow Alarm +#MB board +#LM75-1(0X48)>=68 +#LM75-2(0X49)>=64 +#LM75-3(0X4A)>=65 +#LM75-4(0X4C)>=61 +#LM75-5(0X4E)>=60 +#LM75-6(0X4F)>=64 +#CPU Board +#Core>=70 +#LM75-1(0X4B)>=68 + +#Red Alarm +#MB board +#LM75-1(0X48)>=72 +#LM75-2(0X49)>=68 +#LM75-3(0X4A)>=69 +#LM75-4(0X4C)>=65 +#LM75-5(0X4E)>=64 +#LM75-6(0X4F)>=68 +#CPU Board +#Core>=74 +#LM75-1(0X4B)>=72 + +#Shut down +#MB board +#LM75-1(0X48)>=77 +#LM75-2(0X49)>=73 +#LM75-3(0X4A)>=74 +#LM75-4(0X4C)>=70 +#LM75-5(0X4E)>=69 +#LM75-6(0X4F)>=73 +#CPU Board +#Core>=79 +#LM75-1(0X4B)>=77 + + + +def power_off_dut(): + cmd_str="i2cset -y -f 19 0x60 0x60 0x10" + status, output = commands.getstatusoutput(cmd_str) + return status + +#If only one PSU insert(or one of PSU pwoer fail), and watt >800w. Must let DUT fan pwm >= 75% in AFO. +#Because the psu temp is high. +# Return 1: full load +# Return 0: Not full load +def check_psu_loading(): + psu_power_status=[1, 1] + + psu_power_good = { + 2: "/sys/bus/i2c/devices/10-0051/psu_power_good", + 1: "/sys/bus/i2c/devices/9-0050/psu_power_good", + } + psu_power_in = { + 2: "/sys/bus/i2c/devices/10-0059/psu_p_in", + 1: "/sys/bus/i2c/devices/9-0058/psu_p_in", + } + psu_power_out = { + 2: "/sys/bus/i2c/devices/10-0059/psu_p_out", + 1: "/sys/bus/i2c/devices/9-0058/psu_p_out", + } + + check_psu_watt=0 + for i in range(1,3): + node = psu_power_good[i] + try: + with open(node, 'r') as power_status: + status = int(power_status.read()) + except IOError: + return None + + psu_power_status[i-1]=int(status) + if status==0: + check_psu_watt=1 + + if check_psu_watt: + for i in range(1,3): + if psu_power_status[i-1]==1: + #check watt + node = psu_power_in[i] + try: + with open(node, 'r') as power_status: + status = int(power_status.read()) + except IOError: + return None + + psu_p_in= int(status) + if psu_p_in/1000 > 800: + return True + + node = psu_power_out[i] + try: + with open(node, 'r') as power_status: + status = int(power_status.read()) + except IOError: + return None + psu_p_out= int(status) + if psu_p_out/1000 > 800: + return True + else: + return False + + + return False + +fan_policy_state=0 +fan_policy_alarm=0 +send_yellow_alarm=0 +send_red_alarm=0 fan_fail=0 -alarm_state = 0 #0->default or clear, 1-->alarm detect +count_check=0 + test_temp = 0 -test_temp_list = [0, 0, 0, 0, 0, 0] +test_temp_list = [0, 0, 0, 0, 0, 0, 0, 0] temp_test_data=0 +test_temp_revert=0 + # Make a class we can use to capture stdout and sterr in the log class device_monitor(object): # static temp var temp = 0 - new_pwm = 0 - pwm=0 - ori_pwm = 0 - default_pwm=0x4 + new_duty_cycle = 0 + duty_cycle=0 + ori_duty_cycle = 0 + def __init__(self, log_file, log_level): """Needs a logger and a logger level.""" @@ -123,179 +299,197 @@ class device_monitor(object): sys_handler = handler = logging.handlers.SysLogHandler(address = '/dev/log') sys_handler.setLevel(logging.WARNING) logging.getLogger('').addHandler(sys_handler) - #logging.debug('SET. logfile:%s / loglevel:%d', log_file, log_level) - def get_state_from_fan_policy(self, temp, policy): - state=0 - - logging.debug('temp=%d', temp) - for i in range(0, len(policy)): - #logging.debug('policy[%d][0]=%d, policy[%d][1]=%d, policy[%d][2]=%d', i,policy[i][0],i, policy[i][1], i, policy[i][2]) - if temp > policy[i][2]: - if temp <= policy[i][3]: - state =i - logging.debug ('temp=%d >= policy[%d][2]=%d, temp=%d < policy[%d][3]=%d' , temp, i, policy[i][2], temp, i, policy[i][3]) - logging.debug ('fan_state=%d', state) - break - - return state - def manage_fans(self): global fan_policy_state + global fan_policy_alarm + global send_yellow_alarm + global send_red_alarm global fan_fail + global count_check global test_temp - global test_temp_list - global alarm_state + global test_temp_list global temp_test_data - - LEVEL_FAN_DEF=0 - LEVEL_FAN_MID=1 - LEVEL_FAN_MAX=2 - LEVEL_TEMP_HIGH=3 - LEVEL_TEMP_CRITICAL=4 - - - fan_policy_f2b = { - LEVEL_FAN_DEF: [38, 0x4, 0, 38000], - LEVEL_FAN_MID: [63, 0x6, 38000, 46000], - LEVEL_FAN_MAX: [100, 0xE, 46000, 58000], - LEVEL_TEMP_HIGH: [100, 0xE, 58000, 66000], - LEVEL_TEMP_CRITICAL: [100, 0xE, 58000, 200000], + global test_temp_revert + + CHECK_TIMES=3 + + LEVEL_FAN_INIT=0 + LEVEL_FAN_MIN=1 + LEVEL_FAN_MID=2 + LEVEL_FAN_MAX=3 + LEVEL_FAN_DEF=LEVEL_FAN_MAX + LEVEL_FAN_YELLOW_ALARM=4 + LEVEL_FAN_RED_ALARM=5 + LEVEL_FAN_SHUTDOWN=6 + + fan_policy_f2b = { #AFO + LEVEL_FAN_MIN: [50, 0x7], + LEVEL_FAN_MID: [75, 0xb], + LEVEL_FAN_MAX: [100, 0xf] } - fan_policy_b2f = { - LEVEL_FAN_DEF: [38, 0x4, 0, 34000], - LEVEL_FAN_MID: [63, 0x8, 34000, 44000], - LEVEL_FAN_MAX: [100, 0xE, 44000, 59000], - LEVEL_TEMP_HIGH: [100, 0xE, 59000, 67000], - LEVEL_TEMP_CRITICAL: [100, 0xE, 59000, 200000], + fan_policy_b2f = { #AFI + LEVEL_FAN_MID: [75, 0xb], + LEVEL_FAN_MAX: [100, 0xf] } + + afi_thermal_spec={ + "mid_to_max_temp":[61500, 51500, 49400, 49400, 45100, 46750, 48000, 38500], + "max_to_mid_temp":[57000, 47300, 45000, 45100, 40750, 42100, 44000, 35000] + } + afo_thermal_spec={ + "min_to_mid_temp": [70000, 66000, 68000, 62000, 62000, 67000, 77000, 50000], + "mid_to_max_temp": [67000, 62000, 65000, 59000, 58500, 63000, 69000, 49000], + "max_to_mid_temp": [59000, 53500, 55300, 50300, 50000, 52500, 59000, 41100], + "mid_to_min_temp": [55800, 50500, 51100, 47600, 45750, 50100, 57000, 36600], + "max_to_yellow_alarm": [68000, 64000, 65000, 61000, 60000, 64000, 70000, 68000], + "yellow_to_red_alarm": [72000, 68000, 69000, 65000, 64000, 68000, 74000, 72000], + "red_alarm_to_shutdown": [77000, 73000, 74000, 70000, 69000, 73000, 79000, 77000] + } + + thermal_val=[0,0,0,0,0,0,0,0] + max_to_mid=0 + mid_to_min=0 - fan_policy = fan_policy_f2b + fan = FanUtil() + if fan_policy_state==LEVEL_FAN_INIT: + fan_policy_state=LEVEL_FAN_MAX #This is default state + logging.debug("fan_policy_state=LEVEL_FAN_MAX") + return + + count_check=count_check+1 + if count_check < CHECK_TIMES: + return + else: + count_check=0 thermal = ThermalUtil() - fan = FanUtil() - fan_dir=fan.get_fan_dir(1) - if fan_dir == 1: - fan_dri=1 #something wrong, set fan_dir to default val + fan_dir=1 + fan_dir=fan.get_fan_dir(1) + + if fan_dir==1: # AFI + fan_thermal_spec = afi_thermal_spec + fan_policy=fan_policy_b2f + elif fan_dir==0: # AFO + fan_thermal_spec = afo_thermal_spec + fan_policy=fan_policy_f2b else: - fan_policy = fan_policy_b2f + logging.debug( "NULL case") - ori_pwm=fan.get_fan_duty_cycle() - new_pwm=0 - logging.debug('fan_dir=%d, ori_pwm=%d', fan_dir, ori_pwm) - logging.debug('test_temp=%d', test_temp) - if test_temp==0: - temp1 = thermal._get_thermal_val(1) - temp2 = thermal._get_thermal_val(2) - temp3 = thermal._get_thermal_val(3) - temp4 = thermal._get_thermal_val(4) - temp5 = thermal._get_thermal_val(5) + ori_duty_cycle=fan.get_fan_duty_cycle() + new_duty_cycle=0 + + if test_temp_revert==0: + temp_test_data=temp_test_data+2000 + else: + temp_test_data=temp_test_data-2000 + + if test_temp==0: + for i in range (thermal.THERMAL_NUM_1_IDX, thermal.THERMAL_NUM_MAX+1): + thermal_val[i-1]=thermal._get_thermal_val(i) else: - temp1 = test_temp_list[0] - temp2 = test_temp_list[1] - temp3 = test_temp_list[2] - temp4 = test_temp_list[3] - temp5 = test_temp_list[4] + for i in range (thermal.THERMAL_NUM_1_IDX, thermal.THERMAL_NUM_MAX+1): + thermal_val[i-1]=test_temp_list[i-1] + thermal_val[i-1]= thermal_val[i-1] + temp_test_data + fan_fail=0 - if temp3==0: - temp_get=50000 # if one detect sensor is fail or zero, assign temp=50000, let fan to 75% - logging.debug('lm75_49 detect fail, so set temp_get=50000, let fan to 75%') - elif temp4==0: - temp_get=50000 # if one detect sensor is fail or zero, assign temp=50000, let fan to 75% - logging.debug('lm75_4b detect fail, so set temp_get=50000, let fan to 75%') - else: - temp_get= (temp3 + temp4)/2 # Use (sensor_LM75_4a + sensor_LM75_4b) /2 - ori_state=fan_policy_state + ori_state=fan_policy_state; + current_state=fan_policy_state; + + if fan_dir==1: #AFI + for i in range (0, thermal.THERMAL_NUM_MAX): + if ori_state==LEVEL_FAN_MID: + if thermal_val[i] >= fan_thermal_spec["mid_to_max_temp"][i]: + current_state=LEVEL_FAN_MAX + logging.debug("current_state=LEVEL_FAN_MAX") + break + else: + if (thermal_val[i] <= fan_thermal_spec["max_to_mid_temp"][i]): + max_to_mid=max_to_mid+1 - #temp_test_data=temp_test_data+1000 - #temp_get = temp_get + temp_test_data - #print "Unit test:temp_get=%d"%temp_get - - fan_policy_state=self.get_state_from_fan_policy(temp_get, fan_policy) - #print "temp3=%d"%temp3 - #print "temp4=%d"%temp4 - #print "temp_get=%d"%temp_get + if max_to_mid==thermal.THERMAL_NUM_MAX and fan_policy_state==LEVEL_FAN_MAX: + current_state=LEVEL_FAN_MID + logging.debug("current_state=LEVEL_FAN_MID") + else: #AFO + psu_full_load=check_psu_loading() + for i in range (0, thermal.THERMAL_NUM_MAX): + if ori_state==LEVEL_FAN_MID: + if thermal_val[i] >= fan_thermal_spec["mid_to_max_temp"][i]: + current_state=LEVEL_FAN_MAX + break + else: + if psu_full_load!=True and thermal_val[i] <= fan_thermal_spec["mid_to_min_temp"][i]: + mid_to_min=mid_to_min+1 + elif ori_state==LEVEL_FAN_MIN: + if psu_full_load==True: + current_state=LEVEL_FAN_MID + logging.debug("psu_full_load, set current_state=LEVEL_FAN_MID") + if thermal_val[i] >= fan_thermal_spec["min_to_mid_temp"][i]: + current_state=LEVEL_FAN_MID + + else: + if thermal_val[i] <= fan_thermal_spec["max_to_mid_temp"][i] : + max_to_mid=max_to_mid+1 + if fan_policy_alarm==0: + if thermal_val[i] >= fan_thermal_spec["max_to_yellow_alarm"][i]: + if send_yellow_alarm==0: + logging.warning('Alarm-Yellow for temperature high is detected') + fan_policy_alarm=LEVEL_FAN_YELLOW_ALARM + send_yellow_alarm=1 + elif fan_policy_alarm==LEVEL_FAN_YELLOW_ALARM: + if thermal_val[i] >= fan_thermal_spec["yellow_to_red_alarm"][i]: + if send_red_alarm==0: + logging.warning('Alarm-Red for temperature high is detected') + fan_policy_alarm=LEVEL_FAN_RED_ALARM + send_red_alarm=1 + elif fan_policy_alarm==LEVEL_FAN_RED_ALARM: + if thermal_val[i] >= fan_thermal_spec["red_alarm_to_shutdown"][i]: + logging.critical('Alarm-Critical for temperature high is detected, shutdown DUT') + fan_policy_alarm=LEVEL_FAN_SHUTDOWN + time.sleep(2) + power_off_dut() - logging.debug('lm75_48=%d, lm75_49=%d, lm75_4a=%d, lm_4b=%d, lm_4b=%d', temp1,temp2,temp3,temp4,temp5) - logging.debug('ori_state=%d, fan_policy_state=%d', ori_state, fan_policy_state) - new_pwm = fan_policy[fan_policy_state][0] - if fan_fail==0: - logging.debug('new_fan_cycle=%d', new_pwm) - - if fan_fail==0: - if new_pwm!=ori_pwm: - fan.set_fan_duty_cycle(new_pwm) - logging.info('Set fan speed from %d to %d', ori_pwm, new_pwm) - + if max_to_mid==thermal.THERMAL_NUM_MAX and ori_state==LEVEL_FAN_MAX: + current_state=LEVEL_FAN_MID + if fan_policy_alarm!=0: + logging.warning('Alarm for temperature high is cleared') + fan_policy_alarm=0 + send_yellow_alarm=0 + send_red_alarm=0 + test_temp_revert=0 + logging.debug("current_state=LEVEL_FAN_MID") + + if mid_to_min==thermal.THERMAL_NUM_MAX and ori_state==LEVEL_FAN_MID: + if psu_full_load==0: + current_state=LEVEL_FAN_MIN + logging.debug("current_state=LEVEL_FAN_MIN") + #Check Fan status for i in range (fan.FAN_NUM_1_IDX, fan.FAN_NUM_ON_MAIN_BROAD+1): if fan.get_fan_status(i)==0: - new_pwm=100 - logging.debug('fan_%d fail, set pwm to 100',i) + new_duty_cycle=100 + logging.debug('fan_%d fail, set duty_cycle to 100',i) if test_temp==0: fan_fail=1 - fan.set_fan_duty_cycle(new_pwm) + fan.set_fan_duty_cycle(new_duty_cycle) break else: fan_fail=0 - - #if fan_policy_state == ori_state: - # return True - #else: - new_state = fan_policy_state - - #logging.warning('Temperature high alarm testing') - if ori_state==LEVEL_FAN_DEF: - if new_state==LEVEL_TEMP_HIGH: - if alarm_state==0: - logging.warning('Alarm for temperature high is detected') - alarm_state=1 - if new_state==LEVEL_TEMP_CRITICAL: - logging.critical('Alarm for temperature critical is detected, reboot DUT') - time.sleep(2) - os.system('reboot') - if ori_state==LEVEL_FAN_MID: - if new_state==LEVEL_TEMP_HIGH: - if alarm_state==0: - logging.warning('Alarm for temperature high is detected') - alarm_state=1 - if new_state==LEVEL_TEMP_CRITICAL: - logging.critical('Alarm for temperature critical is detected') - time.sleep(2) - os.system('reboot') - if ori_state==LEVEL_FAN_MAX: - if new_state==LEVEL_TEMP_HIGH: - if alarm_state==0: - logging.warning('Alarm for temperature high is detected') - alarm_state=1 - if new_state==LEVEL_TEMP_CRITICAL: - logging.critical('Alarm for temperature critical is detected') - time.sleep(2) - os.system('reboot') - if alarm_state==1: - if temp_get < (fan_policy[3][0] - 5000): #below 65 C, clear alarm - logging.warning('Alarm for temperature high is cleared') - alarm_state=0 - if ori_state==LEVEL_TEMP_HIGH: - if new_state==LEVEL_TEMP_CRITICAL: - logging.critical('Alarm for temperature critical is detected') - time.sleep(2) - os.system('reboot') - if new_state <= LEVEL_FAN_MID: - logging.warning('Alarm for temperature high is cleared') - alarm_state=0 - if new_state <= LEVEL_FAN_MAX: - if temp_get < (fan_policy[3][0] - 5000): #below 65 C, clear alarm - logging.warning('Alarm for temperature high is cleared') - alarm_state=0 - if ori_state==LEVEL_TEMP_CRITICAL: - if new_state <= LEVEL_FAN_MAX: - logging.warning('Alarm for temperature critical is cleared') - + + if current_state!=ori_state: + fan_policy_state=current_state + new_duty_cycle=fan_policy[current_state][0] + logging.debug("fan_policy_state=%d, new_duty_cycle=%d", fan_policy_state, new_duty_cycle) + if new_duty_cycle!=ori_duty_cycle and fan_fail==0: + fan.set_fan_duty_cycle(new_duty_cycle) + return True + if new_duty_cycle==0 and fan_fail==0: + fan.set_fan_duty_cycle(FAN_DUTY_CYCLE_MAX) + return True def main(argv): @@ -318,26 +512,25 @@ def main(argv): log_file = arg if sys.argv[1]== '-t': - if len(sys.argv)!=7: - print "temp test, need input six temp" + if len(sys.argv)!=10: + print "temp test, need input 8 temp" return 0 - i=0 - for x in range(2, 7): + for x in range(2, 10): test_temp_list[i]= int(sys.argv[x])*1000 i=i+1 - test_temp = 1 + test_temp = 1 log_level = logging.DEBUG - print test_temp_list + print test_temp_list fan = FanUtil() - fan.set_fan_duty_cycle(38) - print "set default fan speed to 37.5%" + fan.set_fan_duty_cycle(100) monitor = device_monitor(log_file, log_level) # Loop forever, doing something useful hopefully: while True: - #monitor.manage_fans() - time.sleep(5) + monitor.manage_fans() + time.sleep(10) + if __name__ == '__main__': main(sys.argv[1:]) From a27f12773bde25511497de91eeef8a1f5578427e Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Mon, 9 Sep 2019 14:18:23 -0700 Subject: [PATCH 38/43] [baseimage]: Log message containing SONiC version to syslog at boot (#3416) --- files/image_config/platform/rc.local | 2 ++ 1 file changed, 2 insertions(+) diff --git a/files/image_config/platform/rc.local b/files/image_config/platform/rc.local index 76fe390be3..1df03718da 100755 --- a/files/image_config/platform/rc.local +++ b/files/image_config/platform/rc.local @@ -121,6 +121,8 @@ program_console_speed() #### Begin Main Body #### +logger "SONiC version ${SONIC_VERSION} starting up..." + # If the machine.conf is absent, it indicates that the unit booted # into SONiC from another NOS. Extract the machine.conf from ONIE. if [ ! -e /host/machine.conf ]; then From a1158c6c18fde048b01ce6d26b32681a9a7ebe36 Mon Sep 17 00:00:00 2001 From: lguohan Date: Mon, 9 Sep 2019 14:44:46 -0700 Subject: [PATCH 39/43] Revert "Use dot1p to tc mapping for backend switches (#3412)" (#3421) This reverts commit ca43dad12f6719d87d65e66562162ff98338d06c. --- files/build_templates/qos_config.j2 | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/files/build_templates/qos_config.j2 b/files/build_templates/qos_config.j2 index 054f0db8a1..a666367873 100644 --- a/files/build_templates/qos_config.j2 +++ b/files/build_templates/qos_config.j2 @@ -29,7 +29,6 @@ {%- set pfc_to_pg_map_supported_asics = ['mellanox', 'barefoot', 'marvell'] -%} -{%- set backend_device_types = ['BackEndToRRouter', 'BackEndLeafRouter'] -%} { @@ -73,20 +72,6 @@ "7": "7" } }, -{% if DEVICE_METADATA['localhost']['type'] in backend_device_types %} - "DOT1P_TO_TC_MAP": { - "AZURE": { - "0": "0", - "1": "1", - "2": "2", - "3": "3", - "4": "4", - "5": "5", - "6": "6", - "7": "7" - } - }, -{% else %} "DSCP_TO_TC_MAP": { "AZURE": { "0" : "1", @@ -155,7 +140,6 @@ "63": "1" } }, -{% endif %} "SCHEDULER": { "scheduler.0": { "type" : "DWRR", @@ -176,11 +160,7 @@ {% endif %} "PORT_QOS_MAP": { "{{ port_names_active }}": { -{% if DEVICE_METADATA['localhost']['type'] in backend_device_types %} - "dot1p_to_tc_map" : "[DOT1P_TO_TC_MAP|AZURE]", -{% else %} "dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]", -{% endif %} "tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]", "tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]", "pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]", From aa76ef350b50d52dbd4cedf00ab54f53cec6c08e Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Tue, 10 Sep 2019 11:15:13 -0700 Subject: [PATCH 40/43] [sonic-utilities] Update submodule (#3425) --- src/sonic-utilities | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-utilities b/src/sonic-utilities index 4024019594..a6a44e8240 160000 --- a/src/sonic-utilities +++ b/src/sonic-utilities @@ -1 +1 @@ -Subproject commit 4024019594bc9174374ed3a3b594d8a43299dd07 +Subproject commit a6a44e82402bdcc48423ac93e137673e59e50c78 From 2095d6ec03a6ac6519a970230af1eeacd47a5c9d Mon Sep 17 00:00:00 2001 From: zzhiyuan Date: Tue, 10 Sep 2019 14:37:05 -0700 Subject: [PATCH 41/43] [devices]: Update arista submodule (#3431) - Add support for fans in new platform API - Mount platform API in pmon for arista platforms --- platform/barefoot/sonic-platform-modules-arista | 2 +- platform/broadcom/sonic-platform-modules-arista | 2 +- rules/docker-platform-monitor.mk | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/platform/barefoot/sonic-platform-modules-arista b/platform/barefoot/sonic-platform-modules-arista index 7b39cf3400..73dd2e0fe1 160000 --- a/platform/barefoot/sonic-platform-modules-arista +++ b/platform/barefoot/sonic-platform-modules-arista @@ -1 +1 @@ -Subproject commit 7b39cf3400dd728494b91810db9cc82542a22584 +Subproject commit 73dd2e0fe144e2bb6778d39d3e051c597bb1c9d8 diff --git a/platform/broadcom/sonic-platform-modules-arista b/platform/broadcom/sonic-platform-modules-arista index 7b39cf3400..73dd2e0fe1 160000 --- a/platform/broadcom/sonic-platform-modules-arista +++ b/platform/broadcom/sonic-platform-modules-arista @@ -1 +1 @@ -Subproject commit 7b39cf3400dd728494b91810db9cc82542a22584 +Subproject commit 73dd2e0fe144e2bb6778d39d3e051c597bb1c9d8 diff --git a/rules/docker-platform-monitor.mk b/rules/docker-platform-monitor.mk index 8a4c9391f8..617cf39e8b 100644 --- a/rules/docker-platform-monitor.mk +++ b/rules/docker-platform-monitor.mk @@ -38,6 +38,7 @@ $(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro # Mount Arista python library on Aboot images to be used by plugins $(DOCKER_PLATFORM_MONITOR)_aboot_RUN_OPT += -v /usr/lib/python2.7/dist-packages/arista:/usr/lib/python2.7/dist-packages/arista:ro +$(DOCKER_PLATFORM_MONITOR)_aboot_RUN_OPT += -v /usr/lib/python2.7/dist-packages/arista/utils/sonic_platform:/usr/lib/python2.7/dist-packages/sonic_platform:ro $(DOCKER_PLATFORM_MONITOR)_BASE_IMAGE_FILES += sensors:/usr/bin/sensors $(DOCKER_PLATFORM_MONITOR)_BASE_IMAGE_FILES += smartctl:/usr/sbin/smartctl From db90d4cafa3a76ac1d110dd85572c9cccebd5b55 Mon Sep 17 00:00:00 2001 From: pavel-shirshov Date: Tue, 10 Sep 2019 22:00:15 -0700 Subject: [PATCH 42/43] [sonic-slave]: Updated version of ctypesgen.py has a different name (#3434) * Fix the build. Updated version of ctypesgen.py has a different name --- sonic-slave-stretch/Dockerfile.j2 | 2 +- sonic-slave/Dockerfile.j2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sonic-slave-stretch/Dockerfile.j2 b/sonic-slave-stretch/Dockerfile.j2 index e614cb070d..e468cdf354 100644 --- a/sonic-slave-stretch/Dockerfile.j2 +++ b/sonic-slave-stretch/Dockerfile.j2 @@ -312,7 +312,7 @@ RUN export VERSION=1.11.5 \ # For p4 build RUN pip install \ - ctypesgen \ + ctypesgen==0.r125 \ crc16 # For sonic config engine testing diff --git a/sonic-slave/Dockerfile.j2 b/sonic-slave/Dockerfile.j2 index 91ed039a2d..42d4aa98f6 100644 --- a/sonic-slave/Dockerfile.j2 +++ b/sonic-slave/Dockerfile.j2 @@ -295,7 +295,7 @@ RUN python2 -m pip install -U pip==9.0.3 # For p4 build RUN pip install \ - ctypesgen \ + ctypesgen==0.r125 \ crc16 # For sonic config engine testing From 9179990ba194066e8820d3923964d81d649b0379 Mon Sep 17 00:00:00 2001 From: Roy Lee Date: Wed, 11 Sep 2019 13:07:13 +0800 Subject: [PATCH 43/43] [device][accton] Add as5812-54t. (#3428) * Verified as5812_54t platfrom, except SDK and monitor. Signed-off-by: roy_lee * Add as5812-54t to build its debian package. Signed-off-by: roy_lee * Use the right cpld read/write api. Signed-off-by: roy_lee * Update device paths. Signed-off-by: roy_lee * update psu driver, correct python lib location. Signed-off-by: roy_lee * Give a default return value. Signed-off-by: roy_lee --- .../Accton-AS5812-54T/port_config.ini | 73 ++ .../Accton-AS5812-54T/sai.profile | 1 + .../td2-as5812-72x10G.config.bcm | 148 ++++ .../x86_64-accton_as5812_54t-r0/default_sku | 1 + .../installer.conf | 3 + .../led_proc_init.soc | 162 +++++ .../plugins/eeprom.py | 24 + .../plugins/psuutil.py | 65 ++ .../plugins/sfputil.py | 290 ++++++++ .../pmon_daemon_control.json | 4 + platform/broadcom/one-image.mk | 1 + platform/broadcom/platform-modules-accton.mk | 6 + .../as5812-54t/classes/__init__.py | 0 .../as5812-54t/classes/fanutil.py | 243 +++++++ .../as5812-54t/classes/thermalutil.py | 125 ++++ .../as5812-54t/modules/Makefile | 6 +- .../as5812-54t/modules/accton_i2c_cpld.c | 330 --------- .../as5812-54t/modules/cpr_4011_4mxx.c | 1 + .../modules/x86-64-accton-as5812-54t-cpld.c | 544 ++++++++++++++ .../modules/x86-64-accton-as5812-54t-fan.c | 74 +- .../modules/x86-64-accton-as5812-54t-psu.c | 25 +- .../modules/x86-64-accton-as5812-54t-sfp.c | 318 -------- .../as5812-54t/modules/ym2651y.c | 681 +----------------- .../service/as5812-platform-init.service | 14 +- .../as5812-54t/setup.py | 16 + .../as5812-54t/utils/accton_as5812_monitor.py | 213 ++++++ ...5812_54t_util.py => accton_as5812_util.py} | 23 +- .../debian/control | 4 + .../debian/rules | 2 +- 29 files changed, 1999 insertions(+), 1398 deletions(-) create mode 100755 device/accton/x86_64-accton_as5812_54t-r0/Accton-AS5812-54T/port_config.ini create mode 100755 device/accton/x86_64-accton_as5812_54t-r0/Accton-AS5812-54T/sai.profile create mode 100644 device/accton/x86_64-accton_as5812_54t-r0/Accton-AS5812-54T/td2-as5812-72x10G.config.bcm create mode 100644 device/accton/x86_64-accton_as5812_54t-r0/default_sku create mode 100644 device/accton/x86_64-accton_as5812_54t-r0/installer.conf create mode 100644 device/accton/x86_64-accton_as5812_54t-r0/led_proc_init.soc create mode 100644 device/accton/x86_64-accton_as5812_54t-r0/plugins/eeprom.py create mode 100755 device/accton/x86_64-accton_as5812_54t-r0/plugins/psuutil.py create mode 100755 device/accton/x86_64-accton_as5812_54t-r0/plugins/sfputil.py create mode 100644 device/accton/x86_64-accton_as5812_54t-r0/pmon_daemon_control.json create mode 100755 platform/broadcom/sonic-platform-modules-accton/as5812-54t/classes/__init__.py create mode 100755 platform/broadcom/sonic-platform-modules-accton/as5812-54t/classes/fanutil.py create mode 100755 platform/broadcom/sonic-platform-modules-accton/as5812-54t/classes/thermalutil.py mode change 100644 => 100755 platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/Makefile delete mode 100644 platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/accton_i2c_cpld.c create mode 120000 platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/cpr_4011_4mxx.c create mode 100755 platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-cpld.c delete mode 100644 platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-sfp.c mode change 100644 => 120000 platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/ym2651y.c create mode 100755 platform/broadcom/sonic-platform-modules-accton/as5812-54t/setup.py create mode 100755 platform/broadcom/sonic-platform-modules-accton/as5812-54t/utils/accton_as5812_monitor.py rename platform/broadcom/sonic-platform-modules-accton/as5812-54t/utils/{accton_as5812_54t_util.py => accton_as5812_util.py} (97%) diff --git a/device/accton/x86_64-accton_as5812_54t-r0/Accton-AS5812-54T/port_config.ini b/device/accton/x86_64-accton_as5812_54t-r0/Accton-AS5812-54T/port_config.ini new file mode 100755 index 0000000000..ee60c52622 --- /dev/null +++ b/device/accton/x86_64-accton_as5812_54t-r0/Accton-AS5812-54T/port_config.ini @@ -0,0 +1,73 @@ +# name lanes alias index speed +Ethernet0 13 tenGigE0 1 10000 +Ethernet1 14 tenGigE1 2 10000 +Ethernet2 15 tenGigE2 3 10000 +Ethernet3 16 tenGigE3 4 10000 +Ethernet4 21 tenGigE4 5 10000 +Ethernet5 22 tenGigE5 6 10000 +Ethernet6 23 tenGigE6 7 10000 +Ethernet7 24 tenGigE7 8 10000 +Ethernet8 25 tenGigE8 9 10000 +Ethernet9 26 tenGigE9 10 10000 +Ethernet10 27 tenGigE10 11 10000 +Ethernet11 28 tenGigE11 12 10000 +Ethernet12 29 tenGigE12 13 10000 +Ethernet13 30 tenGigE13 14 10000 +Ethernet14 31 tenGigE14 15 10000 +Ethernet15 32 tenGigE15 16 10000 +Ethernet16 45 tenGigE16 17 10000 +Ethernet17 46 tenGigE17 18 10000 +Ethernet18 47 tenGigE18 19 10000 +Ethernet19 48 tenGigE19 20 10000 +Ethernet20 49 tenGigE20 21 10000 +Ethernet21 50 tenGigE21 22 10000 +Ethernet22 51 tenGigE22 23 10000 +Ethernet23 52 tenGigE23 24 10000 +Ethernet24 53 tenGigE24 25 10000 +Ethernet25 54 tenGigE25 26 10000 +Ethernet26 55 tenGigE26 27 10000 +Ethernet27 56 tenGigE27 28 10000 +Ethernet28 57 tenGigE28 29 10000 +Ethernet29 58 tenGigE29 30 10000 +Ethernet30 59 tenGigE30 31 10000 +Ethernet31 60 tenGigE31 32 10000 +Ethernet32 61 tenGigE32 33 10000 +Ethernet33 62 tenGigE33 34 10000 +Ethernet34 63 tenGigE34 35 10000 +Ethernet35 64 tenGigE35 36 10000 +Ethernet36 65 tenGigE36 37 10000 +Ethernet37 66 tenGigE37 38 10000 +Ethernet38 67 tenGigE38 39 10000 +Ethernet39 68 tenGigE39 40 10000 +Ethernet40 69 tenGigE40 41 10000 +Ethernet41 70 tenGigE41 42 10000 +Ethernet42 71 tenGigE42 43 10000 +Ethernet43 72 tenGigE43 44 10000 +Ethernet44 73 tenGigE44 45 10000 +Ethernet45 74 tenGigE45 46 10000 +Ethernet46 75 tenGigE46 47 10000 +Ethernet47 76 tenGigE47 48 10000 +Ethernet48 97 tenGigE48 49 10000 +Ethernet49 98 tenGigE49 49 10000 +Ethernet50 99 tenGigE50 49 10000 +Ethernet51 100 tenGigE51 49 10000 +Ethernet52 101 tenGigE52 50 10000 +Ethernet53 102 tenGigE53 50 10000 +Ethernet54 103 tenGigE54 50 10000 +Ethernet55 104 tenGigE55 50 10000 +Ethernet56 81 tenGigE56 51 10000 +Ethernet57 82 tenGigE57 51 10000 +Ethernet58 83 tenGigE58 51 10000 +Ethernet59 84 tenGigE59 51 10000 +Ethernet60 105 tenGigE60 52 10000 +Ethernet61 106 tenGigE61 52 10000 +Ethernet62 107 tenGigE62 52 10000 +Ethernet63 108 tenGigE63 52 10000 +Ethernet64 109 tenGigE64 53 10000 +Ethernet65 110 tenGigE65 53 10000 +Ethernet66 111 tenGigE66 53 10000 +Ethernet67 112 tenGigE67 53 10000 +Ethernet68 77 tenGigE68 54 10000 +Ethernet69 78 tenGigE69 54 10000 +Ethernet70 79 tenGigE70 54 10000 +Ethernet71 80 tenGigE71 54 10000 diff --git a/device/accton/x86_64-accton_as5812_54t-r0/Accton-AS5812-54T/sai.profile b/device/accton/x86_64-accton_as5812_54t-r0/Accton-AS5812-54T/sai.profile new file mode 100755 index 0000000000..063814c1fc --- /dev/null +++ b/device/accton/x86_64-accton_as5812_54t-r0/Accton-AS5812-54T/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/td2-as5812-72x10G.config.bcm diff --git a/device/accton/x86_64-accton_as5812_54t-r0/Accton-AS5812-54T/td2-as5812-72x10G.config.bcm b/device/accton/x86_64-accton_as5812_54t-r0/Accton-AS5812-54T/td2-as5812-72x10G.config.bcm new file mode 100644 index 0000000000..4844616d03 --- /dev/null +++ b/device/accton/x86_64-accton_as5812_54t-r0/Accton-AS5812-54T/td2-as5812-72x10G.config.bcm @@ -0,0 +1,148 @@ +os=unix +bcm_stat_flags=0 +parity_enable=0 +parity_correction=0 + +bcm_num_cos=8 +l2_mem_entries=32768 +l3_mem_entries=16384 +l3_alpm_enable=2 +ipv6_lpm_128b_enable=1 + +mmu_lossless=0 +lls_num_l2uc=12 +module_64ports=0 + +#SFI +serdes_if_type=9 + +port_init_cl72=0 +phy_an_c73=5 # TSCMOD_CL73_CL37 + +#sdk6.5.5 only supports 156(default) or 125 +#xgxs_lcpll_xtal_refclk=1 +tslam_dma_enable=1 +table_dma_enable=1 + +#for 72 ports with 48 10G ports and 6 40G ports for breakout mode +pbmp_oversubscribe=0x1fffffffffffffffffe +pbmp_xport_xe=0x1fffffffffffffffffe + +rate_ext_mdio_divisor=96 + +#SFP+ 1-4 from WC3 +portmap_1=13:10 +portmap_2=14:10 +portmap_3=15:10 +portmap_4=16:10 + +#SFP+ 5-8 from WC5 +portmap_5=21:10 +portmap_6=22:10 +portmap_7=23:10 +portmap_8=24:10 + +#SFP+ 9-12 from WC6 +portmap_9=25:10 +portmap_10=26:10 +portmap_11=27:10 +portmap_12=28:10 + +#SFP+ 13-16 from WC7 +portmap_13=29:10 +portmap_14=30:10 +portmap_15=31:10 +portmap_16=32:10 + +#SFP+ 17-20 from WC11 +portmap_17=45:10 +portmap_18=46:10 +portmap_19=47:10 +portmap_20=48:10 + +#SFP+ 21-24 from WC12 +portmap_21=49:10 +portmap_22=50:10 +portmap_23=51:10 +portmap_24=52:10 + +#SFP+ 25-28 from WC13 +portmap_25=53:10 +portmap_26=54:10 +portmap_27=55:10 +portmap_28=56:10 + +#SFP+ 29-32 from WC14 +portmap_29=57:10 +portmap_30=58:10 +portmap_31=59:10 +portmap_32=60:10 + +#SFP+ 33-36 from WC15 +portmap_33=61:10 +portmap_34=62:10 +portmap_35=63:10 +portmap_36=64:10 + +#SFP+ 37-40 from WC16 +portmap_37=65:10 +portmap_38=66:10 +portmap_39=67:10 +portmap_40=68:10 + +#SFP+ 41-44 from WC17 +portmap_41=69:10 +portmap_42=70:10 +portmap_43=71:10 +portmap_44=72:10 + +#SFP+ 45-48 from WC18 +portmap_45=73:10 +portmap_46=74:10 +portmap_47=75:10 +portmap_48=76:10 + +# QSFP+ 49/WC24/port 49 +portmap_49=97:10 +portmap_50=98:10 +portmap_51=99:10 +portmap_52=100:10 + +# QSFP+ 51/WC25/port 50 +portmap_53=101:10 +portmap_54=102:10 +portmap_55=103:10 +portmap_56=104:10 + +# QSFP+ 53/WC20/port 51 +portmap_57=81:10 +portmap_58=82:10 +portmap_59=83:10 +portmap_60=84:10 + +# QSFP+ 50/WC26/port 52 +portmap_61=105:10 +portmap_62=106:10 +portmap_63=107:10 +portmap_64=108:10 + +# QSFP+ 52/WC27/port 53 +portmap_65=109:10 +portmap_66=110:10 +portmap_67=111:10 +portmap_68=112:10 + +# QSFP+ 54/WC19/port 54 +portmap_69=77:10 +portmap_70=78:10 +portmap_71=79:10 +portmap_72=80:10 + +# L3 ECMP +# - In Trident2, VP LAGs share the same table as ECMP group table. +# The first N entries are reserved for VP LAGs, where N is the value of the +# config property "max_vp_lags". By default this was set to 256 +l3_max_ecmp_mode=1 +max_vp_lags=0 + +stable_size=0x2000000 diff --git a/device/accton/x86_64-accton_as5812_54t-r0/default_sku b/device/accton/x86_64-accton_as5812_54t-r0/default_sku new file mode 100644 index 0000000000..87b99bac77 --- /dev/null +++ b/device/accton/x86_64-accton_as5812_54t-r0/default_sku @@ -0,0 +1 @@ +Accton-AS5812-54T t1 diff --git a/device/accton/x86_64-accton_as5812_54t-r0/installer.conf b/device/accton/x86_64-accton_as5812_54t-r0/installer.conf new file mode 100644 index 0000000000..14404194ef --- /dev/null +++ b/device/accton/x86_64-accton_as5812_54t-r0/installer.conf @@ -0,0 +1,3 @@ +CONSOLE_PORT=0x2f8 +CONSOLE_DEV=1 +CONSOLE_SPEED=115200 diff --git a/device/accton/x86_64-accton_as5812_54t-r0/led_proc_init.soc b/device/accton/x86_64-accton_as5812_54t-r0/led_proc_init.soc new file mode 100644 index 0000000000..d93e373d05 --- /dev/null +++ b/device/accton/x86_64-accton_as5812_54t-r0/led_proc_init.soc @@ -0,0 +1,162 @@ +# LED setting for active +# ----------------------------------------------------------------------------- +# for as5812_54x (48xg+6qxg) +# +# on green - if link up +# off - if link down +# blink - if active +# ----------------------------------------------------------------------------- +m CMIC_LEDUP0_PORT_ORDER_REMAP_60_63 REMAP_PORT_63=0 +m CMIC_LEDUP0_PORT_ORDER_REMAP_60_63 REMAP_PORT_62=1 +m CMIC_LEDUP0_PORT_ORDER_REMAP_60_63 REMAP_PORT_61=2 +m CMIC_LEDUP0_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=3 +m CMIC_LEDUP0_PORT_ORDER_REMAP_56_59 REMAP_PORT_59=4 +m CMIC_LEDUP0_PORT_ORDER_REMAP_56_59 REMAP_PORT_58=5 +m CMIC_LEDUP0_PORT_ORDER_REMAP_56_59 REMAP_PORT_57=6 +m CMIC_LEDUP0_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=7 +m CMIC_LEDUP0_PORT_ORDER_REMAP_52_55 REMAP_PORT_55=8 +m CMIC_LEDUP0_PORT_ORDER_REMAP_52_55 REMAP_PORT_54=9 +m CMIC_LEDUP0_PORT_ORDER_REMAP_52_55 REMAP_PORT_53=10 +m CMIC_LEDUP0_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=11 +m CMIC_LEDUP0_PORT_ORDER_REMAP_48_51 REMAP_PORT_51=12 +m CMIC_LEDUP0_PORT_ORDER_REMAP_48_51 REMAP_PORT_50=13 +m CMIC_LEDUP0_PORT_ORDER_REMAP_48_51 REMAP_PORT_49=14 +m CMIC_LEDUP0_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=15 +m CMIC_LEDUP0_PORT_ORDER_REMAP_32_35 REMAP_PORT_35=16 +m CMIC_LEDUP0_PORT_ORDER_REMAP_32_35 REMAP_PORT_34=17 +m CMIC_LEDUP0_PORT_ORDER_REMAP_32_35 REMAP_PORT_33=18 +m CMIC_LEDUP0_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=19 +m CMIC_LEDUP0_PORT_ORDER_REMAP_36_39 REMAP_PORT_39=20 +m CMIC_LEDUP0_PORT_ORDER_REMAP_36_39 REMAP_PORT_38=21 +m CMIC_LEDUP0_PORT_ORDER_REMAP_36_39 REMAP_PORT_37=22 +m CMIC_LEDUP0_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=23 +m CMIC_LEDUP0_PORT_ORDER_REMAP_40_43 REMAP_PORT_43=24 +m CMIC_LEDUP0_PORT_ORDER_REMAP_40_43 REMAP_PORT_42=25 +m CMIC_LEDUP0_PORT_ORDER_REMAP_40_43 REMAP_PORT_41=26 +m CMIC_LEDUP0_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=27 +m CMIC_LEDUP0_PORT_ORDER_REMAP_44_47 REMAP_PORT_47=28 +m CMIC_LEDUP0_PORT_ORDER_REMAP_44_47 REMAP_PORT_46=29 +m CMIC_LEDUP0_PORT_ORDER_REMAP_44_47 REMAP_PORT_45=30 +m CMIC_LEDUP0_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=31 +m CMIC_LEDUP0_PORT_ORDER_REMAP_28_31 REMAP_PORT_31=32 +m CMIC_LEDUP0_PORT_ORDER_REMAP_28_31 REMAP_PORT_30=33 +m CMIC_LEDUP0_PORT_ORDER_REMAP_28_31 REMAP_PORT_29=34 +m CMIC_LEDUP0_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=35 +m CMIC_LEDUP0_PORT_ORDER_REMAP_24_27 REMAP_PORT_27=36 +m CMIC_LEDUP0_PORT_ORDER_REMAP_24_27 REMAP_PORT_26=37 +m CMIC_LEDUP0_PORT_ORDER_REMAP_24_27 REMAP_PORT_25=38 +m CMIC_LEDUP0_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=39 +m CMIC_LEDUP0_PORT_ORDER_REMAP_20_23 REMAP_PORT_23=40 +m CMIC_LEDUP0_PORT_ORDER_REMAP_20_23 REMAP_PORT_22=41 +m CMIC_LEDUP0_PORT_ORDER_REMAP_20_23 REMAP_PORT_21=42 +m CMIC_LEDUP0_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=43 +m CMIC_LEDUP0_PORT_ORDER_REMAP_16_19 REMAP_PORT_19=44 +m CMIC_LEDUP0_PORT_ORDER_REMAP_16_19 REMAP_PORT_18=45 +m CMIC_LEDUP0_PORT_ORDER_REMAP_16_19 REMAP_PORT_17=46 +m CMIC_LEDUP0_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=47 +m CMIC_LEDUP0_PORT_ORDER_REMAP_0_3 REMAP_PORT_3=48 +m CMIC_LEDUP0_PORT_ORDER_REMAP_0_3 REMAP_PORT_2=49 +m CMIC_LEDUP0_PORT_ORDER_REMAP_0_3 REMAP_PORT_1=50 +m CMIC_LEDUP0_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=51 +m CMIC_LEDUP0_PORT_ORDER_REMAP_4_7 REMAP_PORT_7=52 +m CMIC_LEDUP0_PORT_ORDER_REMAP_4_7 REMAP_PORT_6=53 +m CMIC_LEDUP0_PORT_ORDER_REMAP_4_7 REMAP_PORT_5=54 +m CMIC_LEDUP0_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=55 +m CMIC_LEDUP0_PORT_ORDER_REMAP_8_11 REMAP_PORT_11=56 +m CMIC_LEDUP0_PORT_ORDER_REMAP_8_11 REMAP_PORT_10=57 +m CMIC_LEDUP0_PORT_ORDER_REMAP_8_11 REMAP_PORT_9=58 +m CMIC_LEDUP0_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=59 +m CMIC_LEDUP0_PORT_ORDER_REMAP_12_15 REMAP_PORT_15=60 +m CMIC_LEDUP0_PORT_ORDER_REMAP_12_15 REMAP_PORT_14=61 +m CMIC_LEDUP0_PORT_ORDER_REMAP_12_15 REMAP_PORT_13=62 +m CMIC_LEDUP0_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=63 +m CMIC_LEDUP1_PORT_ORDER_REMAP_60_63 REMAP_PORT_63=0 +m CMIC_LEDUP1_PORT_ORDER_REMAP_60_63 REMAP_PORT_62=1 +m CMIC_LEDUP1_PORT_ORDER_REMAP_60_63 REMAP_PORT_61=2 +m CMIC_LEDUP1_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=3 +m CMIC_LEDUP1_PORT_ORDER_REMAP_56_59 REMAP_PORT_59=4 +m CMIC_LEDUP1_PORT_ORDER_REMAP_56_59 REMAP_PORT_58=5 +m CMIC_LEDUP1_PORT_ORDER_REMAP_56_59 REMAP_PORT_57=6 +m CMIC_LEDUP1_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=7 +m CMIC_LEDUP1_PORT_ORDER_REMAP_52_55 REMAP_PORT_55=8 +m CMIC_LEDUP1_PORT_ORDER_REMAP_52_55 REMAP_PORT_54=9 +m CMIC_LEDUP1_PORT_ORDER_REMAP_52_55 REMAP_PORT_53=10 +m CMIC_LEDUP1_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=11 +m CMIC_LEDUP1_PORT_ORDER_REMAP_48_51 REMAP_PORT_51=12 +m CMIC_LEDUP1_PORT_ORDER_REMAP_48_51 REMAP_PORT_50=13 +m CMIC_LEDUP1_PORT_ORDER_REMAP_48_51 REMAP_PORT_49=14 +m CMIC_LEDUP1_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=15 +m CMIC_LEDUP1_PORT_ORDER_REMAP_32_35 REMAP_PORT_35=16 +m CMIC_LEDUP1_PORT_ORDER_REMAP_32_35 REMAP_PORT_34=17 +m CMIC_LEDUP1_PORT_ORDER_REMAP_32_35 REMAP_PORT_33=18 +m CMIC_LEDUP1_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=19 +m CMIC_LEDUP1_PORT_ORDER_REMAP_36_39 REMAP_PORT_39=20 +m CMIC_LEDUP1_PORT_ORDER_REMAP_36_39 REMAP_PORT_38=21 +m CMIC_LEDUP1_PORT_ORDER_REMAP_36_39 REMAP_PORT_37=22 +m CMIC_LEDUP1_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=23 +m CMIC_LEDUP1_PORT_ORDER_REMAP_40_43 REMAP_PORT_43=24 +m CMIC_LEDUP1_PORT_ORDER_REMAP_40_43 REMAP_PORT_42=25 +m CMIC_LEDUP1_PORT_ORDER_REMAP_40_43 REMAP_PORT_41=26 +m CMIC_LEDUP1_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=27 +m CMIC_LEDUP1_PORT_ORDER_REMAP_44_47 REMAP_PORT_47=28 +m CMIC_LEDUP1_PORT_ORDER_REMAP_44_47 REMAP_PORT_46=29 +m CMIC_LEDUP1_PORT_ORDER_REMAP_44_47 REMAP_PORT_45=30 +m CMIC_LEDUP1_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=31 +m CMIC_LEDUP1_PORT_ORDER_REMAP_28_31 REMAP_PORT_31=32 +m CMIC_LEDUP1_PORT_ORDER_REMAP_28_31 REMAP_PORT_30=33 +m CMIC_LEDUP1_PORT_ORDER_REMAP_28_31 REMAP_PORT_29=34 +m CMIC_LEDUP1_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=35 +m CMIC_LEDUP1_PORT_ORDER_REMAP_24_27 REMAP_PORT_27=36 +m CMIC_LEDUP1_PORT_ORDER_REMAP_24_27 REMAP_PORT_26=37 +m CMIC_LEDUP1_PORT_ORDER_REMAP_24_27 REMAP_PORT_25=38 +m CMIC_LEDUP1_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=39 +m CMIC_LEDUP1_PORT_ORDER_REMAP_20_23 REMAP_PORT_23=40 +m CMIC_LEDUP1_PORT_ORDER_REMAP_20_23 REMAP_PORT_22=41 +m CMIC_LEDUP1_PORT_ORDER_REMAP_20_23 REMAP_PORT_21=42 +m CMIC_LEDUP1_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=43 +m CMIC_LEDUP1_PORT_ORDER_REMAP_16_19 REMAP_PORT_19=44 +m CMIC_LEDUP1_PORT_ORDER_REMAP_16_19 REMAP_PORT_18=45 +m CMIC_LEDUP1_PORT_ORDER_REMAP_16_19 REMAP_PORT_17=46 +m CMIC_LEDUP1_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=47 +m CMIC_LEDUP1_PORT_ORDER_REMAP_0_3 REMAP_PORT_3=48 +m CMIC_LEDUP1_PORT_ORDER_REMAP_0_3 REMAP_PORT_2=49 +m CMIC_LEDUP1_PORT_ORDER_REMAP_0_3 REMAP_PORT_1=50 +m CMIC_LEDUP1_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=51 +m CMIC_LEDUP1_PORT_ORDER_REMAP_4_7 REMAP_PORT_7=52 +m CMIC_LEDUP1_PORT_ORDER_REMAP_4_7 REMAP_PORT_6=53 +m CMIC_LEDUP1_PORT_ORDER_REMAP_4_7 REMAP_PORT_5=54 +m CMIC_LEDUP1_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=55 +m CMIC_LEDUP1_PORT_ORDER_REMAP_8_11 REMAP_PORT_11=56 +m CMIC_LEDUP1_PORT_ORDER_REMAP_8_11 REMAP_PORT_10=57 +m CMIC_LEDUP1_PORT_ORDER_REMAP_8_11 REMAP_PORT_9=58 +m CMIC_LEDUP1_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=59 +m CMIC_LEDUP1_PORT_ORDER_REMAP_12_15 REMAP_PORT_15=60 +m CMIC_LEDUP1_PORT_ORDER_REMAP_12_15 REMAP_PORT_14=61 +m CMIC_LEDUP1_PORT_ORDER_REMAP_12_15 REMAP_PORT_13=62 +m CMIC_LEDUP1_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=63 + +led 0 stop +led 0 prog \ + 06 FE 80 D2 19 71 08 E0 60 FE E9 D2 0F 75 10 81 \ + 61 FD 02 3F 60 FF 28 32 0F 87 67 4A 96 FF 06 FF \ + D2 2B 74 16 02 1F 60 FF 28 32 0F 87 67 4A 96 FF \ + 06 FF D2 13 74 28 02 0F 60 FF 28 32 0F 87 67 4A \ + 96 FF 06 FF D2 0B 74 3A 3A 48 32 07 32 08 C7 32 \ + 04 C7 97 71 57 77 69 32 00 32 01 B7 97 71 63 32 \ + 0E 77 6B 26 FD 97 27 77 6B 32 0F 87 57 00 00 00 +led 0 start + +led 1 stop +led 1 prog \ + 06 FE 80 D2 19 71 08 E0 60 FE E9 D2 0F 75 10 81 \ + 61 FD 02 20 67 89 02 24 67 89 02 10 67 89 02 28 \ + 67 89 02 2C 67 89 02 0C 67 89 02 2C 67 79 02 28 \ + 67 79 02 24 67 79 02 20 67 79 02 10 67 79 02 0C \ + 67 79 02 0B 60 FF 28 32 0F 87 67 56 96 FF 06 FF \ + D2 FF 74 46 3A 36 32 07 32 08 C7 32 04 C7 97 71 \ + 63 77 75 32 00 32 01 B7 97 71 6F 32 0E 77 77 26 \ + FD 97 27 77 77 32 0F 87 57 12 A0 F8 15 1A 01 75 \ + 85 28 67 56 57 32 0F 87 57 12 A0 F8 15 1A 01 71 \ + A1 28 67 56 80 28 67 56 80 28 67 56 80 28 67 56 \ + 57 32 0F 87 32 0F 87 32 0F 87 32 0F 87 57 00 00 +led 1 start diff --git a/device/accton/x86_64-accton_as5812_54t-r0/plugins/eeprom.py b/device/accton/x86_64-accton_as5812_54t-r0/plugins/eeprom.py new file mode 100644 index 0000000000..7681caafee --- /dev/null +++ b/device/accton/x86_64-accton_as5812_54t-r0/plugins/eeprom.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +try: + import exceptions + import binascii + import time + import optparse + import warnings + import os + import sys + from sonic_eeprom import eeprom_base + from sonic_eeprom import eeprom_tlvinfo + import subprocess +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + +class board(eeprom_tlvinfo.TlvInfoDecoder): + _TLV_INFO_MAX_LEN = 256 + def __init__(self, name, path, cpld_root, ro): + self.eeprom_path = "/sys/bus/i2c/devices/1-0057/eeprom" + #Two i2c buses might get flipped order, check them both. + if not os.path.exists(self.eeprom_path): + self.eeprom_path = "/sys/bus/i2c/devices/0-0057/eeprom" + super(board, self).__init__(self.eeprom_path, 0, '', True) diff --git a/device/accton/x86_64-accton_as5812_54t-r0/plugins/psuutil.py b/device/accton/x86_64-accton_as5812_54t-r0/plugins/psuutil.py new file mode 100755 index 0000000000..cfcd62e582 --- /dev/null +++ b/device/accton/x86_64-accton_as5812_54t-r0/plugins/psuutil.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +############################################################################# +# Accton +# +# Module contains an implementation of SONiC PSU Base API and +# provides the PSUs status which are available in the platform +# +############################################################################# + +import os.path + +try: + from sonic_psu.psu_base import PsuBase +except ImportError as e: + raise ImportError (str(e) + "- required module not found") + +class PsuUtil(PsuBase): + """Platform-specific PSUutil class""" + + def __init__(self): + PsuBase.__init__(self) + + self.psu_path = "/sys/bus/i2c/devices/" + self.psu_presence = "/psu_present" + self.psu_oper_status = "/psu_power_good" + self.psu_mapping = { + 1: ["11-0038", "11-0050"], + 2: ["12-003b", "12-0053"], + } + + def get_num_psus(self): + return len(self.psu_mapping) + + def get_psu_status(self, index): + if index is None: + return False + + status = 0 + lst = self.psu_mapping[index] + for i in lst: + node = self.psu_path + i + self.psu_oper_status + try: + with open(node, 'r') as power_status: + status += int(power_status.read()) + except IOError: + return False + + return status > 0 + + def get_psu_presence(self, index): + if index is None: + return False + + status = 0 + lst = self.psu_mapping[index] + for i in lst: + node = self.psu_path + i + self.psu_presence + try: + with open(node, 'r') as presence_status: + status += int(presence_status.read()) + except IOError: + return False + + return status > 0 diff --git a/device/accton/x86_64-accton_as5812_54t-r0/plugins/sfputil.py b/device/accton/x86_64-accton_as5812_54t-r0/plugins/sfputil.py new file mode 100755 index 0000000000..c9f3008dcc --- /dev/null +++ b/device/accton/x86_64-accton_as5812_54t-r0/plugins/sfputil.py @@ -0,0 +1,290 @@ +# sfputil.py +# +# Platform-specific SFP transceiver interface for SONiC +# +try: + import time + import os + import pickle + from ctypes import create_string_buffer + from sonic_sfp.sfputilbase import SfpUtilBase +except ImportError as e: + raise ImportError("%s - required module not found" % str(e)) + +#from xcvrd +SFP_STATUS_INSERTED = '1' +SFP_STATUS_REMOVED = '0' + + +class SfpUtil(SfpUtilBase): + """Platform-specific SfpUtil class""" + + PORT_START = 49 + PORT_END = 54 + PORTS_IN_BLOCK = 54 + QSFP_PORT_START = 49 + QSFP_PORT_END = 54 + + BASE_VAL_PATH = "/sys/class/i2c-adapter/i2c-{0}/{1}-0050/" + BASE_OOM_PATH = "/sys/bus/i2c/devices/{0}-0050/" + BASE_CPLD_PATH = "/sys/bus/i2c/devices/{0}-0060/" + I2C_BUS_ORDER = -1 + + #The sidebands of QSFP is different. + #present is in-order. + #But lp_mode and reset are not. + qsfp_sb_map = [0, 2, 4, 1, 3, 5] + + _port_to_is_present = {} + _port_to_lp_mode = {} + + _port_to_eeprom_mapping = {} + _port_to_i2c_mapping = { + 49: [1,4],#QSFP_start + 50: [2,6], + 51: [3,3], + 52: [4,5], + 53: [5,7], + 54: [6,2], + } + + @property + def port_start(self): + return self.PORT_START + + @property + def port_end(self): + return self.PORT_END + + @property + def qsfp_port_start(self): + return self.QSFP_PORT_START + + @property + def qsfp_port_end(self): + return self.QSFP_PORT_END + + @property + def qsfp_ports(self): + return range(self.QSFP_PORT_START, self.PORTS_IN_BLOCK + 1) + + @property + def port_to_eeprom_mapping(self): + return self._port_to_eeprom_mapping + + def __init__(self): + eeprom_path = self.BASE_OOM_PATH + "eeprom" + + for x in range(self.port_start, self.port_end+1): + self.port_to_eeprom_mapping[x] = eeprom_path.format( + self._port_to_i2c_mapping[x][1] + ) + SfpUtilBase.__init__(self) + + #Two i2c buses might get flipped order, check them both. + def update_i2c_order(self): + if os.path.exists("/tmp/accton_util.p"): + self.I2C_BUS_ORDER = pickle.load(open("/tmp/accton_util.p", "rb")) + else: + if self.I2C_BUS_ORDER < 0: + eeprom_path = "/sys/bus/i2c/devices/1-0057/eeprom" + if os.path.exists(eeprom_path): + self.I2C_BUS_ORDER = 0 + eeprom_path = "/sys/bus/i2c/devices/0-0057/eeprom" + if os.path.exists(eeprom_path): + self.I2C_BUS_ORDER = 1 + return self.I2C_BUS_ORDER + + def get_presence(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + order = self.update_i2c_order() + present_path = self.BASE_CPLD_PATH.format(order) + present_path = present_path + "module_present_" + str(port_num) + self.__port_to_is_present = present_path + + try: + val_file = open(self.__port_to_is_present) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = val_file.readline().rstrip() + val_file.close() + + # content is a string, either "0" or "1" + if content == "1": + return True + + return False + + def get_low_power_mode_cpld(self, port_num): + if port_num < self.qsfp_port_start or port_num > self.qsfp_port_end: + return False + + order = self.update_i2c_order() + lp_mode_path = self.BASE_CPLD_PATH.format(order) + lp_mode_path = lp_mode_path + "module_lp_mode_" + lp_mode_path = lp_mode_path + str(port_num) + + try: + val_file = open(lp_mode_path) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = val_file.readline().rstrip() + val_file.close() + + # content is a string, either "0" or "1" + if content == "1": + return True + + return False + + def get_low_power_mode(self, port_num): + if port_num < self.qsfp_port_start or port_num > self.qsfp_port_end: + return False + + if not self.get_presence(port_num): + return self.get_low_power_mode_cpld(port_num) + + try: + eeprom = None + eeprom = open(self.port_to_eeprom_mapping[port_num], "rb") + eeprom.seek(93) + lpmode = ord(eeprom.read(1)) + + if not (lpmode & 0x1): # 'Power override' bit is 0 + return self.get_low_power_mode_cpld(port_num) + else: + if ((lpmode & 0x2) == 0x2): + return True # Low Power Mode if "Power set" bit is 1 + else: + return False # High Power Mode if "Power set" bit is 0 + except IOError as err: + print "Error: unable to open file: %s" % str(err) + return False + finally: + if eeprom is not None: + eeprom.close() + time.sleep(0.01) + + def set_low_power_mode(self, port_num, lpmode): + if port_num < self.qsfp_port_start or port_num > self.qsfp_port_end: + return False + + try: + eeprom = None + + if not self.get_presence(port_num): + return False # Port is not present, unable to set the eeprom + + # Fill in write buffer + regval = 0x3 if lpmode else 0x1 # 0x3:Low Power Mode, 0x1:High Power Mode + buffer = create_string_buffer(1) + buffer[0] = chr(regval) + + # Write to eeprom + eeprom = open(self.port_to_eeprom_mapping[port_num], "r+b") + eeprom.seek(93) + eeprom.write(buffer[0]) + return True + except IOError as err: + print "Error: unable to open file: %s" % str(err) + return False + finally: + if eeprom is not None: + eeprom.close() + time.sleep(0.01) + + def reset(self, port_num): + if port_num < self.qsfp_port_start or port_num > self.qsfp_port_end: + return False + + order = self.update_i2c_order() + lp_mode_path = self.BASE_CPLD_PATH.format(order) + mod_rst_path = lp_mode_path + "module_reset_" + mod_rst_path = mod_rst_path + str(port_num) + print(mod_rst_path) + + try: + reg_file = open(mod_rst_path, 'r+', buffering=0) + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + #toggle reset + reg_file.seek(0) + reg_file.write('1') + time.sleep(1) + reg_file.seek(0) + reg_file.write('0') + reg_file.close() + return True + + @property + def _get_presence_bitmap(self): + nodes = [] + order = self.update_i2c_order() + + present_path = self.BASE_CPLD_PATH.format(order) + nodes.append(present_path + "module_present_all") + + bitmap = "" + for node in nodes: + try: + reg_file = open(node) + + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + bitmap += reg_file.readline().rstrip() + " " + reg_file.close() + + rev = bitmap.split(" ") + rev = "".join(rev[::-1]) + return int(rev,16) + + + data = {'present':0} + def get_transceiver_change_event(self, timeout=2000): + port_dict = {} + port = 0 + + if timeout == 0: + cd_ms = sys.maxint + else: + cd_ms = timeout + + #poll per second + while cd_ms > 0: + reg_value = self._get_presence_bitmap + changed_ports = self.data['present'] ^ reg_value + if changed_ports != 0: + break + time.sleep(1) + cd_ms = cd_ms - 1000 + + if changed_ports: + for port in range (self.port_start, self.port_end+1): + # Mask off the bit corresponding to our port + fp_port = self._port_to_i2c_mapping[port][0] + mask = (1 << (fp_port - 1)) + if changed_ports & mask: + + if (reg_value & mask) == 0: + port_dict[port] = SFP_STATUS_REMOVED + else: + port_dict[port] = SFP_STATUS_INSERTED + + # Update cache + self.data['present'] = reg_value + + return True, port_dict + else: + return True, {} + return False, {} + diff --git a/device/accton/x86_64-accton_as5812_54t-r0/pmon_daemon_control.json b/device/accton/x86_64-accton_as5812_54t-r0/pmon_daemon_control.json new file mode 100644 index 0000000000..44bad64942 --- /dev/null +++ b/device/accton/x86_64-accton_as5812_54t-r0/pmon_daemon_control.json @@ -0,0 +1,4 @@ +{ + "skip_ledd": true +} + diff --git a/platform/broadcom/one-image.mk b/platform/broadcom/one-image.mk index 451e22ba37..7d50b133ac 100644 --- a/platform/broadcom/one-image.mk +++ b/platform/broadcom/one-image.mk @@ -27,6 +27,7 @@ $(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(DELL_S6000_PLATFORM_MODULE) \ $(ACCTON_AS4630_54PE_PLATFORM_MODULE) \ $(ACCTON_MINIPACK_PLATFORM_MODULE) \ $(ACCTON_AS5812_54X_PLATFORM_MODULE) \ + $(ACCTON_AS5812_54T_PLATFORM_MODULE) \ $(ACCTON_AS5835_54X_PLATFORM_MODULE) \ $(ACCTON_AS9716_32D_PLATFORM_MODULE) \ $(ACCTON_AS5835_54T_PLATFORM_MODULE) \ diff --git a/platform/broadcom/platform-modules-accton.mk b/platform/broadcom/platform-modules-accton.mk index 37ef2669fb..bab9c5ef9f 100755 --- a/platform/broadcom/platform-modules-accton.mk +++ b/platform/broadcom/platform-modules-accton.mk @@ -12,6 +12,7 @@ ACCTON_AS7726_32X_PLATFORM_MODULE_VERSION = 1.1 ACCTON_AS4630_54PE_PLATFORM_MODULE_VERSION = 1.1 ACCTON_MINIPACK_PLATFORM_MODULE_VERSION = 1.1 ACCTON_AS5812_54X_PLATFORM_MODULE_VERSION = 1.1 +ACCTON_AS5812_54T_PLATFORM_MODULE_VERSION = 1.1 ACCTON_AS5835_54X_PLATFORM_MODULE_VERSION = 1.1 ACCTON_AS9716_32D_PLATFORM_MODULE_VERSION = 1.1 ACCTON_AS5835_54T_PLATFORM_MODULE_VERSION = 1.1 @@ -30,6 +31,7 @@ export ACCTON_AS7726_32X_PLATFORM_MODULE_VERSION export ACCTON_AS4630_54PE_PLATFORM_MODULE_VERSION export ACCTON_MINIPACK_PLATFORM_MODULE_VERSION export ACCTON_AS5812_54X_PLATFORM_MODULE_VERSION +export ACCTON_AS5812_54T_PLATFORM_MODULE_VERSION export ACCTON_AS5835_54X_PLATFORM_MODULE_VERSION export ACCTON_AS9716_32D_PLATFORM_MODULE_VERSION export ACCTON_AS5835_54T_PLATFORM_MODULE_VERSION @@ -90,6 +92,10 @@ ACCTON_AS5812_54X_PLATFORM_MODULE = sonic-platform-accton-as5812-54x_$(ACCTON_AS $(ACCTON_AS5812_54X_PLATFORM_MODULE)_PLATFORM = x86_64-accton_as5812_54x-r0 $(eval $(call add_extra_package,$(ACCTON_AS7712_32X_PLATFORM_MODULE),$(ACCTON_AS5812_54X_PLATFORM_MODULE))) +ACCTON_AS5812_54T_PLATFORM_MODULE = sonic-platform-accton-as5812-54t_$(ACCTON_AS5812_54T_PLATFORM_MODULE_VERSION)_amd64.deb +$(ACCTON_AS5812_54T_PLATFORM_MODULE)_PLATFORM = x86_64-accton_as5812_54t-r0 +$(eval $(call add_extra_package,$(ACCTON_AS7712_32X_PLATFORM_MODULE),$(ACCTON_AS5812_54T_PLATFORM_MODULE))) + ACCTON_AS5835_54X_PLATFORM_MODULE = sonic-platform-accton-as5835-54x_$(ACCTON_AS5835_54X_PLATFORM_MODULE_VERSION)_amd64.deb $(ACCTON_AS5835_54X_PLATFORM_MODULE)_PLATFORM = x86_64-accton_as5835_54x-r0 $(eval $(call add_extra_package,$(ACCTON_AS7712_32X_PLATFORM_MODULE),$(ACCTON_AS5835_54X_PLATFORM_MODULE))) diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/classes/__init__.py b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/classes/__init__.py new file mode 100755 index 0000000000..e69de29bb2 diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/classes/fanutil.py b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/classes/fanutil.py new file mode 100755 index 0000000000..223408fb96 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/classes/fanutil.py @@ -0,0 +1,243 @@ +#!/usr/bin/env python +# +# Copyright (C) 2017 Accton Technology Corporation +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# ------------------------------------------------------------------ +# HISTORY: +# mm/dd/yyyy (A.D.) +# 11/13/2017: Polly Hsu, Create +# +# ------------------------------------------------------------------ + +try: + import time + import logging + from collections import namedtuple +except ImportError as e: + raise ImportError('%s - required module not found' % str(e)) + + +class FanUtil(object): + """Platform-specific FanUtil class""" + + FAN_NUM_ON_MAIN_BROAD = 5 + FAN_NUM_1_IDX = 1 + FAN_NUM_2_IDX = 2 + FAN_NUM_3_IDX = 3 + FAN_NUM_4_IDX = 4 + FAN_NUM_5_IDX = 5 + + FAN_NODE_NUM_OF_MAP = 6 + FAN_NODE_FAULT_IDX_OF_MAP = 1 + FAN_NODE_SPEED_IDX_OF_MAP = 2 + FAN_NODE_DIR_IDX_OF_MAP = 3 + FAN_NODE_DUTY_IDX_OF_MAP = 4 + FANR_NODE_FAULT_IDX_OF_MAP = 5 + FANR_NODE_SPEED_IDX_OF_MAP = 6 + + BASE_VAL_PATH = '/sys/devices/platform/as5812_54t_fan/{0}' + + #logfile = '' + #loglevel = logging.INFO + + """ Dictionary where + key1 = fan id index (integer) starting from 1 + key2 = fan node index (interger) starting from 1 + value = path to fan device file (string) """ + _fan_to_device_path_mapping = {} + + _fan_to_device_node_mapping = { + (FAN_NUM_1_IDX, FAN_NODE_FAULT_IDX_OF_MAP): 'fan1_fault', + (FAN_NUM_1_IDX, FAN_NODE_SPEED_IDX_OF_MAP): 'fan1_speed_rpm', + (FAN_NUM_1_IDX, FAN_NODE_DIR_IDX_OF_MAP): 'fan1_direction', + (FAN_NUM_1_IDX, FAN_NODE_DUTY_IDX_OF_MAP): 'fan1_duty_cycle_percentage', + (FAN_NUM_1_IDX, FANR_NODE_FAULT_IDX_OF_MAP): 'fanr1_fault', + (FAN_NUM_1_IDX, FANR_NODE_SPEED_IDX_OF_MAP): 'fanr1_speed_rpm', + + (FAN_NUM_2_IDX, FAN_NODE_FAULT_IDX_OF_MAP): 'fan2_fault', + (FAN_NUM_2_IDX, FAN_NODE_SPEED_IDX_OF_MAP): 'fan2_speed_rpm', + (FAN_NUM_2_IDX, FAN_NODE_DIR_IDX_OF_MAP): 'fan2_direction', + (FAN_NUM_2_IDX, FAN_NODE_DUTY_IDX_OF_MAP): 'fan2_duty_cycle_percentage', + (FAN_NUM_2_IDX, FANR_NODE_FAULT_IDX_OF_MAP): 'fanr2_fault', + (FAN_NUM_2_IDX, FANR_NODE_SPEED_IDX_OF_MAP): 'fanr2_speed_rpm', + + (FAN_NUM_3_IDX, FAN_NODE_FAULT_IDX_OF_MAP): 'fan3_fault', + (FAN_NUM_3_IDX, FAN_NODE_SPEED_IDX_OF_MAP): 'fan3_speed_rpm', + (FAN_NUM_3_IDX, FAN_NODE_DIR_IDX_OF_MAP): 'fan3_direction', + (FAN_NUM_3_IDX, FAN_NODE_DUTY_IDX_OF_MAP): 'fan3_duty_cycle_percentage', + (FAN_NUM_3_IDX, FANR_NODE_FAULT_IDX_OF_MAP): 'fanr3_fault', + (FAN_NUM_3_IDX, FANR_NODE_SPEED_IDX_OF_MAP): 'fanr3_speed_rpm', + + (FAN_NUM_4_IDX, FAN_NODE_FAULT_IDX_OF_MAP): 'fan4_fault', + (FAN_NUM_4_IDX, FAN_NODE_SPEED_IDX_OF_MAP): 'fan4_speed_rpm', + (FAN_NUM_4_IDX, FAN_NODE_DIR_IDX_OF_MAP): 'fan4_direction', + (FAN_NUM_4_IDX, FAN_NODE_DUTY_IDX_OF_MAP): 'fan4_duty_cycle_percentage', + (FAN_NUM_4_IDX, FANR_NODE_FAULT_IDX_OF_MAP): 'fanr4_fault', + (FAN_NUM_4_IDX, FANR_NODE_SPEED_IDX_OF_MAP): 'fanr4_speed_rpm', + + (FAN_NUM_5_IDX, FAN_NODE_FAULT_IDX_OF_MAP): 'fan5_fault', + (FAN_NUM_5_IDX, FAN_NODE_SPEED_IDX_OF_MAP): 'fan5_speed_rpm', + (FAN_NUM_5_IDX, FAN_NODE_DIR_IDX_OF_MAP): 'fan5_direction', + (FAN_NUM_5_IDX, FAN_NODE_DUTY_IDX_OF_MAP): 'fan5_duty_cycle_percentage', + (FAN_NUM_5_IDX, FANR_NODE_FAULT_IDX_OF_MAP): 'fanr5_fault', + (FAN_NUM_5_IDX, FANR_NODE_SPEED_IDX_OF_MAP): 'fanr5_speed_rpm', + } + + logger = logging.getLogger(__name__) + def __init__(self, log_level=logging.DEBUG): + ch = logging.StreamHandler() + ch.setLevel(log_level) + self.logger.addHandler(ch) + + fan_path = self.BASE_VAL_PATH + for fan_num in range(self.FAN_NUM_1_IDX, self.FAN_NUM_ON_MAIN_BROAD+1): + for node_num in range(self.FAN_NODE_FAULT_IDX_OF_MAP, self.FAN_NODE_NUM_OF_MAP+1): + self._fan_to_device_path_mapping[(fan_num, node_num)] = fan_path.format( + self._fan_to_device_node_mapping[(fan_num, node_num)]) + + + def _get_fan_to_device_node(self, fan_num, node_num): + return self._fan_to_device_node_mapping[(fan_num, node_num)] + + def _get_fan_node_val(self, fan_num, node_num): + if fan_num < self.FAN_NUM_1_IDX or fan_num > self.FAN_NUM_ON_MAIN_BROAD: + self.logger.debug('GET. Parameter error. fan_num:%d', fan_num) + return None + + if node_num < self.FAN_NODE_FAULT_IDX_OF_MAP or node_num > self.FAN_NODE_NUM_OF_MAP: + self.logger.debug('GET. Parameter error. node_num:%d', node_num) + return None + + device_path = self.get_fan_to_device_path(fan_num, node_num) + try: + val_file = open(device_path, 'r') + except IOError as e: + self.logger.error('GET. unable to open file: %s', str(e)) + return None + + content = val_file.readline().rstrip() + + if content == '': + self.logger.debug('GET. content is NULL. device_path:%s', device_path) + return None + + try: + val_file.close() + except: + self.logger.debug('GET. unable to close file. device_path:%s', device_path) + return None + + return int(content) + + def _set_fan_node_val(self, fan_num, node_num, val): + if fan_num < self.FAN_NUM_1_IDX or fan_num > self.FAN_NUM_ON_MAIN_BROAD: + self.logger.debug('GET. Parameter error. fan_num:%d', fan_num) + return None + + if node_num < self.FAN_NODE_FAULT_IDX_OF_MAP or node_num > self.FAN_NODE_NUM_OF_MAP: + self.logger.debug('GET. Parameter error. node_num:%d', node_num) + return None + + content = str(val) + if content == '': + self.logger.debug('GET. content is NULL. device_path:%s', device_path) + return None + + device_path = self.get_fan_to_device_path(fan_num, node_num) + try: + val_file = open(device_path, 'w') + except IOError as e: + self.logger.error('GET. unable to open file: %s', str(e)) + return None + + val_file.write(content) + + try: + val_file.close() + except: + self.logger.debug('GET. unable to close file. device_path:%s', device_path) + return None + + return True + + def get_num_fans(self): + return self.FAN_NUM_ON_MAIN_BROAD + + def get_idx_fan_start(self): + return self.FAN_NUM_1_IDX + + def get_num_nodes(self): + return self.FAN_NODE_NUM_OF_MAP + + def get_idx_node_start(self): + return self.FAN_NODE_FAULT_IDX_OF_MAP + + def get_size_node_map(self): + return len(self._fan_to_device_node_mapping) + + def get_size_path_map(self): + return len(self._fan_to_device_path_mapping) + + def get_fan_to_device_path(self, fan_num, node_num): + return self._fan_to_device_path_mapping[(fan_num, node_num)] + + def get_fan_fault(self, fan_num): + return self._get_fan_node_val(fan_num, self.FAN_NODE_FAULT_IDX_OF_MAP) + + def get_fan_speed(self, fan_num): + return self._get_fan_node_val(fan_num, self.FAN_NODE_SPEED_IDX_OF_MAP) + + def get_fan_dir(self, fan_num): + return self._get_fan_node_val(fan_num, self.FAN_NODE_DIR_IDX_OF_MAP) + + def get_fan_duty_cycle(self, fan_num): + return self._get_fan_node_val(fan_num, self.FAN_NODE_DUTY_IDX_OF_MAP) + + def set_fan_duty_cycle(self, fan_num, val): + return self._set_fan_node_val(fan_num, self.FAN_NODE_DUTY_IDX_OF_MAP, val) + + def get_fanr_fault(self, fan_num): + return self._get_fan_node_val(fan_num, self.FANR_NODE_FAULT_IDX_OF_MAP) + + def get_fanr_speed(self, fan_num): + return self._get_fan_node_val(fan_num, self.FANR_NODE_SPEED_IDX_OF_MAP) + + def get_fan_status(self, fan_num): + if fan_num < self.FAN_NUM_1_IDX or fan_num > self.FAN_NUM_ON_MAIN_BROAD: + self.logger.debug('GET. Parameter error. fan_num, %d', fan_num) + return None + + if self.get_fan_fault(fan_num) is not None and self.get_fan_fault(fan_num) > 0: + self.logger.debug('GET. FAN fault. fan_num, %d', fan_num) + return False + + if self.get_fanr_fault(fan_num) is not None and self.get_fanr_fault(fan_num) > 0: + self.logger.debug('GET. FANR fault. fan_num, %d', fan_num) + return False + + return True + +#def main(): +# fan = FanUtil() +# +# print 'get_size_node_map : %d' % fan.get_size_node_map() +# print 'get_size_path_map : %d' % fan.get_size_path_map() +# for x in range(fan.get_idx_fan_start(), fan.get_num_fans()+1): +# for y in range(fan.get_idx_node_start(), fan.get_num_nodes()+1): +# print fan.get_fan_to_device_path(x, y) +# +#if __name__ == '__main__': +# main() diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/classes/thermalutil.py b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/classes/thermalutil.py new file mode 100755 index 0000000000..0095a78710 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/classes/thermalutil.py @@ -0,0 +1,125 @@ +#!/usr/bin/env python +# +# Copyright (C) 2017 Accton Technology Corporation +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# ------------------------------------------------------------------ +# HISTORY: +# mm/dd/yyyy (A.D.) +# 11/13/2017: Polly Hsu, Create +# +# ------------------------------------------------------------------ + +try: + import time + import logging + import glob + from collections import namedtuple +except ImportError as e: + raise ImportError('%s - required module not found' % str(e)) + + +class ThermalUtil(object): + """Platform-specific ThermalUtil class""" + + THERMAL_NUM_ON_MAIN_BROAD = 3 + THERMAL_NUM_1_IDX = 1 # 1_ON_MAIN_BROAD + THERMAL_NUM_2_IDX = 2 # 2_ON_MAIN_BROAD + THERMAL_NUM_3_IDX = 3 # 3_ON_MAIN_BROAD + + BASE_VAL_PATH = '/sys/bus/i2c/devices/{0}-00{1}/hwmon/hwmon*/temp1_input' + + """ Dictionary where + key1 = thermal id index (integer) starting from 1 + value = path to fan device file (string) """ + _thermal_to_device_path_mapping = {} + + _thermal_to_device_node_mapping = { + THERMAL_NUM_1_IDX: ['15', '48'], + THERMAL_NUM_2_IDX: ['16', '49'], + THERMAL_NUM_3_IDX: ['17', '4a'], + } + + logger = logging.getLogger(__name__) + def __init__(self, log_level=logging.DEBUG): + ch = logging.StreamHandler() + ch.setLevel(log_level) + self.logger.addHandler(ch) + thermal_path = self.BASE_VAL_PATH + + for x in range(self.THERMAL_NUM_1_IDX, self.THERMAL_NUM_ON_MAIN_BROAD+1): + self._thermal_to_device_path_mapping[x] = thermal_path.format( + self._thermal_to_device_node_mapping[x][0], + self._thermal_to_device_node_mapping[x][1]) + + def _get_thermal_node_val(self, thermal_num): + if thermal_num < self.THERMAL_NUM_1_IDX or thermal_num > self.THERMAL_NUM_ON_MAIN_BROAD: + self.logger.debug('GET. Parameter error. thermal_num, %d', thermal_num) + return None + + device_path = self.get_thermal_to_device_path(thermal_num) + for filename in glob.glob(device_path): + try: + val_file = open(filename, 'r') + except IOError as e: + self.logger.error('GET. unable to open file: %s', str(e)) + return None + + content = val_file.readline().rstrip() + + if content == '': + self.logger.debug('GET. content is NULL. device_path:%s', device_path) + return None + + try: + val_file.close() + except: + self.logger.debug('GET. unable to close file. device_path:%s', device_path) + return None + + return int(content) + + + def get_num_thermals(self): + return self.THERMAL_NUM_ON_MAIN_BROAD + + def get_idx_thermal_start(self): + return self.THERMAL_NUM_1_IDX + + def get_size_node_map(self): + return len(self._thermal_to_device_node_mapping) + + def get_size_path_map(self): + return len(self._thermal_to_device_path_mapping) + + def get_thermal_to_device_path(self, thermal_num): + return self._thermal_to_device_path_mapping[thermal_num] + + def get_thermal_1_val(self): + return self._get_thermal_node_val(self.THERMAL_NUM_1_IDX) + + def get_thermal_2_val(self): + return self._get_thermal_node_val(self.THERMAL_NUM_2_IDX) + +#def main(): +# thermal = ThermalUtil() +# +# print 'get_size_node_map : %d' % thermal.get_size_node_map() +# print 'get_size_path_map : %d' % thermal.get_size_path_map() +# for x in range(thermal.get_idx_thermal_start(), thermal.get_num_thermals()+1): +# print thermal.get_thermal_to_device_path(x) +# +#if __name__ == '__main__': +# main() diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/Makefile b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/Makefile old mode 100644 new mode 100755 index 697dcff656..9e338c01f2 --- a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/Makefile +++ b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/Makefile @@ -1,4 +1,4 @@ -obj-m:=accton_i2c_cpld.o x86-64-accton-as5812-54t-fan.o \ - x86-64-accton-as5812-54t-leds.o x86-64-accton-as5812-54t-psu.o \ - x86-64-accton-as5812-54t-sfp.o ym2651y.o +obj-m:= x86-64-accton-as5812-54t-cpld.o x86-64-accton-as5812-54t-fan.o \ + x86-64-accton-as5812-54t-leds.o x86-64-accton-as5812-54t-sfp.o \ + x86-64-accton-as5812-54t-psu.o ym2651y.o cpr_4011_4mxx.o diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/accton_i2c_cpld.c b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/accton_i2c_cpld.c deleted file mode 100644 index c01d6bcca2..0000000000 --- a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/accton_i2c_cpld.c +++ /dev/null @@ -1,330 +0,0 @@ -/* - * A hwmon driver for the accton_i2c_cpld - * - * Copyright (C) 2013 Accton Technology Corporation. - * Brandon Chuang - * - * Based on ad7414.c - * Copyright 2006 Stefan Roese , DENX Software Engineering - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include -#include -#include -#include -#include - -static LIST_HEAD(cpld_client_list); -static struct mutex list_lock; - -struct cpld_client_node { - struct i2c_client *client; - struct list_head list; -}; - -/* Addresses scanned for accton_i2c_cpld - */ -static const unsigned short normal_i2c[] = { 0x31, 0x35, 0x60, 0x61, 0x62, 0x64, I2C_CLIENT_END }; - -static ssize_t show_cpld_version(struct device *dev, struct device_attribute *attr, char *buf) -{ - int val = 0; - struct i2c_client *client = to_i2c_client(dev); - - val = i2c_smbus_read_byte_data(client, 0x1); - - if (val < 0) { - dev_dbg(&client->dev, "cpld(0x%x) reg(0x1) err %d\n", client->addr, val); - } - - return sprintf(buf, "%d", val); -} - -static struct device_attribute ver = __ATTR(version, 0600, show_cpld_version, NULL); - -static void accton_i2c_cpld_add_client(struct i2c_client *client) -{ - struct cpld_client_node *node = kzalloc(sizeof(struct cpld_client_node), GFP_KERNEL); - - if (!node) { - dev_dbg(&client->dev, "Can't allocate cpld_client_node (0x%x)\n", client->addr); - return; - } - - node->client = client; - - mutex_lock(&list_lock); - list_add(&node->list, &cpld_client_list); - mutex_unlock(&list_lock); -} - -static void accton_i2c_cpld_remove_client(struct i2c_client *client) -{ - struct list_head *list_node = NULL; - struct cpld_client_node *cpld_node = NULL; - int found = 0; - - mutex_lock(&list_lock); - - list_for_each(list_node, &cpld_client_list) - { - cpld_node = list_entry(list_node, struct cpld_client_node, list); - - if (cpld_node->client == client) { - found = 1; - break; - } - } - - if (found) { - list_del(list_node); - kfree(cpld_node); - } - - mutex_unlock(&list_lock); -} - -static int accton_i2c_cpld_probe(struct i2c_client *client, - const struct i2c_device_id *dev_id) -{ - int status; - - if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA)) { - dev_dbg(&client->dev, "i2c_check_functionality failed (0x%x)\n", client->addr); - status = -EIO; - goto exit; - } - - status = sysfs_create_file(&client->dev.kobj, &ver.attr); - if (status) { - goto exit; - } - - dev_info(&client->dev, "chip found\n"); - accton_i2c_cpld_add_client(client); - - return 0; - -exit: - return status; -} - -static int accton_i2c_cpld_remove(struct i2c_client *client) -{ - sysfs_remove_file(&client->dev.kobj, &ver.attr); - accton_i2c_cpld_remove_client(client); - - return 0; -} - -static const struct i2c_device_id accton_i2c_cpld_id[] = { - { "accton_i2c_cpld", 0 }, - {} -}; -MODULE_DEVICE_TABLE(i2c, accton_i2c_cpld_id); - -static struct i2c_driver accton_i2c_cpld_driver = { - .class = I2C_CLASS_HWMON, - .driver = { - .name = "accton_i2c_cpld", - }, - .probe = accton_i2c_cpld_probe, - .remove = accton_i2c_cpld_remove, - .id_table = accton_i2c_cpld_id, - .address_list = normal_i2c, -}; - -int accton_i2c_cpld_read(unsigned short cpld_addr, u8 reg) -{ - struct list_head *list_node = NULL; - struct cpld_client_node *cpld_node = NULL; - int ret = -EPERM; - - mutex_lock(&list_lock); - - list_for_each(list_node, &cpld_client_list) - { - cpld_node = list_entry(list_node, struct cpld_client_node, list); - - if (cpld_node->client->addr == cpld_addr) { - ret = i2c_smbus_read_byte_data(cpld_node->client, reg); - break; - } - } - - mutex_unlock(&list_lock); - - return ret; -} -EXPORT_SYMBOL(accton_i2c_cpld_read); - -int accton_i2c_cpld_write(unsigned short cpld_addr, u8 reg, u8 value) -{ - struct list_head *list_node = NULL; - struct cpld_client_node *cpld_node = NULL; - int ret = -EIO; - - mutex_lock(&list_lock); - - list_for_each(list_node, &cpld_client_list) - { - cpld_node = list_entry(list_node, struct cpld_client_node, list); - - if (cpld_node->client->addr == cpld_addr) { - ret = i2c_smbus_write_byte_data(cpld_node->client, reg, value); - break; - } - } - - mutex_unlock(&list_lock); - - return ret; -} -EXPORT_SYMBOL(accton_i2c_cpld_write); - -static int __init accton_i2c_cpld_init(void) -{ - mutex_init(&list_lock); - return i2c_add_driver(&accton_i2c_cpld_driver); -} - -static void __exit accton_i2c_cpld_exit(void) -{ - i2c_del_driver(&accton_i2c_cpld_driver); -} - -static struct dmi_system_id as7512_dmi_table[] = { - { - .ident = "Accton AS7512", - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "Accton"), - DMI_MATCH(DMI_PRODUCT_NAME, "AS7512"), - }, - }, - { - .ident = "Accton AS7512", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Accton"), - DMI_MATCH(DMI_PRODUCT_NAME, "AS7512"), - }, - }, -}; - -int platform_accton_as7512_32x(void) -{ - return dmi_check_system(as7512_dmi_table); -} -EXPORT_SYMBOL(platform_accton_as7512_32x); - -static struct dmi_system_id as7712_dmi_table[] = { - { - .ident = "Accton AS7712", - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "Accton"), - DMI_MATCH(DMI_PRODUCT_NAME, "AS7712"), - }, - }, - { - .ident = "Accton AS7712", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Accton"), - DMI_MATCH(DMI_PRODUCT_NAME, "AS7712"), - }, - }, -}; - -int platform_accton_as7712_32x(void) -{ - return dmi_check_system(as7712_dmi_table); -} -EXPORT_SYMBOL(platform_accton_as7712_32x); - -static struct dmi_system_id as5812_54t_dmi_table[] = { - { - .ident = "Accton AS5812 54t", - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "Accton"), - DMI_MATCH(DMI_PRODUCT_NAME, "AS5812-54T"), - }, - }, - { - .ident = "Accton AS5812 54t", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Accton"), - DMI_MATCH(DMI_PRODUCT_NAME, "AS5812-54T"), - }, - }, -}; - -int platform_accton_as5812_54t(void) -{ - return dmi_check_system(as5812_54t_dmi_table); -} -EXPORT_SYMBOL(platform_accton_as5812_54t); - -static struct dmi_system_id as5512_54x_dmi_table[] = { - { - .ident = "Accton AS5512", - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "Accton"), - DMI_MATCH(DMI_PRODUCT_NAME, "AS5512"), - }, - }, - { - .ident = "Accton AS5512", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Accton"), - DMI_MATCH(DMI_PRODUCT_NAME, "AS5512"), - }, - }, -}; - -int platform_accton_as5512_54x(void) -{ - return dmi_check_system(as5512_54x_dmi_table); -} -EXPORT_SYMBOL(platform_accton_as5512_54x); - -static struct dmi_system_id as7716_dmi_table[] = { - { - .ident = "Accton AS7716", - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "Accton"), - DMI_MATCH(DMI_PRODUCT_NAME, "AS7716"), - }, - }, - { - .ident = "Accton AS7716", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Accton"), - DMI_MATCH(DMI_PRODUCT_NAME, "AS7716"), - }, - }, -}; - -int platform_accton_as7716_32x(void) -{ - return dmi_check_system(as7716_dmi_table); -} -EXPORT_SYMBOL(platform_accton_as7716_32x); - -MODULE_AUTHOR("Brandon Chuang "); -MODULE_DESCRIPTION("accton_i2c_cpld driver"); -MODULE_LICENSE("GPL"); - -module_init(accton_i2c_cpld_init); -module_exit(accton_i2c_cpld_exit); diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/cpr_4011_4mxx.c b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/cpr_4011_4mxx.c new file mode 120000 index 0000000000..fd43cc1f1c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/cpr_4011_4mxx.c @@ -0,0 +1 @@ +../../common/modules/cpr_4011_4mxx.c \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-cpld.c b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-cpld.c new file mode 100755 index 0000000000..2d44d5355c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-cpld.c @@ -0,0 +1,544 @@ +/* + * A hwmon driver for the as5812_54t_cpld + * + * Copyright (C) 2013 Accton Technology Corporation. + * Brandon Chuang + * + * Based on ad7414.c + * Copyright 2006 Stefan Roese , DENX Software Engineering + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static LIST_HEAD(cpld_client_list); +static struct mutex list_lock; + +struct cpld_client_node { + struct i2c_client *client; + struct list_head list; +}; + +#define I2C_RW_RETRY_COUNT 10 +#define I2C_RW_RETRY_INTERVAL 60 /* ms */ + +static ssize_t show_bit(struct device *dev, struct device_attribute *da, + char *buf); +static ssize_t set_1bit(struct device *dev, struct device_attribute *da, + const char *buf, size_t count); +static ssize_t show_present_all(struct device *dev, struct device_attribute *da, + char *buf); +static ssize_t access(struct device *dev, struct device_attribute *da, + const char *buf, size_t count); +static ssize_t show_version(struct device *dev, struct device_attribute *da, + char *buf); +static int as5812_54t_cpld_read_internal(struct i2c_client *client, u8 reg); +static int as5812_54t_cpld_write_internal(struct i2c_client *client, u8 reg, u8 value); + +struct as5812_54t_cpld_data { + struct device *hwmon_dev; + struct mutex update_lock; +}; + +/* Addresses scanned for as5812_54t_cpld + */ +static const unsigned short normal_i2c[] = { I2C_CLIENT_END }; + + + +#define _ATTR_CONCAT(name,idx) name##idx + +#define TRANSCEIVER_ATTR_ID(_attr) \ + _ATTR_CONCAT(MODULE_##_attr##_, 49), \ + _ATTR_CONCAT(MODULE_##_attr##_, 50), \ + _ATTR_CONCAT(MODULE_##_attr##_, 51), \ + _ATTR_CONCAT(MODULE_##_attr##_, 52), \ + _ATTR_CONCAT(MODULE_##_attr##_, 53), \ + _ATTR_CONCAT(MODULE_##_attr##_, 54) + + +enum as5812_54t_cpld_sysfs_attributes { + CPLD_VERSION, + ACCESS, + MODULE_PRESENT_ALL, + /* transceiver attributes */ + TRANSCEIVER_ATTR_ID(PRESENT), + TRANSCEIVER_ATTR_ID(LPMODE), + TRANSCEIVER_ATTR_ID(RESET), +}; + +/* sysfs attributes for hwmon + */ + +/* transceiver attributes */ +#define DECLARE_TRANSCEIVER_SENSOR_DEVICE_ATTR(index) \ + static SENSOR_DEVICE_ATTR(module_present_##index, S_IRUGO, show_bit, NULL, MODULE_PRESENT_##index);\ + static SENSOR_DEVICE_ATTR(module_lp_mode_##index, S_IRUGO|S_IWUSR, show_bit, set_1bit, MODULE_LPMODE_##index);\ + static SENSOR_DEVICE_ATTR(module_reset_##index, S_IRUGO|S_IWUSR, show_bit, set_1bit, MODULE_RESET_##index) + +#define DECLARE_TRANSCEIVER_ATTR(index) &sensor_dev_attr_module_present_##index.dev_attr.attr, \ + &sensor_dev_attr_module_lp_mode_##index.dev_attr.attr, \ + &sensor_dev_attr_module_reset_##index.dev_attr.attr + + + +static SENSOR_DEVICE_ATTR(version, S_IRUGO, show_version, NULL, CPLD_VERSION); +static SENSOR_DEVICE_ATTR(access, S_IWUSR, NULL, access, ACCESS); +/* transceiver attributes */ +static SENSOR_DEVICE_ATTR(module_present_all, S_IRUGO, show_present_all, NULL, MODULE_PRESENT_ALL); +DECLARE_TRANSCEIVER_SENSOR_DEVICE_ATTR(49); +DECLARE_TRANSCEIVER_SENSOR_DEVICE_ATTR(50); +DECLARE_TRANSCEIVER_SENSOR_DEVICE_ATTR(51); +DECLARE_TRANSCEIVER_SENSOR_DEVICE_ATTR(52); +DECLARE_TRANSCEIVER_SENSOR_DEVICE_ATTR(53); +DECLARE_TRANSCEIVER_SENSOR_DEVICE_ATTR(54); + +static struct attribute *as5812_54t_cpld_attributes[] = { + &sensor_dev_attr_version.dev_attr.attr, + &sensor_dev_attr_access.dev_attr.attr, + /* transceiver attributes */ + &sensor_dev_attr_module_present_all.dev_attr.attr, + DECLARE_TRANSCEIVER_ATTR(49), + DECLARE_TRANSCEIVER_ATTR(50), + DECLARE_TRANSCEIVER_ATTR(51), + DECLARE_TRANSCEIVER_ATTR(52), + DECLARE_TRANSCEIVER_ATTR(53), + DECLARE_TRANSCEIVER_ATTR(54), + NULL +}; + +static const struct attribute_group as5812_54t_cpld_group = { + .attrs = as5812_54t_cpld_attributes, +}; + +static ssize_t show_present_all(struct device *dev, struct device_attribute *da, + char *buf) +{ + int status; + u8 value = 0; + u8 reg = 0x22; + struct i2c_client *client = to_i2c_client(dev); + struct as5812_54t_cpld_data *data = i2c_get_clientdata(client); + + mutex_lock(&data->update_lock); + + status = as5812_54t_cpld_read_internal(client, reg); + if (status < 0) { + goto exit; + } + + value = ~(u8)status; + value &= 0x3F; + + mutex_unlock(&data->update_lock); + + /* Return values 49 -> 54 in order */ + return sprintf(buf, "%.2x\n", value); + +exit: + mutex_unlock(&data->update_lock); + return status; +} + +static int get_reg_index(struct sensor_device_attribute *attr, u8 *reg, u8 *index, u8 *revert) { + if (attr->index >= MODULE_RESET_49){ + *reg = 0x23; + *index = attr->index - MODULE_RESET_49; + *revert = 1; + }else if (attr->index >= MODULE_LPMODE_49){ + *reg = 0x24; + *index = attr->index - MODULE_LPMODE_49; + *revert = 0; + } else { + *reg = 0x22; + *index = attr->index - MODULE_PRESENT_49; + *revert = 1; + } + return 0; +} + +static ssize_t set_1bit(struct device *dev, struct device_attribute *da, + const char *buf, size_t count) +{ + u8 index, revert; + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct i2c_client *client = to_i2c_client(dev); + struct as5812_54t_cpld_data *data = i2c_get_clientdata(client); + int status, value; + u8 reg = 0, mask = 0; + + status = kstrtoint(buf, 10, &value); + if (status) + return status; + + get_reg_index(attr, ®, &index, &revert); + mask = 0x1 << index; + + mutex_lock(&data->update_lock); + status = as5812_54t_cpld_read_internal(client, reg); + if (unlikely(status < 0)) { + goto exit; + } + status &= ~(mask); + value = !value; + if (!revert) + value = !value; + status |= (value << index); /*low-active*/ + status = as5812_54t_cpld_write_internal(client, reg, status); + if (unlikely(status < 0)) { + goto exit; + } + mutex_unlock(&data->update_lock); + + return count; + +exit: + mutex_unlock(&data->update_lock); + return status; +} + +static ssize_t show_bit(struct device *dev, struct device_attribute *da, + char *buf) +{ + u8 index, revert; + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct i2c_client *client = to_i2c_client(dev); + struct as5812_54t_cpld_data *data = i2c_get_clientdata(client); + int status = 0; + u8 reg = 0, mask = 0; + + get_reg_index(attr, ®, &index, &revert); + mask = 0x1 << index; + + mutex_lock(&data->update_lock); + status = as5812_54t_cpld_read_internal(client, reg); + if (unlikely(status < 0)) { + goto exit; + } + mutex_unlock(&data->update_lock); + + status = !(status & mask); + if (!revert) + status = !status; + + return sprintf(buf, "%d\n", status); + +exit: + mutex_unlock(&data->update_lock); + return status; +} + +static ssize_t show_version(struct device *dev, struct device_attribute *da, + char *buf) +{ + u8 reg = 0, mask = 0; + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct i2c_client *client = to_i2c_client(dev); + struct as5812_54t_cpld_data *data = i2c_get_clientdata(client); + int status = 0; + + switch (attr->index) { + case CPLD_VERSION: + reg = 0x1; + mask = 0xFF; + break; + default: + break; + } + + mutex_lock(&data->update_lock); + status = as5812_54t_cpld_read_internal(client, reg); + if (unlikely(status < 0)) { + goto exit; + } + mutex_unlock(&data->update_lock); + return sprintf(buf, "%d\n", (status & mask)); + +exit: + mutex_unlock(&data->update_lock); + return status; +} + +static ssize_t access(struct device *dev, struct device_attribute *da, + const char *buf, size_t count) +{ + int status; + u32 addr, val; + struct i2c_client *client = to_i2c_client(dev); + struct as5812_54t_cpld_data *data = i2c_get_clientdata(client); + + if (sscanf(buf, "0x%x 0x%x", &addr, &val) != 2) { + return -EINVAL; + } + + if (addr > 0xFF || val > 0xFF) { + return -EINVAL; + } + + mutex_lock(&data->update_lock); + status = as5812_54t_cpld_write_internal(client, addr, val); + if (unlikely(status < 0)) { + goto exit; + } + mutex_unlock(&data->update_lock); + return count; + +exit: + mutex_unlock(&data->update_lock); + return status; +} + +static int as5812_54t_cpld_read_internal(struct i2c_client *client, u8 reg) +{ + int status = 0, retry = I2C_RW_RETRY_COUNT; + + while (retry) { + status = i2c_smbus_read_byte_data(client, reg); + if (unlikely(status < 0)) { + msleep(I2C_RW_RETRY_INTERVAL); + retry--; + continue; + } + + break; + } + + return status; +} + +static int as5812_54t_cpld_write_internal(struct i2c_client *client, u8 reg, u8 value) +{ + int status = 0, retry = I2C_RW_RETRY_COUNT; + + while (retry) { + status = i2c_smbus_write_byte_data(client, reg, value); + if (unlikely(status < 0)) { + msleep(I2C_RW_RETRY_INTERVAL); + retry--; + continue; + } + + break; + } + + return status; +} + +static void as5812_54t_cpld_add_client(struct i2c_client *client) +{ + struct cpld_client_node *node = kzalloc(sizeof(struct cpld_client_node), GFP_KERNEL); + + if (!node) { + dev_dbg(&client->dev, "Can't allocate cpld_client_node (0x%x)\n", client->addr); + return; + } + + node->client = client; + + mutex_lock(&list_lock); + list_add(&node->list, &cpld_client_list); + mutex_unlock(&list_lock); +} + +static void as5812_54t_cpld_remove_client(struct i2c_client *client) +{ + struct list_head *list_node = NULL; + struct cpld_client_node *cpld_node = NULL; + int found = 0; + + mutex_lock(&list_lock); + + list_for_each(list_node, &cpld_client_list) + { + cpld_node = list_entry(list_node, struct cpld_client_node, list); + + if (cpld_node->client == client) { + found = 1; + break; + } + } + + if (found) { + list_del(list_node); + kfree(cpld_node); + } + + mutex_unlock(&list_lock); +} + +static int as5812_54t_cpld_probe(struct i2c_client *client, + const struct i2c_device_id *dev_id) +{ + int status; + struct as5812_54t_cpld_data *data = NULL; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA)) { + dev_dbg(&client->dev, "i2c_check_functionality failed (0x%x)\n", client->addr); + status = -EIO; + goto exit; + } + + data = kzalloc(sizeof(struct as5812_54t_cpld_data), GFP_KERNEL); + if (!data) { + status = -ENOMEM; + goto exit; + } + + i2c_set_clientdata(client, data); + mutex_init(&data->update_lock); + dev_info(&client->dev, "chip found\n"); + + /* Register sysfs hooks */ + status = sysfs_create_group(&client->dev.kobj, &as5812_54t_cpld_group); + if (status) { + goto exit_free; + } + + data->hwmon_dev = hwmon_device_register_with_info(&client->dev, "as5812_54t_cpld", + NULL, NULL, NULL); + if (IS_ERR(data->hwmon_dev)) { + status = PTR_ERR(data->hwmon_dev); + goto exit_remove; + } + + as5812_54t_cpld_add_client(client); + + /* + * Bring QSFPs out of reset, + * This is a temporary fix until the QSFP+_MOD_RST register + * can be exposed through the driver. + */ + as5812_54t_cpld_write_internal(client, 0x23, 0x3F); + + dev_info(&client->dev, "%s: cpld '%s'\n", + dev_name(data->hwmon_dev), client->name); + + return 0; + +exit_remove: + sysfs_remove_group(&client->dev.kobj, &as5812_54t_cpld_group); +exit_free: + kfree(data); +exit: + + return status; +} + +static int as5812_54t_cpld_remove(struct i2c_client *client) +{ + struct as5812_54t_cpld_data *data = i2c_get_clientdata(client); + + hwmon_device_unregister(data->hwmon_dev); + sysfs_remove_group(&client->dev.kobj, &as5812_54t_cpld_group); + kfree(data); + as5812_54t_cpld_remove_client(client); + + return 0; +} + +int as5812_54t_cpld_read(unsigned short cpld_addr, u8 reg) +{ + struct list_head *list_node = NULL; + struct cpld_client_node *cpld_node = NULL; + int ret = -EPERM; + + mutex_lock(&list_lock); + + list_for_each(list_node, &cpld_client_list) + { + cpld_node = list_entry(list_node, struct cpld_client_node, list); + + if (cpld_node->client->addr == cpld_addr) { + ret = i2c_smbus_read_byte_data(cpld_node->client, reg); + break; + } + } + + mutex_unlock(&list_lock); + + return ret; +} +EXPORT_SYMBOL(as5812_54t_cpld_read); + +int as5812_54t_cpld_write(unsigned short cpld_addr, u8 reg, u8 value) +{ + struct list_head *list_node = NULL; + struct cpld_client_node *cpld_node = NULL; + int ret = -EIO; + + mutex_lock(&list_lock); + + list_for_each(list_node, &cpld_client_list) + { + cpld_node = list_entry(list_node, struct cpld_client_node, list); + + if (cpld_node->client->addr == cpld_addr) { + ret = i2c_smbus_write_byte_data(cpld_node->client, reg, value); + break; + } + } + + mutex_unlock(&list_lock); + + return ret; +} +EXPORT_SYMBOL(as5812_54t_cpld_write); + +static const struct i2c_device_id as5812_54t_cpld_id[] = { + { "as5812_54t_cpld", 0 }, + {} +}; +MODULE_DEVICE_TABLE(i2c, as5812_54t_cpld_id); + +static struct i2c_driver as5812_54t_cpld_driver = { + .class = I2C_CLASS_HWMON, + .driver = { + .name = "as5812_54t_cpld", + }, + .probe = as5812_54t_cpld_probe, + .remove = as5812_54t_cpld_remove, + .id_table = as5812_54t_cpld_id, + .address_list = normal_i2c, +}; + +static int __init as5812_54t_cpld_init(void) +{ + mutex_init(&list_lock); + return i2c_add_driver(&as5812_54t_cpld_driver); +} + +static void __exit as5812_54t_cpld_exit(void) +{ + i2c_del_driver(&as5812_54t_cpld_driver); +} + +module_init(as5812_54t_cpld_init); +module_exit(as5812_54t_cpld_exit); + +MODULE_AUTHOR("Brandon Chuang "); +MODULE_DESCRIPTION("as5812_54t_cpld driver"); +MODULE_LICENSE("GPL"); + diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-fan.c b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-fan.c index bad9245e93..66370fb37f 100644 --- a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-fan.c +++ b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-fan.c @@ -33,6 +33,8 @@ #include #include +#define DRVNAME "as5812_54t_fan" + #define FAN_MAX_NUMBER 5 #define FAN_SPEED_CPLD_TO_RPM_STEP 150 #define FAN_SPEED_PRECENT_TO_CPLD_STEP 5 @@ -130,47 +132,62 @@ static ssize_t fan_set_duty_cycle(struct device *dev, struct device_attribute *da,const char *buf, size_t count); static ssize_t fan_show_value(struct device *dev, struct device_attribute *da, char *buf); +static ssize_t show_name(struct device *dev, + struct device_attribute *da, char *buf); -extern int accton_i2c_cpld_read(unsigned short cpld_addr, u8 reg); -extern int accton_i2c_cpld_write(unsigned short cpld_addr, u8 reg, u8 value); +extern int as5812_54t_cpld_read(unsigned short cpld_addr, u8 reg); +extern int as5812_54t_cpld_write(unsigned short cpld_addr, u8 reg, u8 value); /*******************/ -#define _MAKE_SENSOR_DEVICE_ATTR(prj, id) \ - static SENSOR_DEVICE_ATTR(prj##fan##id##_fault, S_IRUGO, fan_show_value, NULL, FAN##id##_FAULT); \ +#define _MAKE_SENSOR_DEVICE_ATTR(prj, id, id2) \ static SENSOR_DEVICE_ATTR(prj##fan##id##_speed_rpm, S_IRUGO, fan_show_value, NULL, FAN##id##_SPEED); \ static SENSOR_DEVICE_ATTR(prj##fan##id##_duty_cycle_percentage, S_IWUSR | S_IRUGO, fan_show_value, \ fan_set_duty_cycle, FAN##id##_DUTY_CYCLE); \ + static SENSOR_DEVICE_ATTR(prj##pwm##id, S_IWUSR | S_IRUGO, fan_show_value, \ + fan_set_duty_cycle, FAN##id##_DUTY_CYCLE); \ static SENSOR_DEVICE_ATTR(prj##fan##id##_direction, S_IRUGO, fan_show_value, NULL, FAN##id##_DIRECTION); \ static SENSOR_DEVICE_ATTR(prj##fanr##id##_fault, S_IRUGO, fan_show_value, NULL, FANR##id##_FAULT); \ - static SENSOR_DEVICE_ATTR(prj##fanr##id##_speed_rpm, S_IRUGO, fan_show_value, NULL, FANR##id##_SPEED); + static SENSOR_DEVICE_ATTR(prj##fanr##id##_speed_rpm, S_IRUGO, fan_show_value, NULL, FANR##id##_SPEED); \ + static SENSOR_DEVICE_ATTR(prj##fan##id##_input, S_IRUGO, fan_show_value, NULL, FAN##id##_SPEED); \ + static SENSOR_DEVICE_ATTR(prj##fan##id2##_input, S_IRUGO, fan_show_value, NULL, FANR##id##_SPEED); \ + static SENSOR_DEVICE_ATTR(prj##fan##id##_fault, S_IRUGO, fan_show_value, NULL, FAN##id##_FAULT); \ + static SENSOR_DEVICE_ATTR(prj##fan##id2##_fault, S_IRUGO, fan_show_value, NULL, FAN##id##_FAULT); -#define MAKE_SENSOR_DEVICE_ATTR(prj,id) _MAKE_SENSOR_DEVICE_ATTR(prj,id) +#define MAKE_SENSOR_DEVICE_ATTR(prj,id, id2) _MAKE_SENSOR_DEVICE_ATTR(prj,id, id2) -MAKE_SENSOR_DEVICE_ATTR(PROJECT_NAME, 1) -MAKE_SENSOR_DEVICE_ATTR(PROJECT_NAME, 2) -MAKE_SENSOR_DEVICE_ATTR(PROJECT_NAME, 3) -MAKE_SENSOR_DEVICE_ATTR(PROJECT_NAME, 4) -MAKE_SENSOR_DEVICE_ATTR(PROJECT_NAME, 5) +MAKE_SENSOR_DEVICE_ATTR(PROJECT_NAME,1,11) +MAKE_SENSOR_DEVICE_ATTR(PROJECT_NAME,2,12) +MAKE_SENSOR_DEVICE_ATTR(PROJECT_NAME,3,13) +MAKE_SENSOR_DEVICE_ATTR(PROJECT_NAME,4,14) +MAKE_SENSOR_DEVICE_ATTR(PROJECT_NAME,5,15) + +static SENSOR_DEVICE_ATTR(name, S_IRUGO, show_name, NULL, 0); /*******************/ -#define _MAKE_FAN_ATTR(prj, id) \ - &sensor_dev_attr_##prj##fan##id##_fault.dev_attr.attr, \ +#define _MAKE_FAN_ATTR(prj, id, id2) \ &sensor_dev_attr_##prj##fan##id##_speed_rpm.dev_attr.attr, \ &sensor_dev_attr_##prj##fan##id##_duty_cycle_percentage.dev_attr.attr,\ + &sensor_dev_attr_##prj##pwm##id.dev_attr.attr,\ &sensor_dev_attr_##prj##fan##id##_direction.dev_attr.attr, \ &sensor_dev_attr_##prj##fanr##id##_fault.dev_attr.attr, \ - &sensor_dev_attr_##prj##fanr##id##_speed_rpm.dev_attr.attr, + &sensor_dev_attr_##prj##fanr##id##_speed_rpm.dev_attr.attr, \ + &sensor_dev_attr_##prj##fan##id##_input.dev_attr.attr, \ + &sensor_dev_attr_##prj##fan##id2##_input.dev_attr.attr, \ + &sensor_dev_attr_##prj##fan##id##_fault.dev_attr.attr, \ + &sensor_dev_attr_##prj##fan##id2##_fault.dev_attr.attr, -#define MAKE_FAN_ATTR(prj, id) _MAKE_FAN_ATTR(prj, id) + +#define MAKE_FAN_ATTR(prj, id, id2) _MAKE_FAN_ATTR(prj, id, id2) static struct attribute *accton_as5812_54t_fan_attributes[] = { /* fan related attributes */ - MAKE_FAN_ATTR(PROJECT_NAME,1) - MAKE_FAN_ATTR(PROJECT_NAME,2) - MAKE_FAN_ATTR(PROJECT_NAME,3) - MAKE_FAN_ATTR(PROJECT_NAME,4) - MAKE_FAN_ATTR(PROJECT_NAME,5) + MAKE_FAN_ATTR(PROJECT_NAME,1,11) + MAKE_FAN_ATTR(PROJECT_NAME,2,12) + MAKE_FAN_ATTR(PROJECT_NAME,3,13) + MAKE_FAN_ATTR(PROJECT_NAME,4,14) + MAKE_FAN_ATTR(PROJECT_NAME,5,15) + &sensor_dev_attr_name.dev_attr.attr, NULL }; /*******************/ @@ -232,6 +249,12 @@ static ssize_t fan_show_value(struct device *dev, struct device_attribute *da, return ret; } + +static ssize_t show_name(struct device *dev, struct device_attribute *da, + char *buf) +{ + return sprintf(buf, "%s\n", DRVNAME); +} /*******************/ static ssize_t fan_set_duty_cycle(struct device *dev, struct device_attribute *da, const char *buf, size_t count) { @@ -258,12 +281,12 @@ static const struct attribute_group accton_as5812_54t_fan_group = { static int accton_as5812_54t_fan_read_value(u8 reg) { - return accton_i2c_cpld_read(0x60, reg); + return as5812_54t_cpld_read(0x60, reg); } static int accton_as5812_54t_fan_write_value(u8 reg, u8 value) { - return accton_i2c_cpld_write(0x60, reg, value); + return as5812_54t_cpld_write(0x60, reg, value); } static void accton_as5812_54t_fan_update_device(struct device *dev) @@ -379,7 +402,6 @@ static int accton_as5812_54t_fan_remove(struct platform_device *pdev) return 0; } -#define DRVNAME "as5812_54t_fan" static struct platform_driver accton_as5812_54t_fan_driver = { .probe = accton_as5812_54t_fan_probe, @@ -394,11 +416,6 @@ static int __init accton_as5812_54t_fan_init(void) { int ret; - extern int platform_accton_as5812_54t(void); - if (!platform_accton_as5812_54t()) { - return -ENODEV; - } - ret = platform_driver_register(&accton_as5812_54t_fan_driver); if (ret < 0) { goto exit; @@ -439,4 +456,3 @@ MODULE_LICENSE("GPL"); module_init(accton_as5812_54t_fan_init); module_exit(accton_as5812_54t_fan_exit); - diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-psu.c b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-psu.c index a77014e877..c62998655b 100644 --- a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-psu.c +++ b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-psu.c @@ -43,7 +43,7 @@ static ssize_t show_index(struct device *dev, struct device_attribute *da, char static ssize_t show_status(struct device *dev, struct device_attribute *da, char *buf); static ssize_t show_model_name(struct device *dev, struct device_attribute *da, char *buf); static int as5812_54t_psu_read_block(struct i2c_client *client, u8 command, u8 *data,int data_len); -extern int accton_i2c_cpld_read(unsigned short cpld_addr, u8 reg); +extern int as5812_54t_cpld_read(unsigned short cpld_addr, u8 reg); static int as5812_54t_psu_model_name_get(struct device *dev); /* Addresses scanned @@ -170,7 +170,8 @@ static int as5812_54t_psu_probe(struct i2c_client *client, goto exit_free; } - data->hwmon_dev = hwmon_device_register(&client->dev); + data->hwmon_dev = hwmon_device_register_with_info(&client->dev, "as5812_54t_psu", + NULL, NULL, NULL); if (IS_ERR(data->hwmon_dev)) { status = PTR_ERR(data->hwmon_dev); goto exit_remove; @@ -328,7 +329,7 @@ static struct as5812_54t_psu_data *as5812_54t_psu_update_device(struct device *d data->valid = 0; /* Read psu status */ - status = accton_i2c_cpld_read(PSU_STATUS_I2C_ADDR, PSU_STATUS_I2C_REG_OFFSET); + status = as5812_54t_cpld_read(PSU_STATUS_I2C_ADDR, PSU_STATUS_I2C_REG_OFFSET); if (status < 0) { dev_dbg(&client->dev, "cpld reg (0x%x) err %d\n", PSU_STATUS_I2C_ADDR, status); @@ -348,25 +349,9 @@ exit: return data; } -static int __init as5812_54t_psu_init(void) -{ - extern int platform_accton_as5812_54t(void); - if (!platform_accton_as5812_54t()) { - return -ENODEV; - } - - return i2c_add_driver(&as5812_54t_psu_driver); -} - -static void __exit as5812_54t_psu_exit(void) -{ - i2c_del_driver(&as5812_54t_psu_driver); -} +module_i2c_driver(as5812_54t_psu_driver); MODULE_AUTHOR("Brandon Chuang "); MODULE_DESCRIPTION("accton as5812_54t_psu driver"); MODULE_LICENSE("GPL"); -module_init(as5812_54t_psu_init); -module_exit(as5812_54t_psu_exit); - diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-sfp.c b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-sfp.c deleted file mode 100644 index 88bf552de0..0000000000 --- a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/x86-64-accton-as5812-54t-sfp.c +++ /dev/null @@ -1,318 +0,0 @@ -/* - * An hwmon driver for accton as5812_54t sfp - * - * Copyright (C) 2015 Accton Technology Corporation. - * Brandon Chuang - * - * Based on ad7414.c - * Copyright 2006 Stefan Roese , DENX Software Engineering - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define QSFP_PORT_START_INDEX 49 -#define BIT_INDEX(i) (1ULL << (i)) - -/* Addresses scanned - */ -static const unsigned short normal_i2c[] = { 0x50, I2C_CLIENT_END }; - -/* Each client has this additional data - */ -struct as5812_54t_sfp_data { - struct device *hwmon_dev; - struct mutex update_lock; - char valid; /* !=0 if registers are valid */ - unsigned long last_updated; /* In jiffies */ - int port; /* Front port index */ - char eeprom[256]; /* eeprom data */ - u8 status; /* bit0:port49, bit1:port50 and so on */ -}; - -static struct as5812_54t_sfp_data *as5812_54t_sfp_update_device(struct device *dev, int update_eeprom); -static ssize_t show_port_number(struct device *dev, struct device_attribute *da, char *buf); -static ssize_t show_status(struct device *dev, struct device_attribute *da, char *buf); -static ssize_t show_eeprom(struct device *dev, struct device_attribute *da, char *buf); -extern int accton_i2c_cpld_read(unsigned short cpld_addr, u8 reg); -extern int accton_i2c_cpld_write(unsigned short cpld_addr, u8 reg, u8 value); - -enum as5812_54t_sfp_sysfs_attributes { - SFP_IS_PRESENT, - SFP_PORT_NUMBER, - SFP_EEPROM, - SFP_IS_PRESENT_ALL, -}; - -/* sysfs attributes for hwmon - */ -static SENSOR_DEVICE_ATTR(sfp_is_present, S_IRUGO, show_status, NULL, SFP_IS_PRESENT); -static SENSOR_DEVICE_ATTR(sfp_port_number, S_IRUGO, show_port_number, NULL, SFP_PORT_NUMBER); -static SENSOR_DEVICE_ATTR(sfp_eeprom, S_IRUGO, show_eeprom, NULL, SFP_EEPROM); -static SENSOR_DEVICE_ATTR(sfp_is_present_all, S_IRUGO, show_status,NULL, SFP_IS_PRESENT_ALL); - -static struct attribute *as5812_54t_sfp_attributes[] = { - &sensor_dev_attr_sfp_is_present.dev_attr.attr, - &sensor_dev_attr_sfp_eeprom.dev_attr.attr, - &sensor_dev_attr_sfp_port_number.dev_attr.attr, - &sensor_dev_attr_sfp_is_present_all.dev_attr.attr, - NULL -}; - -static ssize_t show_port_number(struct device *dev, struct device_attribute *da, - char *buf) -{ - struct i2c_client *client = to_i2c_client(dev); - struct as5812_54t_sfp_data *data = i2c_get_clientdata(client); - - return sprintf(buf, "%d\n",data->port); -} - -static ssize_t show_status(struct device *dev, struct device_attribute *da, - char *buf) -{ - struct sensor_device_attribute *attr = to_sensor_dev_attr(da); - struct as5812_54t_sfp_data *data = as5812_54t_sfp_update_device(dev, 0); - - if (attr->index == SFP_IS_PRESENT) { - u8 val; - - val = (data->status & BIT_INDEX(data->port - QSFP_PORT_START_INDEX)) ? 0 : 1; - return sprintf(buf, "%d", val); - } - else { /* SFP_IS_PRESENT_ALL */ - return sprintf(buf, "%.2x\n", ~data->status); - } -} - -static ssize_t show_eeprom(struct device *dev, struct device_attribute *da, - char *buf) -{ - struct as5812_54t_sfp_data *data = as5812_54t_sfp_update_device(dev, 1); - - if (!data->valid) { - return 0; - } - - if ((data->status & BIT_INDEX(data->port - QSFP_PORT_START_INDEX)) != 0) { - return 0; - } - - memcpy(buf, data->eeprom, sizeof(data->eeprom)); - - return sizeof(data->eeprom); -} - -static const struct attribute_group as5812_54t_sfp_group = { - .attrs = as5812_54t_sfp_attributes, -}; - -static int as5812_54t_sfp_probe(struct i2c_client *client, - const struct i2c_device_id *dev_id) -{ - struct as5812_54t_sfp_data *data; - int status; - - if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA)) { - status = -EIO; - goto exit; - } - - data = kzalloc(sizeof(struct as5812_54t_sfp_data), GFP_KERNEL); - if (!data) { - status = -ENOMEM; - goto exit; - } - - mutex_init(&data->update_lock); - data->port = dev_id->driver_data; - i2c_set_clientdata(client, data); - - dev_info(&client->dev, "chip found\n"); - - /* Register sysfs hooks */ - status = sysfs_create_group(&client->dev.kobj, &as5812_54t_sfp_group); - if (status) { - goto exit_free; - } - - data->hwmon_dev = hwmon_device_register(&client->dev); - if (IS_ERR(data->hwmon_dev)) { - status = PTR_ERR(data->hwmon_dev); - goto exit_remove; - } - - dev_info(&client->dev, "%s: sfp '%s'\n", - dev_name(data->hwmon_dev), client->name); - - return 0; - -exit_remove: - sysfs_remove_group(&client->dev.kobj, &as5812_54t_sfp_group); -exit_free: - kfree(data); -exit: - - return status; -} - -static int as5812_54t_sfp_remove(struct i2c_client *client) -{ - struct as5812_54t_sfp_data *data = i2c_get_clientdata(client); - - hwmon_device_unregister(data->hwmon_dev); - sysfs_remove_group(&client->dev.kobj, &as5812_54t_sfp_group); - kfree(data); - - return 0; -} - -enum port_numbers { -as5812_54t_qsfp49 = 49, -as5812_54t_qsfp50, -as5812_54t_qsfp51, -as5812_54t_qsfp52, -as5812_54t_qsfp53, -as5812_54t_qsfp54 -}; - -static const struct i2c_device_id as5812_54t_sfp_id[] = { -{ "as5812_54t_qsfp49", as5812_54t_qsfp49 }, { "as5812_54t_qsfp50", as5812_54t_qsfp50 }, -{ "as5812_54t_qsfp51", as5812_54t_qsfp51 }, { "as5812_54t_qsfp52", as5812_54t_qsfp52 }, -{ "as5812_54t_qsfp53", as5812_54t_qsfp53 }, { "as5812_54t_qsfp54", as5812_54t_qsfp54 }, -{} -}; -MODULE_DEVICE_TABLE(i2c, as5812_54t_sfp_id); - -static struct i2c_driver as5812_54t_sfp_driver = { - .class = I2C_CLASS_HWMON, - .driver = { - .name = "as5812_54t_sfp", - }, - .probe = as5812_54t_sfp_probe, - .remove = as5812_54t_sfp_remove, - .id_table = as5812_54t_sfp_id, - .address_list = normal_i2c, -}; - -static int as5812_54t_sfp_read_byte(struct i2c_client *client, u8 command, u8 *data) -{ - int result = i2c_smbus_read_byte_data(client, command); - - if (unlikely(result < 0)) { - dev_dbg(&client->dev, "sfp read byte data failed, command(0x%2x), data(0x%2x)\r\n", command, result); - goto abort; - } - - *data = (u8)result; - result = 0; - -abort: - return result; -} - -static struct as5812_54t_sfp_data *as5812_54t_sfp_update_device(struct device *dev, int update_eeprom) -{ - struct i2c_client *client = to_i2c_client(dev); - struct as5812_54t_sfp_data *data = i2c_get_clientdata(client); - - mutex_lock(&data->update_lock); - - if (time_after(jiffies, data->last_updated + HZ + HZ / 2) - || !data->valid || update_eeprom) { - int status = -1; - int i = 0; - - data->valid = 0; - //dev_dbg(&client->dev, "Starting as5812_54t sfp status update\n"); - data->status = 0xFF; - - /* - * Bring QSFPs out of reset, - * This is a temporary fix until the QSFP+_MOD_RST register - * can be exposed through the driver. - */ - accton_i2c_cpld_write(0x60, 0x23, 0x3F); - - /* Read present status of port 49-54(QSFP port) */ - status = accton_i2c_cpld_read(0x60, 0x22); - - if (status < 0) { - dev_dbg(&client->dev, "cpld(0x60) reg(0x22) err %d\n", status); - } - else { - data->status = status & 0x3F; /* (u32)status */ - } - - if (update_eeprom) { - /* Read eeprom data based on port number */ - memset(data->eeprom, 0, sizeof(data->eeprom)); - - /* Check if the port is present */ - if ((data->status & BIT_INDEX(data->port - QSFP_PORT_START_INDEX)) == 0) { - /* read eeprom */ - for (i = 0; i < sizeof(data->eeprom); i++) { - status = as5812_54t_sfp_read_byte(client, i, data->eeprom + i); - - if (status < 0) { - dev_dbg(&client->dev, "unable to read eeprom from port(%d)\n", - data->port); - goto exit; - } - } - } - } - - data->valid = 1; - data->last_updated = jiffies; - } - -exit: - mutex_unlock(&data->update_lock); - - return data; -} - -static int __init as5812_54t_sfp_init(void) -{ - extern int platform_accton_as5812_54t(void); - if (!platform_accton_as5812_54t()) { - return -ENODEV; - } - - return i2c_add_driver(&as5812_54t_sfp_driver); -} - -static void __exit as5812_54t_sfp_exit(void) -{ - i2c_del_driver(&as5812_54t_sfp_driver); -} - -MODULE_AUTHOR("Brandon Chuang "); -MODULE_DESCRIPTION("accton as5812_54t_sfp driver"); -MODULE_LICENSE("GPL"); - -module_init(as5812_54t_sfp_init); -module_exit(as5812_54t_sfp_exit); - diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/ym2651y.c b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/ym2651y.c deleted file mode 100644 index 7101aa411f..0000000000 --- a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/ym2651y.c +++ /dev/null @@ -1,680 +0,0 @@ -/* - * An hwmon driver for the 3Y Power YM-2651Y Power Module - * - * Copyright (C) 2014 Accton Technology Corporation. - * Brandon Chuang - * - * Based on ad7414.c - * Copyright 2006 Stefan Roese , DENX Software Engineering - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define MAX_FAN_DUTY_CYCLE 100 - -/* Addresses scanned - */ -static const unsigned short normal_i2c[] = { I2C_CLIENT_END }; - -enum chips { - YM2651, - YM2401, -}; - -/* Each client has this additional data - */ -struct ym2651y_data { - struct device *hwmon_dev; - struct mutex update_lock; - char valid; /* !=0 if registers are valid */ - unsigned long last_updated; /* In jiffies */ - u8 chip; /* chip id */ - u8 capability; /* Register value */ - u16 status_word; /* Register value */ - u8 fan_fault; /* Register value */ - u8 over_temp; /* Register value */ - u16 v_out; /* Register value */ - u16 i_out; /* Register value */ - u16 p_out; /* Register value */ - u8 vout_mode; /* Register value */ - u16 temp; /* Register value */ - u16 fan_speed; /* Register value */ - u16 fan_duty_cycle[2]; /* Register value */ - u8 fan_dir[5]; /* Register value */ - u8 pmbus_revision; /* Register value */ - u8 mfr_id[10]; /* Register value */ - u8 mfr_model[16]; /* Register value */ - u8 mfr_revsion[3]; /* Register value */ - u16 mfr_vin_min; /* Register value */ - u16 mfr_vin_max; /* Register value */ - u16 mfr_iin_max; /* Register value */ - u16 mfr_iout_max; /* Register value */ - u16 mfr_pin_max; /* Register value */ - u16 mfr_pout_max; /* Register value */ - u16 mfr_vout_min; /* Register value */ - u16 mfr_vout_max; /* Register value */ -}; - -static ssize_t show_byte(struct device *dev, struct device_attribute *da, - char *buf); -static ssize_t show_word(struct device *dev, struct device_attribute *da, - char *buf); -static ssize_t show_linear(struct device *dev, struct device_attribute *da, - char *buf); -static ssize_t show_vout(struct device *dev, struct device_attribute *da, char *buf); -static ssize_t show_fan_fault(struct device *dev, struct device_attribute *da, - char *buf); -static ssize_t show_over_temp(struct device *dev, struct device_attribute *da, - char *buf); -static ssize_t show_ascii(struct device *dev, struct device_attribute *da, - char *buf); -static struct ym2651y_data *ym2651y_update_device(struct device *dev); -static ssize_t set_fan_duty_cycle(struct device *dev, struct device_attribute *da, - const char *buf, size_t count); -static int ym2651y_write_word(struct i2c_client *client, u8 reg, u16 value); - -enum ym2651y_sysfs_attributes { - PSU_POWER_ON = 0, - PSU_TEMP_FAULT, - PSU_POWER_GOOD, - PSU_FAN1_FAULT, - PSU_FAN_DIRECTION, - PSU_OVER_TEMP, - PSU_V_OUT, - PSU_I_OUT, - PSU_P_OUT, - PSU_TEMP1_INPUT, - PSU_FAN1_SPEED, - PSU_FAN1_DUTY_CYCLE, - PSU_PMBUS_REVISION, - PSU_MFR_ID, - PSU_MFR_MODEL, - PSU_MFR_REVISION, - PSU_MFR_VIN_MIN, - PSU_MFR_VIN_MAX, - PSU_MFR_VOUT_MIN, - PSU_MFR_VOUT_MAX, - PSU_MFR_IIN_MAX, - PSU_MFR_IOUT_MAX, - PSU_MFR_PIN_MAX, - PSU_MFR_POUT_MAX -}; - -/* sysfs attributes for hwmon - */ -static SENSOR_DEVICE_ATTR(psu_power_on, S_IRUGO, show_word, NULL, PSU_POWER_ON); -static SENSOR_DEVICE_ATTR(psu_temp_fault, S_IRUGO, show_word, NULL, PSU_TEMP_FAULT); -static SENSOR_DEVICE_ATTR(psu_power_good, S_IRUGO, show_word, NULL, PSU_POWER_GOOD); -static SENSOR_DEVICE_ATTR(psu_fan1_fault, S_IRUGO, show_fan_fault, NULL, PSU_FAN1_FAULT); -static SENSOR_DEVICE_ATTR(psu_over_temp, S_IRUGO, show_over_temp, NULL, PSU_OVER_TEMP); -static SENSOR_DEVICE_ATTR(psu_v_out, S_IRUGO, show_vout, NULL, PSU_V_OUT); -static SENSOR_DEVICE_ATTR(psu_i_out, S_IRUGO, show_linear, NULL, PSU_I_OUT); -static SENSOR_DEVICE_ATTR(psu_p_out, S_IRUGO, show_linear, NULL, PSU_P_OUT); -static SENSOR_DEVICE_ATTR(psu_temp1_input, S_IRUGO, show_linear, NULL, PSU_TEMP1_INPUT); -static SENSOR_DEVICE_ATTR(psu_fan1_speed_rpm, S_IRUGO, show_linear, NULL, PSU_FAN1_SPEED); -static SENSOR_DEVICE_ATTR(psu_fan1_duty_cycle_percentage, S_IWUSR | S_IRUGO, show_linear, set_fan_duty_cycle, PSU_FAN1_DUTY_CYCLE); -static SENSOR_DEVICE_ATTR(psu_fan_dir, S_IRUGO, show_ascii, NULL, PSU_FAN_DIRECTION); -static SENSOR_DEVICE_ATTR(psu_pmbus_revision,S_IRUGO, show_byte, NULL, PSU_PMBUS_REVISION); -static SENSOR_DEVICE_ATTR(psu_mfr_id, S_IRUGO, show_ascii, NULL, PSU_MFR_ID); -static SENSOR_DEVICE_ATTR(psu_mfr_model, S_IRUGO, show_ascii, NULL, PSU_MFR_MODEL); -static SENSOR_DEVICE_ATTR(psu_mfr_revision, S_IRUGO, show_ascii, NULL, PSU_MFR_REVISION); -static SENSOR_DEVICE_ATTR(psu_mfr_vin_min, S_IRUGO, show_linear, NULL, PSU_MFR_VIN_MIN); -static SENSOR_DEVICE_ATTR(psu_mfr_vin_max, S_IRUGO, show_linear, NULL, PSU_MFR_VIN_MAX); -static SENSOR_DEVICE_ATTR(psu_mfr_vout_min, S_IRUGO, show_linear, NULL, PSU_MFR_VOUT_MIN); -static SENSOR_DEVICE_ATTR(psu_mfr_vout_max, S_IRUGO, show_linear, NULL, PSU_MFR_VOUT_MAX); -static SENSOR_DEVICE_ATTR(psu_mfr_iin_max, S_IRUGO, show_linear, NULL, PSU_MFR_IIN_MAX); -static SENSOR_DEVICE_ATTR(psu_mfr_iout_max, S_IRUGO, show_linear, NULL, PSU_MFR_IOUT_MAX); -static SENSOR_DEVICE_ATTR(psu_mfr_pin_max, S_IRUGO, show_linear, NULL, PSU_MFR_PIN_MAX); -static SENSOR_DEVICE_ATTR(psu_mfr_pout_max, S_IRUGO, show_linear, NULL, PSU_MFR_POUT_MAX); - -static struct attribute *ym2651y_attributes[] = { - &sensor_dev_attr_psu_power_on.dev_attr.attr, - &sensor_dev_attr_psu_temp_fault.dev_attr.attr, - &sensor_dev_attr_psu_power_good.dev_attr.attr, - &sensor_dev_attr_psu_fan1_fault.dev_attr.attr, - &sensor_dev_attr_psu_over_temp.dev_attr.attr, - &sensor_dev_attr_psu_v_out.dev_attr.attr, - &sensor_dev_attr_psu_i_out.dev_attr.attr, - &sensor_dev_attr_psu_p_out.dev_attr.attr, - &sensor_dev_attr_psu_temp1_input.dev_attr.attr, - &sensor_dev_attr_psu_fan1_speed_rpm.dev_attr.attr, - &sensor_dev_attr_psu_fan1_duty_cycle_percentage.dev_attr.attr, - &sensor_dev_attr_psu_fan_dir.dev_attr.attr, - &sensor_dev_attr_psu_pmbus_revision.dev_attr.attr, - &sensor_dev_attr_psu_mfr_id.dev_attr.attr, - &sensor_dev_attr_psu_mfr_model.dev_attr.attr, - &sensor_dev_attr_psu_mfr_revision.dev_attr.attr, - &sensor_dev_attr_psu_mfr_vin_min.dev_attr.attr, - &sensor_dev_attr_psu_mfr_vin_max.dev_attr.attr, - &sensor_dev_attr_psu_mfr_pout_max.dev_attr.attr, - &sensor_dev_attr_psu_mfr_iin_max.dev_attr.attr, - &sensor_dev_attr_psu_mfr_pin_max.dev_attr.attr, - &sensor_dev_attr_psu_mfr_vout_min.dev_attr.attr, - &sensor_dev_attr_psu_mfr_vout_max.dev_attr.attr, - &sensor_dev_attr_psu_mfr_iout_max.dev_attr.attr, - NULL -}; - -static ssize_t show_byte(struct device *dev, struct device_attribute *da, - char *buf) -{ - struct sensor_device_attribute *attr = to_sensor_dev_attr(da); - struct ym2651y_data *data = ym2651y_update_device(dev); - - if (!data->valid) { - return 0; - } - - return (attr->index == PSU_PMBUS_REVISION) ? sprintf(buf, "%d\n", data->pmbus_revision) : - sprintf(buf, "0\n"); -} - -static ssize_t show_word(struct device *dev, struct device_attribute *da, - char *buf) -{ - struct sensor_device_attribute *attr = to_sensor_dev_attr(da); - struct ym2651y_data *data = ym2651y_update_device(dev); - u16 status = 0; - - if (!data->valid) { - return 0; - } - - switch (attr->index) { - case PSU_POWER_ON: /* psu_power_on, low byte bit 6 of status_word, 0=>ON, 1=>OFF */ - status = (data->status_word & 0x40) ? 0 : 1; - break; - case PSU_TEMP_FAULT: /* psu_temp_fault, low byte bit 2 of status_word, 0=>Normal, 1=>temp fault */ - status = (data->status_word & 0x4) >> 2; - break; - case PSU_POWER_GOOD: /* psu_power_good, high byte bit 3 of status_word, 0=>OK, 1=>FAIL */ - status = (data->status_word & 0x800) ? 0 : 1; - break; - } - - return sprintf(buf, "%d\n", status); -} - -static int two_complement_to_int(u16 data, u8 valid_bit, int mask) -{ - u16 valid_data = data & mask; - bool is_negative = valid_data >> (valid_bit - 1); - - return is_negative ? (-(((~valid_data) & mask) + 1)) : valid_data; -} - -static ssize_t set_fan_duty_cycle(struct device *dev, struct device_attribute *da, - const char *buf, size_t count) -{ - struct sensor_device_attribute *attr = to_sensor_dev_attr(da); - struct i2c_client *client = to_i2c_client(dev); - struct ym2651y_data *data = i2c_get_clientdata(client); - int nr = (attr->index == PSU_FAN1_DUTY_CYCLE) ? 0 : 1; - long speed; - int error; - - error = kstrtol(buf, 10, &speed); - if (error) - return error; - - if (speed < 0 || speed > MAX_FAN_DUTY_CYCLE) - return -EINVAL; - - mutex_lock(&data->update_lock); - data->fan_duty_cycle[nr] = speed; - ym2651y_write_word(client, 0x3B + nr, data->fan_duty_cycle[nr]); - mutex_unlock(&data->update_lock); - - return count; -} - -static ssize_t show_linear(struct device *dev, struct device_attribute *da, - char *buf) -{ - struct sensor_device_attribute *attr = to_sensor_dev_attr(da); - struct ym2651y_data *data = ym2651y_update_device(dev); - - u16 value = 0; - int exponent, mantissa; - int multiplier = 1000; - - if (!data->valid) { - return 0; - } - - switch (attr->index) { - case PSU_V_OUT: - value = data->v_out; - break; - case PSU_I_OUT: - value = data->i_out; - break; - case PSU_P_OUT: - value = data->p_out; - break; - case PSU_TEMP1_INPUT: - value = data->temp; - break; - case PSU_FAN1_SPEED: - value = data->fan_speed; - multiplier = 1; - break; - case PSU_FAN1_DUTY_CYCLE: - value = data->fan_duty_cycle[0]; - multiplier = 1; - break; - case PSU_MFR_VIN_MIN: - value = data->mfr_vin_min; - break; - case PSU_MFR_VIN_MAX: - value = data->mfr_vin_max; - break; - case PSU_MFR_VOUT_MIN: - value = data->mfr_vout_min; - break; - case PSU_MFR_VOUT_MAX: - value = data->mfr_vout_max; - break; - case PSU_MFR_PIN_MAX: - value = data->mfr_pin_max; - break; - case PSU_MFR_POUT_MAX: - value = data->mfr_pout_max; - break; - case PSU_MFR_IOUT_MAX: - value = data->mfr_iout_max; - break; - case PSU_MFR_IIN_MAX: - value = data->mfr_iin_max; - break; - } - - exponent = two_complement_to_int(value >> 11, 5, 0x1f); - mantissa = two_complement_to_int(value & 0x7ff, 11, 0x7ff); - - return (exponent >= 0) ? sprintf(buf, "%d\n", (mantissa << exponent) * multiplier) : - sprintf(buf, "%d\n", (mantissa * multiplier) / (1 << -exponent)); -} - -static ssize_t show_fan_fault(struct device *dev, struct device_attribute *da, - char *buf) -{ - struct sensor_device_attribute *attr = to_sensor_dev_attr(da); - struct ym2651y_data *data = ym2651y_update_device(dev); - u8 shift; - - if (!data->valid) { - return 0; - } - - shift = (attr->index == PSU_FAN1_FAULT) ? 7 : 6; - - return sprintf(buf, "%d\n", data->fan_fault >> shift); -} - -static ssize_t show_over_temp(struct device *dev, struct device_attribute *da, - char *buf) -{ - struct ym2651y_data *data = ym2651y_update_device(dev); - - if (!data->valid) { - return 0; - } - - return sprintf(buf, "%d\n", data->over_temp >> 7); -} - -static ssize_t show_ascii(struct device *dev, struct device_attribute *da, - char *buf) -{ - struct sensor_device_attribute *attr = to_sensor_dev_attr(da); - struct ym2651y_data *data = ym2651y_update_device(dev); - u8 *ptr = NULL; - - if (!data->valid) { - return 0; - } - - switch (attr->index) { - case PSU_FAN_DIRECTION: /* psu_fan_dir */ - ptr = data->fan_dir + 1; /* Skip the first byte since it is the length of string. */ - break; - case PSU_MFR_ID: /* psu_mfr_id */ - ptr = data->mfr_id + 1; /* The first byte is the count byte of string. */; - break; - case PSU_MFR_MODEL: /* psu_mfr_model */ - ptr = data->mfr_model + 1; /* The first byte is the count byte of string. */ - break; - case PSU_MFR_REVISION: /* psu_mfr_revision */ - ptr = data->mfr_revsion + 1; /* The first byte is the count byte of string. */ - break; - default: - return 0; - } - - return sprintf(buf, "%s\n", ptr); -} - -static ssize_t show_vout_by_mode(struct device *dev, struct device_attribute *da, - char *buf) -{ - struct ym2651y_data *data = ym2651y_update_device(dev); - int exponent, mantissa; - int multiplier = 1000; - - if (!data->valid) { - return 0; - } - - exponent = two_complement_to_int(data->vout_mode, 5, 0x1f); - mantissa = data->v_out; - - return (exponent > 0) ? sprintf(buf, "%d\n", (mantissa << exponent) * multiplier) : - sprintf(buf, "%d\n", (mantissa * multiplier) / (1 << -exponent)); -} - -static ssize_t show_vout(struct device *dev, struct device_attribute *da, - char *buf) -{ - struct i2c_client *client = to_i2c_client(dev); - struct ym2651y_data *data = i2c_get_clientdata(client); - - if (data->chip == YM2401) { - return show_vout_by_mode(dev, da, buf); - } - - return show_linear(dev, da, buf); -} - -static const struct attribute_group ym2651y_group = { - .attrs = ym2651y_attributes, -}; - -static int ym2651y_probe(struct i2c_client *client, - const struct i2c_device_id *dev_id) -{ - struct ym2651y_data *data; - int status; - - if (!i2c_check_functionality(client->adapter, - I2C_FUNC_SMBUS_BYTE_DATA | - I2C_FUNC_SMBUS_WORD_DATA | - I2C_FUNC_SMBUS_I2C_BLOCK)) { - status = -EIO; - goto exit; - } - - data = kzalloc(sizeof(struct ym2651y_data), GFP_KERNEL); - if (!data) { - status = -ENOMEM; - goto exit; - } - - i2c_set_clientdata(client, data); - mutex_init(&data->update_lock); - data->chip = dev_id->driver_data; - dev_info(&client->dev, "chip found\n"); - - /* Register sysfs hooks */ - status = sysfs_create_group(&client->dev.kobj, &ym2651y_group); - if (status) { - goto exit_free; - } - - data->hwmon_dev = hwmon_device_register(&client->dev); - if (IS_ERR(data->hwmon_dev)) { - status = PTR_ERR(data->hwmon_dev); - goto exit_remove; - } - - dev_info(&client->dev, "%s: psu '%s'\n", - dev_name(data->hwmon_dev), client->name); - - return 0; - -exit_remove: - sysfs_remove_group(&client->dev.kobj, &ym2651y_group); -exit_free: - kfree(data); -exit: - - return status; -} - -static int ym2651y_remove(struct i2c_client *client) -{ - struct ym2651y_data *data = i2c_get_clientdata(client); - - hwmon_device_unregister(data->hwmon_dev); - sysfs_remove_group(&client->dev.kobj, &ym2651y_group); - kfree(data); - - return 0; -} - -static const struct i2c_device_id ym2651y_id[] = { - { "ym2651", YM2651 }, - { "ym2401", YM2401 }, - {} -}; -MODULE_DEVICE_TABLE(i2c, ym2651y_id); - -static struct i2c_driver ym2651y_driver = { - .class = I2C_CLASS_HWMON, - .driver = { - .name = "ym2651", - }, - .probe = ym2651y_probe, - .remove = ym2651y_remove, - .id_table = ym2651y_id, - .address_list = normal_i2c, -}; - -static int ym2651y_read_byte(struct i2c_client *client, u8 reg) -{ - return i2c_smbus_read_byte_data(client, reg); -} - -static int ym2651y_read_word(struct i2c_client *client, u8 reg) -{ - return i2c_smbus_read_word_data(client, reg); -} - -static int ym2651y_write_word(struct i2c_client *client, u8 reg, u16 value) -{ - return i2c_smbus_write_word_data(client, reg, value); -} - -static int ym2651y_read_block(struct i2c_client *client, u8 command, u8 *data, - int data_len) -{ - int result = i2c_smbus_read_i2c_block_data(client, command, data_len, data); - - if (unlikely(result < 0)) - goto abort; - if (unlikely(result != data_len)) { - result = -EIO; - goto abort; - } - - result = 0; - -abort: - return result; -} - -struct reg_data_byte { - u8 reg; - u8 *value; -}; - -struct reg_data_word { - u8 reg; - u16 *value; -}; - -static struct ym2651y_data *ym2651y_update_device(struct device *dev) -{ - struct i2c_client *client = to_i2c_client(dev); - struct ym2651y_data *data = i2c_get_clientdata(client); - - mutex_lock(&data->update_lock); - - if (time_after(jiffies, data->last_updated + HZ + HZ / 2) - || !data->valid) { - int i, status, length; - u8 command, buf; - struct reg_data_byte regs_byte[] = { {0x19, &data->capability}, - {0x20, &data->vout_mode}, - {0x7d, &data->over_temp}, - {0x81, &data->fan_fault}, - {0x98, &data->pmbus_revision}}; - struct reg_data_word regs_word[] = { {0x79, &data->status_word}, - {0x8b, &data->v_out}, - {0x8c, &data->i_out}, - {0x96, &data->p_out}, - {0x8d, &data->temp}, - {0x3b, &(data->fan_duty_cycle[0])}, - {0x3c, &(data->fan_duty_cycle[1])}, - {0x90, &data->fan_speed}, - {0xa0, &data->mfr_vin_min}, - {0xa1, &data->mfr_vin_max}, - {0xa2, &data->mfr_iin_max}, - {0xa3, &data->mfr_pin_max}, - {0xa4, &data->mfr_vout_min}, - {0xa5, &data->mfr_vout_max}, - {0xa6, &data->mfr_iout_max}, - {0xa7, &data->mfr_pout_max}}; - - dev_dbg(&client->dev, "Starting ym2651 update\n"); - data->valid = 0; - - /* Read byte data */ - for (i = 0; i < ARRAY_SIZE(regs_byte); i++) { - status = ym2651y_read_byte(client, regs_byte[i].reg); - - if (status < 0) { - dev_dbg(&client->dev, "reg %d, err %d\n", - regs_byte[i].reg, status); - goto exit; - } - else { - *(regs_byte[i].value) = status; - } - } - - /* Read word data */ - for (i = 0; i < ARRAY_SIZE(regs_word); i++) { - status = ym2651y_read_word(client, regs_word[i].reg); - - if (status < 0) { - dev_dbg(&client->dev, "reg %d, err %d\n", - regs_word[i].reg, status); - goto exit; - } - else { - *(regs_word[i].value) = status; - } - } - - /* Read fan_direction */ - command = 0xC3; - status = ym2651y_read_block(client, command, data->fan_dir, - ARRAY_SIZE(data->fan_dir)-1); - data->fan_dir[ARRAY_SIZE(data->fan_dir)-1] = '\0'; - - if (status < 0) { - dev_dbg(&client->dev, "reg %d, err %d\n", command, status); - goto exit; - } - - /* Read mfr_id */ - command = 0x99; - status = ym2651y_read_block(client, command, data->mfr_id, - ARRAY_SIZE(data->mfr_id)-1); - data->mfr_id[ARRAY_SIZE(data->mfr_id)-1] = '\0'; - - if (status < 0) { - dev_dbg(&client->dev, "reg %d, err %d\n", command, status); - goto exit; - } - - /* Read mfr_model */ - command = 0x9a; - length = 1; - - /* Read first byte to determine the length of data */ - status = ym2651y_read_block(client, command, &buf, length); - if (status < 0) { - dev_dbg(&client->dev, "reg %d, err %d\n", command, status); - goto exit; - } - - status = ym2651y_read_block(client, command, data->mfr_model, buf+1); - data->mfr_model[buf+1] = '\0'; - - if (status < 0) { - dev_dbg(&client->dev, "reg %d, err %d\n", command, status); - goto exit; - } - - /* Read mfr_revsion */ - command = 0x9b; - status = ym2651y_read_block(client, command, data->mfr_revsion, - ARRAY_SIZE(data->mfr_revsion)-1); - data->mfr_revsion[ARRAY_SIZE(data->mfr_revsion)-1] = '\0'; - - if (status < 0) { - dev_dbg(&client->dev, "reg %d, err %d\n", command, status); - goto exit; - } - - data->last_updated = jiffies; - data->valid = 1; - } - -exit: - mutex_unlock(&data->update_lock); - - return data; -} - -static int __init ym2651y_init(void) -{ - return i2c_add_driver(&ym2651y_driver); -} - -static void __exit ym2651y_exit(void) -{ - i2c_del_driver(&ym2651y_driver); -} - -MODULE_AUTHOR("Brandon Chuang "); -MODULE_DESCRIPTION("3Y Power YM-2651Y driver"); -MODULE_LICENSE("GPL"); - -module_init(ym2651y_init); -module_exit(ym2651y_exit); - diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/ym2651y.c b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/ym2651y.c new file mode 120000 index 0000000000..f4d67640cc --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/modules/ym2651y.c @@ -0,0 +1 @@ +../../common/modules/ym2651y.c \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/service/as5812-platform-init.service b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/service/as5812-platform-init.service index 30c1703dc4..91c9adb01c 100755 --- a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/service/as5812-platform-init.service +++ b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/service/as5812-platform-init.service @@ -1,13 +1,17 @@ [Unit] -Description=Accton AS5712-54T Platform initialization service +Description=Accton AS5812-54X Platform Monitoring service Before=pmon.service +After=sysinit.target DefaultDependencies=no [Service] -Type=oneshot -ExecStart=/usr/local/bin/accton_as5812_54t_util.py install -ExecStop=/usr/local/bin/accton_as5812_54t_util.py clean -RemainAfterExit=yes +Type=simple +ExecStartPre=/usr/local/bin/accton_as5812_util.py install +ExecStart=/usr/local/bin/accton_as5812_monitor.py +#RemainAfterExit=yes + +# Resource Limitations +LimitCORE=infinity [Install] WantedBy=multi-user.target diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/setup.py b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/setup.py new file mode 100755 index 0000000000..0af58ba919 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/setup.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python + +import os +import sys +from setuptools import setup +os.listdir + +setup( + name='as5812_54t', + version='1.0', + description='Module to initialize Accton AS5812-54X platforms', + + packages=['as5812_54t'], + package_dir={'as5812_54t': 'as5812-54t/classes'}, +) + diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/utils/accton_as5812_monitor.py b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/utils/accton_as5812_monitor.py new file mode 100755 index 0000000000..c8574557b3 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/utils/accton_as5812_monitor.py @@ -0,0 +1,213 @@ +#!/usr/bin/env python +# +# Copyright (C) 2019 Accton Technology Corporation +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# ------------------------------------------------------------------ +# HISTORY: +# mm/dd/yyyy (A.D.) +# 11/13/2017: Polly Hsu, Create +# 05/08/2019: Roy Lee, changed for as5812-54t. +# ------------------------------------------------------------------ + +try: + import os + import sys, getopt + import subprocess + import click + import imp + import logging + import logging.config + import logging.handlers + import types + import time # this is only being used as part of the example + import traceback + import signal + from tabulate import tabulate + from as5812_54t.fanutil import FanUtil + from as5812_54t.thermalutil import ThermalUtil +except ImportError as e: + raise ImportError('%s - required module not found' % str(e)) + +# Deafults +VERSION = '1.0' +FUNCTION_NAME = 'accton_as5812_monitor' +DUTY_MAX = 100 + +global log_file +global log_console + +# Make a class we can use to capture stdout and sterr in the log +class accton_as5812_monitor(object): + # static temp var + _ori_temp = 0 + _new_perc = 0 + + llog = logging.getLogger("["+FUNCTION_NAME+"]") + def __init__(self, log_console, log_file): + """Needs a logger and a logger level.""" + + formatter = logging.Formatter('%(name)s %(message)s') + sys_handler = logging.handlers.SysLogHandler(address = '/dev/log') + sys_handler.setFormatter(formatter) + sys_handler.ident = 'common' + sys_handler.setLevel(logging.WARNING) #only fatal for syslog + self.llog.addHandler(sys_handler) + self.llog.setLevel(logging.DEBUG) + + if log_file: + fh = logging.FileHandler(log_file) + fh.setLevel(logging.INFO) + formatter = logging.Formatter('%(asctime)-15s %(name)s %(message)s') + fh.setFormatter(formatter) + self.llog.addHandler(fh) + + # set up logging to console + if log_console: + console = logging.StreamHandler() + console.setLevel(logging.DEBUG) #For debugging + formatter = logging.Formatter('%(asctime)-15s %(name)s %(message)s') + console.setFormatter(formatter) + self.llog.addHandler(console) + + def manage_fans(self): + FAN_LEV1_UP_TEMP = 57700 # temperature + FAN_LEV1_DOWN_TEMP = 0 # unused + FAN_LEV1_SPEED_PERC = DUTY_MAX # percentage*/ + + FAN_LEV2_UP_TEMP = 53000 + FAN_LEV2_DOWN_TEMP = 52700 + FAN_LEV2_SPEED_PERC = 80 + + FAN_LEV3_UP_TEMP = 49500 + FAN_LEV3_DOWN_TEMP = 47700 + FAN_LEV3_SPEED_PERC = 65 + + FAN_LEV4_UP_TEMP = 0 # unused + FAN_LEV4_DOWN_TEMP = 42700 + FAN_LEV4_SPEED_PERC = 40 + + + thermal = ThermalUtil() + fan = FanUtil() + + temp1 = thermal.get_thermal_1_val() + if temp1 is None: + return False + + temp2 = thermal.get_thermal_2_val() + if temp2 is None: + return False + + new_temp = (temp1 + temp2) / 2 + + for x in range(fan.get_idx_fan_start(), fan.get_num_fans()+1): + fan_stat = fan.get_fan_status(x) + if fan_stat is None or fan_stat is False: + self._new_perc = FAN_LEV1_SPEED_PERC + self.llog.error('SET new_perc to %d (FAN fault. fan_num:%d)', self._new_perc, x) + break + else: + self.llog.debug('fan_stat is True (fan_num:%d)', x) + + if fan_stat is not None and fan_stat is not False: + diff = new_temp - self._ori_temp + if diff == 0: + self.llog.debug('RETURN. THERMAL temp not changed. %d / %d (new_temp / ori_temp)', new_temp, self._ori_temp) + return True + else: + if diff >= 0: + is_up = True + self.llog.debug('THERMAL temp UP %d / %d (new_temp / ori_temp)', new_temp, self._ori_temp) + else: + is_up = False + self.llog.debug('THERMAL temp DOWN %d / %d (new_temp / ori_temp)', new_temp, self._ori_temp) + + if is_up is True: + if new_temp >= FAN_LEV1_UP_TEMP: + self._new_perc = FAN_LEV1_SPEED_PERC + elif new_temp >= FAN_LEV2_UP_TEMP: + self._new_perc = FAN_LEV2_SPEED_PERC + elif new_temp >= FAN_LEV3_UP_TEMP: + self._new_perc = FAN_LEV3_SPEED_PERC + else: + self._new_perc = FAN_LEV4_SPEED_PERC + self.llog.debug('SET. FAN_SPEED as %d (new THERMAL temp:%d)', self._new_perc, new_temp) + else: + if new_temp <= FAN_LEV4_DOWN_TEMP: + self._new_perc = FAN_LEV4_SPEED_PERC + elif new_temp <= FAN_LEV3_DOWN_TEMP: + self._new_perc = FAN_LEV3_SPEED_PERC + elif new_temp <= FAN_LEV2_DOWN_TEMP: + self._new_perc = FAN_LEV2_SPEED_PERC + else: + self._new_perc = FAN_LEV1_SPEED_PERC + self.llog.debug('SET. FAN_SPEED as %d (new THERMAL temp:%d)', self._new_perc, new_temp) + + cur_perc = fan.get_fan_duty_cycle(fan.get_idx_fan_start()) + if cur_perc == self._new_perc: + self.llog.debug('RETURN. FAN speed not changed. %d / %d (new_perc / ori_perc)', self._new_perc, cur_perc) + return True + + set_stat = fan.set_fan_duty_cycle(fan.get_idx_fan_start(), self._new_perc) + if set_stat is True: + self.llog.debug('PASS. set_fan_duty_cycle (%d)', self._new_perc) + else: + self.llog.error('FAIL. set_fan_duty_cycle (%d)', self._new_perc) + + self.llog.debug('GET. ori_perc is %d. ori_temp is %d', cur_perc, self._ori_temp) + self._ori_temp = new_temp + self.llog.info('UPDATE. ori_perc to %d. ori_temp to %d', cur_perc, self._ori_temp) + + return True + +def sig_handler(signum, frame): + fan = FanUtil() + logging.critical('Cause signal %d, set fan speed max.', signum) + fan.set_fan_duty_cycle(fan.get_idx_fan_start(), DUTY_MAX) + sys.exit(0) + +def main(argv): + log_file = '%s.log' % FUNCTION_NAME + log_console = 0 + log_file = "" + if len(sys.argv) != 1: + try: + opts, args = getopt.getopt(argv,'hdl') + except getopt.GetoptError: + print 'Usage: %s [-d] [-l]' % sys.argv[0] + return 0 + for opt, arg in opts: + if opt == '-h': + print 'Usage: %s [-d] [-l]' % sys.argv[0] + return 0 + elif opt in ('-d'): + log_console = 1 + elif opt in ('-l'): + log_file = '%s.log' % sys.argv[0] + + signal.signal(signal.SIGINT, sig_handler) + signal.signal(signal.SIGTERM, sig_handler) + monitor = accton_as5812_monitor(log_console, log_file) + + #time.sleep(100) + # Loop forever, doing something useful hopefully: + while True: + monitor.manage_fans() + time.sleep(10) + + +if __name__ == '__main__': + main(sys.argv[1:]) diff --git a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/utils/accton_as5812_54t_util.py b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/utils/accton_as5812_util.py similarity index 97% rename from platform/broadcom/sonic-platform-modules-accton/as5812-54t/utils/accton_as5812_54t_util.py rename to platform/broadcom/sonic-platform-modules-accton/as5812-54t/utils/accton_as5812_util.py index 4e9b079508..7a2bec3a01 100755 --- a/platform/broadcom/sonic-platform-modules-accton/as5812-54t/utils/accton_as5812_54t_util.py +++ b/platform/broadcom/sonic-platform-modules-accton/as5812-54t/utils/accton_as5812_util.py @@ -151,18 +151,12 @@ def driver_check(): if len(lsmod) ==0: return False return True - - - self.insmod("accton_i2c_cpld") - self.insmod("cpr_4011_4mxx") - self.insmod("ym2651y") - for m in [ "sfp", "psu", "fan", "leds" ]: - self.insmod("x86-64-accton-as5812-54t-%s" % m) kos = [ 'modprobe i2c_dev', 'modprobe i2c_mux_pca954x force_deselect_on_exit=1', -'modprobe accton_i2c_cpld' , +'modprobe optoe', +'modprobe x86-64-accton-as5812-54t-cpld' , 'modprobe cpr_4011_4mxx' , 'modprobe ym2651y' , 'modprobe x86-64-accton-as5812-54t-sfp' , @@ -172,6 +166,7 @@ kos = [ def driver_install(): global FORCE + status, output = log_os_system("depmod", 1) for i in range(0,len(kos)): status, output = log_os_system(kos[i], 1) if status: @@ -184,6 +179,10 @@ def driver_uninstall(): for i in range(0,len(kos)): rm = kos[-(i+1)].replace("modprobe", "modprobe -rq") rm = rm.replace("insmod", "rmmod") + lst = rm.split(" ") + if len(lst) > 3: + del(lst[3]) + rm = " ".join(lst) status, output = log_os_system(rm, 1) if status: if FORCE == 0: @@ -212,7 +211,7 @@ sfp_1st_index = 48 mknod =[ 'echo pca9548 0x71 > /sys/bus/i2c/devices/i2c-0/new_device', 'echo pca9548 0x70 > /sys/bus/i2c/devices/i2c-1/new_device' , -'echo accton_i2c_cpld 0x60 > /sys/bus/i2c/devices/i2c-0/new_device', +'echo as5812_54t_cpld 0x60 > /sys/bus/i2c/devices/i2c-0/new_device', 'echo lm75 0x48 > /sys/bus/i2c/devices/i2c-15/new_device', 'echo lm75 0x49 > /sys/bus/i2c/devices/i2c-16/new_device', 'echo lm75 0x4a > /sys/bus/i2c/devices/i2c-17/new_device', @@ -229,7 +228,7 @@ mknod =[ mknod2 =[ 'echo pca9548 0x71 > /sys/bus/i2c/devices/i2c-1/new_device', 'echo pca9548 0x70 > /sys/bus/i2c/devices/i2c-0/new_device' , -'echo accton_i2c_cpld 0x60 > /sys/bus/i2c/devices/i2c-1/new_device', +'echo as5812_54t_cpld 0x60 > /sys/bus/i2c/devices/i2c-1/new_device', 'echo lm75 0x48 > /sys/bus/i2c/devices/i2c-15/new_device', 'echo lm75 0x49 > /sys/bus/i2c/devices/i2c-16/new_device', 'echo lm75 0x4a > /sys/bus/i2c/devices/i2c-17/new_device', @@ -286,8 +285,8 @@ def device_install(): print output if FORCE == 0: return status - for i in range(sfp_1st_index,len(sfp_map)): - status, output =log_os_system("echo sfp"+str(i+1)+" 0x50 > /sys/bus/i2c/devices/i2c-"+str(sfp_map[i])+"/new_device", 1) + for i in range(0,len(sfp_map)): + status, output =log_os_system("echo optoe1 0x50 > /sys/bus/i2c/devices/i2c-"+str(sfp_map[i])+"/new_device", 1) if status: print output if FORCE == 0: diff --git a/platform/broadcom/sonic-platform-modules-accton/debian/control b/platform/broadcom/sonic-platform-modules-accton/debian/control index e8bedd9081..2b3c1af3d8 100755 --- a/platform/broadcom/sonic-platform-modules-accton/debian/control +++ b/platform/broadcom/sonic-platform-modules-accton/debian/control @@ -53,6 +53,10 @@ Package: sonic-platform-accton-as5812-54x Architecture: amd64 Description: kernel modules for platform devices such as fan, led, sfp +Package: sonic-platform-accton-as5812-54t +Architecture: amd64 +Description: kernel modules for platform devices such as fan, led, sfp + Package: sonic-platform-accton-as5835-54x Architecture: amd64 Description: kernel modules for platform devices such as fan, led, sfp diff --git a/platform/broadcom/sonic-platform-modules-accton/debian/rules b/platform/broadcom/sonic-platform-modules-accton/debian/rules index 11e5b10ae4..f1d730b577 100755 --- a/platform/broadcom/sonic-platform-modules-accton/debian/rules +++ b/platform/broadcom/sonic-platform-modules-accton/debian/rules @@ -21,7 +21,7 @@ KERNEL_SRC := /lib/modules/$(KVERSION) MOD_SRC_DIR:= $(shell pwd) MODULE_DIRS := as7712-32x as5712-54x as7816-64x as7716-32x as7716-32xb as7312-54x MODULE_DIRS += as7326-56x as6712-32x as7726-32x as4630-54pe minipack as5812-54x -MODULE_DIRS += as5835-54x as9716-32d as5835-54t as7312-54xs as7315-27xb +MODULE_DIRS += as5835-54x as9716-32d as5835-54t as7312-54xs as7315-27xb as5812-54x MODULE_DIR := modules UTILS_DIR := utils SERVICE_DIR := service

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%0AVztx}H#0;s6Cwykru;>7~hroB-ai!bTe8 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� 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�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