diff --git a/ixr7220h4-32d/scripts/h4_32d_platform_init.sh b/ixr7220h4-32d/scripts/h4_32d_platform_init.sh index 7a31444..72f1088 100644 --- a/ixr7220h4-32d/scripts/h4_32d_platform_init.sh +++ b/ixr7220h4-32d/scripts/h4_32d_platform_init.sh @@ -126,10 +126,10 @@ else fi #Enumerate GPIO port -for port in {38..44} +for port in {698..704} do - echo 100${port} > /sys/class/gpio/export - echo in > /sys/class/gpio/gpio100${port}/direction + echo ${port} > /sys/class/gpio/export + echo in > /sys/class/gpio/gpio${port}/direction sleep 0.1 done diff --git a/ixr7220h4-32d/sonic_platform/component.py b/ixr7220h4-32d/sonic_platform/component.py index f7ea346..3352281 100644 --- a/ixr7220h4-32d/sonic_platform/component.py +++ b/ixr7220h4-32d/sonic_platform/component.py @@ -167,20 +167,20 @@ def install_firmware(self, image_path): if not os.path.isfile('/tmp/vme_h4_32d'): print("ERROR: the cpld upgrade tool /tmp/vme_h4_32d doesn't exist ") return False - write_sysfs_file("/sys/class/gpio/export", str(10054)) - write_sysfs_file("/sys/class/gpio/gpio10054/value", str(1)) + write_sysfs_file("/sys/class/gpio/export", str(666)) + write_sysfs_file("/sys/class/gpio/gpio666/value", str(1)) self.CPLD_UPDATE_COMMAND[1] = 'jtag0' self.CPLD_UPDATE_COMMAND[2] = image_name try: subprocess.run(self.CPLD_UPDATE_COMMAND, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade CPLD: rc={e.returncode}") - write_sysfs_file("/sys/class/gpio/gpio10054/value", str(0)) - write_sysfs_file("/sys/class/gpio/unexport", str(10054)) - print("\nCPUPLD firmware upgraded!\n") + write_sysfs_file("/sys/class/gpio/gpio666/value", str(0)) + write_sysfs_file("/sys/class/gpio/unexport", str(666)) + print("\nCPUPLD firmware update has ended\n") print("!!!System will reboot in 10 sec!!!") - time.sleep(10) - write_sysfs_file("/sys/kernel/delta_fpga/sys-pwr", str(1)) + time.sleep(7) + self._power_cycle() return True elif self.name == "SWPLD2" or self.name == "SWPLD3": @@ -188,22 +188,25 @@ def install_firmware(self, image_path): if not os.path.isfile('/tmp/vme_h4_32d'): print("ERROR: the cpld upgrade tool /tmp/vme_h4_32d doesn't exist ") return False - write_sysfs_file("/sys/class/gpio/export", str(10055)) - write_sysfs_file("/sys/class/gpio/gpio10055/value", str(1)) + write_sysfs_file("/sys/class/gpio/export", str(667)) + write_sysfs_file("/sys/class/gpio/gpio667/value", str(1)) self.CPLD_UPDATE_COMMAND[1] = 'jtag1' self.CPLD_UPDATE_COMMAND[2] = image_name try: subprocess.run(self.CPLD_UPDATE_COMMAND, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade CPLD: rc={e.returncode}") - self.CPLD_UPDATE_COMMAND[2] = 'h4_32d_swpld_refresh.vme' + if self.name == "SWPLD2": + self.CPLD_UPDATE_COMMAND[2] = 'h4_32d_swpld2_refresh.vme' + else: + self.CPLD_UPDATE_COMMAND[2] = 'h4_32d_swpld3_refresh.vme' try: subprocess.run(self.CPLD_UPDATE_COMMAND, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade CPLD: rc={e.returncode}") - write_sysfs_file("/sys/class/gpio/gpio10055/value", str(0)) - write_sysfs_file("/sys/class/gpio/unexport", str(10055)) - print("\nSWPLD2/3 firmware upgraded!\n") + write_sysfs_file("/sys/class/gpio/gpio667/value", str(0)) + write_sysfs_file("/sys/class/gpio/unexport", str(667)) + print("\nSWPLD2/3 firmware update has ended\n") return True elif self.name == "SysFPGA": @@ -223,10 +226,10 @@ def install_firmware(self, image_path): subprocess.run(self.FPGA_UPDATE_COMMAND, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade SysFPGA: rc={e.returncode}") - print("\nSysFPGA firmware upgraded!\n") + print("\nSysFPGA firmware update has ended\n") print("!!!System will reboot in 10 sec!!!") - time.sleep(10) - write_sysfs_file("/sys/kernel/delta_fpga/sys-pwr", str(1)) + time.sleep(7) + self._power_cycle() return True elif self.name == "BIOS": @@ -239,7 +242,7 @@ def install_firmware(self, image_path): subprocess.run(self.BIOS_UPDATE_COMMAND, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade BIOS: rc={e.returncode}") - print("\nBIOS upgraded!\n") + print("\nBIOS update has ended\n") return True return False @@ -275,4 +278,9 @@ def get_available_firmware_version(self, _image_path): A string containing the available firmware version of the component """ return "N/A" - \ No newline at end of file + + def _power_cycle(self): + os.system('sync') + os.system('sync') + time.sleep(3) + write_sysfs_file("/sys/kernel/delta_fpga/sys-pwr", str(1)) diff --git a/ixr7220h4-32d/sonic_platform/fan.py b/ixr7220h4-32d/sonic_platform/fan.py index bb4b5bf..d06b8e0 100644 --- a/ixr7220h4-32d/sonic_platform/fan.py +++ b/ixr7220h4-32d/sonic_platform/fan.py @@ -39,7 +39,7 @@ (1, 2), (3, 4)] GPIO_DIR = "/sys/class/gpio/gpio{}/" -GPIO_PORT = [10038, 10039, 10040, 10041, 10042, 10043, 10044] +GPIO_PORT = [698, 699, 700, 701, 702, 703, 704] FPGA_FAN_LED = "/sys/kernel/delta_fpga/fan-tray-led" INDEX_FAN_LED = [0, 4, 8, 12, 16, 20 , 24] sonic_logger = logger.Logger('fan') diff --git a/ixr7220h4-32d/sonic_platform/fan_drawer.py b/ixr7220h4-32d/sonic_platform/fan_drawer.py index b1c2c6d..524b3e2 100644 --- a/ixr7220h4-32d/sonic_platform/fan_drawer.py +++ b/ixr7220h4-32d/sonic_platform/fan_drawer.py @@ -17,7 +17,7 @@ FAN_PN_F2B = "3HE19865AARA01" FAN_PN_B2F = "3HE19866AARA01" GPIO_DIR = "/sys/class/gpio/gpio{}/" -GPIO_PORT = [10038, 10039, 10040, 10041, 10042, 10043, 10044] +GPIO_PORT = [698, 699, 700, 701, 702, 703, 704] INDEX_FAN_LED = [0, 4, 8, 12, 16, 20 , 24] FPGA_FAN_LED = "/sys/kernel/delta_fpga/fan-tray-led" sonic_logger = logger.Logger('fan_drawer') @@ -184,4 +184,4 @@ def get_name(self): """ return module name """ - return self._name \ No newline at end of file + return self._name diff --git a/ixr7220h5-32d/scripts/h5_32d_platform_init.sh b/ixr7220h5-32d/scripts/h5_32d_platform_init.sh index adccd34..e8fa75b 100644 --- a/ixr7220h5-32d/scripts/h5_32d_platform_init.sh +++ b/ixr7220h5-32d/scripts/h5_32d_platform_init.sh @@ -141,10 +141,10 @@ else fi #Enumerate GPIO port -for port in {36..42} +for port in {0..6} do - echo 99${port} > /sys/class/gpio/export - echo in > /sys/class/gpio/gpio99${port}/direction + echo 80${port} > /sys/class/gpio/export + echo in > /sys/class/gpio/gpio80${port}/direction sleep 0.1 done diff --git a/ixr7220h5-32d/sonic_platform/component.py b/ixr7220h5-32d/sonic_platform/component.py index bb3ca29..b7d29bb 100644 --- a/ixr7220h5-32d/sonic_platform/component.py +++ b/ixr7220h5-32d/sonic_platform/component.py @@ -182,12 +182,12 @@ def install_firmware(self, image_path): if not os.path.isfile('/tmp/vme_h5'): print("ERROR: the cpld upgrade tool /tmp/vme_h5 doesn't exist ") return False - write_sysfs_file("/sys/class/gpio/export", str(10099)) - write_sysfs_file("/sys/class/gpio/export", str(10076)) - write_sysfs_file("/sys/class/gpio/gpio10099/direction", "out") - write_sysfs_file("/sys/class/gpio/gpio10076/direction", "out") - write_sysfs_file("/sys/class/gpio/gpio10099/value", str(1)) - write_sysfs_file("/sys/class/gpio/gpio10076/value", str(1)) + write_sysfs_file("/sys/class/gpio/export", str(627)) + write_sysfs_file("/sys/class/gpio/export", str(604)) + write_sysfs_file("/sys/class/gpio/gpio627/direction", "out") + write_sysfs_file("/sys/class/gpio/gpio604/direction", "out") + write_sysfs_file("/sys/class/gpio/gpio627/value", str(1)) + write_sysfs_file("/sys/class/gpio/gpio604/value", str(1)) self.CPLD_UPDATE_COMMAND[1] = 'jtag0' self.CPLD_UPDATE_COMMAND[2] = image_name try: @@ -201,10 +201,10 @@ def install_firmware(self, image_path): except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade CPLD: rc={e.returncode}") self.gpio_set("/dev/gpiochip0", 105, 0) - write_sysfs_file("/sys/class/gpio/gpio10076/value", str(0)) - write_sysfs_file("/sys/class/gpio/gpio10099/value", str(0)) - write_sysfs_file("/sys/class/gpio/unexport", str(10076)) - write_sysfs_file("/sys/class/gpio/unexport", str(10099)) + write_sysfs_file("/sys/class/gpio/gpio604/value", str(0)) + write_sysfs_file("/sys/class/gpio/gpio627/value", str(0)) + write_sysfs_file("/sys/class/gpio/unexport", str(604)) + write_sysfs_file("/sys/class/gpio/unexport", str(627)) print("\nCPUPLD firmware upgraded!\n") return True @@ -213,8 +213,8 @@ def install_firmware(self, image_path): if not os.path.isfile('/tmp/vme_h5'): print("ERROR: the cpld upgrade tool /tmp/vme_h5 doesn't exist ") return False - write_sysfs_file("/sys/class/gpio/export", str(9953)) - write_sysfs_file("/sys/class/gpio/gpio9953/value", str(1)) + write_sysfs_file("/sys/class/gpio/export", str(769)) + write_sysfs_file("/sys/class/gpio/gpio769/value", str(1)) self.CPLD_UPDATE_COMMAND[1] = 'jtag1' self.CPLD_UPDATE_COMMAND[2] = image_name try: @@ -226,8 +226,8 @@ def install_firmware(self, image_path): subprocess.run(self.CPLD_UPDATE_COMMAND, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade CPLD: rc={e.returncode}") - write_sysfs_file("/sys/class/gpio/gpio9953/value", str(0)) - write_sysfs_file("/sys/class/gpio/unexport", str(9953)) + write_sysfs_file("/sys/class/gpio/gpio769/value", str(0)) + write_sysfs_file("/sys/class/gpio/unexport", str(769)) print("\nSWPLD2 firmware upgraded!\n") return True @@ -236,8 +236,8 @@ def install_firmware(self, image_path): if not os.path.isfile('/tmp/vme_h5'): print("ERROR: the cpld upgrade tool /tmp/vme_h5 doesn't exist ") return False - write_sysfs_file("/sys/class/gpio/export", str(9953)) - write_sysfs_file("/sys/class/gpio/gpio9953/value", str(1)) + write_sysfs_file("/sys/class/gpio/export", str(769)) + write_sysfs_file("/sys/class/gpio/gpio769/value", str(1)) self.CPLD_UPDATE_COMMAND[1] = 'jtag1' self.CPLD_UPDATE_COMMAND[2] = image_name try: @@ -249,8 +249,8 @@ def install_firmware(self, image_path): subprocess.run(self.CPLD_UPDATE_COMMAND, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade CPLD: rc={e.returncode}") - write_sysfs_file("/sys/class/gpio/gpio9953/value", str(0)) - write_sysfs_file("/sys/class/gpio/unexport", str(9953)) + write_sysfs_file("/sys/class/gpio/gpio769/value", str(0)) + write_sysfs_file("/sys/class/gpio/unexport", str(769)) print("\nSWPLD3 firmware upgraded!\n") return True @@ -273,8 +273,8 @@ def install_firmware(self, image_path): print(f"ERROR: Failed to upgrade SysFPGA: rc={e.returncode}") print("\nSysFPGA firmware upgraded!\n") print("!!!The system will reboot in 10 sec!!!") - time.sleep(10) - write_sysfs_file("/sys/kernel/sys_fpga/sys_pwr", str(1)) + time.sleep(7) + self._power_cycle() return True elif self.name == "BIOS": @@ -346,3 +346,9 @@ def gpio_set(self, gpio_device, line, value): print(f"ERROR: {e.errno}, Setting line value: " + e.strerror) os.close(request.fd) + def _power_cycle(self): + os.system('sync') + os.system('sync') + time.sleep(3) + write_sysfs_file("/sys/kernel/sys_fpga/sys_pwr", str(1)) + diff --git a/ixr7220h5-32d/sonic_platform/fan.py b/ixr7220h5-32d/sonic_platform/fan.py index 364d918..5a8313c 100644 --- a/ixr7220h5-32d/sonic_platform/fan.py +++ b/ixr7220h5-32d/sonic_platform/fan.py @@ -38,7 +38,7 @@ (1, 2), (3, 4)] GPIO_DIR = "/sys/class/gpio/gpio{}/" -GPIO_PORT = [9936, 9937, 9938, 9939, 9940, 9941, 9942] +GPIO_PORT = [800, 801, 802, 803, 804, 805, 806] FPGA_DIR = "/sys/kernel/sys_fpga/" I2C_BUS = [30, 31, 32, 33, 34, 35, 36] sonic_logger = logger.Logger('fan') @@ -241,7 +241,8 @@ def set_speed(self, speed): range(10, 20): 40, range(20, 30): 64, range(30, 40): 90, - range(40, 54): 115, + range(40, 47): 115, + range(47, 54): 128, range(54, 66): 153, range(66, 76): 179, range(76, 86): 204, @@ -305,6 +306,7 @@ def get_target_speed(self): 64: 25, 90: 35, 115: 45, + 128: 50, 153: 60, 179: 70, 204: 80, diff --git a/ixr7220h5-32d/sonic_platform/fan_drawer.py b/ixr7220h5-32d/sonic_platform/fan_drawer.py index 826ddb8..6530f02 100644 --- a/ixr7220h5-32d/sonic_platform/fan_drawer.py +++ b/ixr7220h5-32d/sonic_platform/fan_drawer.py @@ -17,7 +17,7 @@ FAN_PN_F2B = "3HE20602AA" FAN_PN_B2F = "3HE20603AA" GPIO_DIR = "/sys/class/gpio/gpio{}/" -GPIO_PORT = [9936, 9937, 9938, 9939, 9940, 9941, 9942] +GPIO_PORT = [800, 801, 802, 803, 804, 805, 806] FPGA_DIR = "/sys/kernel/sys_fpga/" I2C_BUS = [30, 31, 32, 33, 34, 35, 36] sonic_logger = logger.Logger('fan_drawer') @@ -191,4 +191,4 @@ def get_name(self): """ return module name """ - return self._name \ No newline at end of file + return self._name diff --git a/ixr7220h5-64d/scripts/h5_64d_platform_init.sh b/ixr7220h5-64d/scripts/h5_64d_platform_init.sh index 99ee2c1..9679f8f 100755 --- a/ixr7220h5-64d/scripts/h5_64d_platform_init.sh +++ b/ixr7220h5-64d/scripts/h5_64d_platform_init.sh @@ -138,10 +138,10 @@ else fi #Enumerate GPIO port -for port in {36..39} +for port in {0..3} do - echo 99${port} > /sys/class/gpio/export - echo in > /sys/class/gpio/gpio99${port}/direction + echo 80${port} > /sys/class/gpio/export + echo in > /sys/class/gpio/gpio80${port}/direction sleep 0.1 done diff --git a/ixr7220h5-64d/sonic_platform/component.py b/ixr7220h5-64d/sonic_platform/component.py index 16c6647..1b0d1ca 100644 --- a/ixr7220h5-64d/sonic_platform/component.py +++ b/ixr7220h5-64d/sonic_platform/component.py @@ -182,12 +182,12 @@ def install_firmware(self, image_path): if not os.path.isfile('/tmp/vme_h5'): print("ERROR: the cpld upgrade tool /tmp/vme_h5 doesn't exist ") return False - write_sysfs_file("/sys/class/gpio/export", str(10099)) - write_sysfs_file("/sys/class/gpio/export", str(10076)) - write_sysfs_file("/sys/class/gpio/gpio10099/direction", "out") - write_sysfs_file("/sys/class/gpio/gpio10076/direction", "out") - write_sysfs_file("/sys/class/gpio/gpio10099/value", str(1)) - write_sysfs_file("/sys/class/gpio/gpio10076/value", str(1)) + write_sysfs_file("/sys/class/gpio/export", str(627)) + write_sysfs_file("/sys/class/gpio/export", str(604)) + write_sysfs_file("/sys/class/gpio/gpio627/direction", "out") + write_sysfs_file("/sys/class/gpio/gpio604/direction", "out") + write_sysfs_file("/sys/class/gpio/gpio627/value", str(1)) + write_sysfs_file("/sys/class/gpio/gpio604/value", str(1)) self.CPLD_UPDATE_COMMAND[1] = 'jtag0' self.CPLD_UPDATE_COMMAND[2] = image_name try: @@ -201,10 +201,10 @@ def install_firmware(self, image_path): except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade CPLD: rc={e.returncode}") self.gpio_set("/dev/gpiochip0", 105, 0) - write_sysfs_file("/sys/class/gpio/gpio10076/value", str(0)) - write_sysfs_file("/sys/class/gpio/gpio10099/value", str(0)) - write_sysfs_file("/sys/class/gpio/unexport", str(10076)) - write_sysfs_file("/sys/class/gpio/unexport", str(10099)) + write_sysfs_file("/sys/class/gpio/gpio604/value", str(0)) + write_sysfs_file("/sys/class/gpio/gpio627/value", str(0)) + write_sysfs_file("/sys/class/gpio/unexport", str(604)) + write_sysfs_file("/sys/class/gpio/unexport", str(627)) print("\nCPUPLD firmware upgraded!\n") return True @@ -213,8 +213,8 @@ def install_firmware(self, image_path): if not os.path.isfile('/tmp/vme_h5'): print("ERROR: the cpld upgrade tool /tmp/vme_h5 doesn't exist ") return False - write_sysfs_file("/sys/class/gpio/export", str(9953)) - write_sysfs_file("/sys/class/gpio/gpio9953/value", str(1)) + write_sysfs_file("/sys/class/gpio/export", str(769)) + write_sysfs_file("/sys/class/gpio/gpio769/value", str(1)) self.CPLD_UPDATE_COMMAND[1] = 'jtag1' self.CPLD_UPDATE_COMMAND[2] = image_name try: @@ -226,8 +226,8 @@ def install_firmware(self, image_path): subprocess.run(self.CPLD_UPDATE_COMMAND, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade CPLD: rc={e.returncode}") - write_sysfs_file("/sys/class/gpio/gpio9953/value", str(0)) - write_sysfs_file("/sys/class/gpio/unexport", str(9953)) + write_sysfs_file("/sys/class/gpio/gpio769/value", str(0)) + write_sysfs_file("/sys/class/gpio/unexport", str(769)) print("\nSWPLD2 firmware upgraded!\n") return True @@ -236,8 +236,8 @@ def install_firmware(self, image_path): if not os.path.isfile('/tmp/vme_h5'): print("ERROR: the cpld upgrade tool /tmp/vme_h5 doesn't exist ") return False - write_sysfs_file("/sys/class/gpio/export", str(9953)) - write_sysfs_file("/sys/class/gpio/gpio9953/value", str(1)) + write_sysfs_file("/sys/class/gpio/export", str(769)) + write_sysfs_file("/sys/class/gpio/gpio769/value", str(1)) self.CPLD_UPDATE_COMMAND[1] = 'jtag1' self.CPLD_UPDATE_COMMAND[2] = image_name try: @@ -249,8 +249,8 @@ def install_firmware(self, image_path): subprocess.run(self.CPLD_UPDATE_COMMAND, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade CPLD: rc={e.returncode}") - write_sysfs_file("/sys/class/gpio/gpio9953/value", str(0)) - write_sysfs_file("/sys/class/gpio/unexport", str(9953)) + write_sysfs_file("/sys/class/gpio/gpio769/value", str(0)) + write_sysfs_file("/sys/class/gpio/unexport", str(769)) print("\nSWPLD3 firmware upgraded!\n") return True @@ -273,8 +273,8 @@ def install_firmware(self, image_path): print(f"ERROR: Failed to upgrade SysFPGA: rc={e.returncode}") print("\nSysFPGA firmware upgraded!\n") print("!!!The system will reboot in 10 sec!!!") - time.sleep(10) - write_sysfs_file("/sys/kernel/sys_fpga/sys_pwr", str(1)) + time.sleep(7) + self._power_cycle() return True elif self.name == "BIOS": @@ -332,17 +332,22 @@ def gpio_set(self, gpio_device, line, value): chip_fd = os.open(gpio_device, os.O_RDONLY) except OSError as e: print(f"ERROR: {e.errno}, Opening GPIO chip: " + e.strerror) - + try: - fcntl.ioctl(chip_fd, GPIO_GET_LINEHANDLE_IOCTL, request) + fcntl.ioctl(chip_fd, GPIO_GET_LINEHANDLE_IOCTL, request) except (OSError, IOError) as e: print(f"ERROR: {e.errno}, Opening output line handle: " + e.strerror) - os.close(chip_fd) + os.close(chip_fd) data = gpiohandle_data() - data.values[0] = value + data.values[0] = value try: fcntl.ioctl(request.fd, GPIOHANDLE_SET_LINE_VALUES_IOCTL, data) except (OSError, IOError) as e: print(f"ERROR: {e.errno}, Setting line value: " + e.strerror) os.close(request.fd) + def _power_cycle(self): + os.system('sync') + os.system('sync') + time.sleep(3) + write_sysfs_file("/sys/kernel/sys_fpga/sys_pwr", str(1)) diff --git a/ixr7220h5-64d/sonic_platform/fan.py b/ixr7220h5-64d/sonic_platform/fan.py index 9187e63..14ca32d 100644 --- a/ixr7220h5-64d/sonic_platform/fan.py +++ b/ixr7220h5-64d/sonic_platform/fan.py @@ -32,7 +32,7 @@ (3, 4), (1, 2)] GPIO_DIR = "/sys/class/gpio/gpio{}/" -GPIO_PORT = [9939, 9938, 9937, 9936] +GPIO_PORT = [803, 802, 801, 800] FPGA_DIR = "/sys/kernel/sys_fpga/" I2C_BUS = [33, 32, 31, 30] sonic_logger = logger.Logger('fan') @@ -235,7 +235,8 @@ def set_speed(self, speed): range(10, 20): 40, range(20, 30): 64, range(30, 40): 90, - range(40, 54): 115, + range(40, 47): 115, + range(47, 54): 128, range(54, 66): 153, range(66, 76): 179, range(76, 86): 204, @@ -299,6 +300,7 @@ def get_target_speed(self): 64: 25, 90: 35, 115: 45, + 128: 50, 153: 60, 179: 70, 204: 80, diff --git a/ixr7220h5-64d/sonic_platform/fan_drawer.py b/ixr7220h5-64d/sonic_platform/fan_drawer.py index 0bd30e9..82a358e 100644 --- a/ixr7220h5-64d/sonic_platform/fan_drawer.py +++ b/ixr7220h5-64d/sonic_platform/fan_drawer.py @@ -17,7 +17,7 @@ FAN_PN_F2B = "3HE20602AA" FAN_PN_B2F = "3HE20603AA" GPIO_DIR = "/sys/class/gpio/gpio{}/" -GPIO_PORT = [9939, 9938, 9937, 9936] +GPIO_PORT = [803, 802, 801, 800] FPGA_DIR = "/sys/kernel/sys_fpga/" I2C_BUS = [33, 32, 31, 30] diff --git a/ixr7220h5-64o/scripts/h5_64o_platform_init.sh b/ixr7220h5-64o/scripts/h5_64o_platform_init.sh index b6ecc0f..b2ba7ea 100644 --- a/ixr7220h5-64o/scripts/h5_64o_platform_init.sh +++ b/ixr7220h5-64o/scripts/h5_64o_platform_init.sh @@ -137,10 +137,10 @@ else fi #Enumerate GPIO port -for port in {36..39} +for port in {0..3} do - echo 99${port} > /sys/class/gpio/export - echo in > /sys/class/gpio/gpio99${port}/direction + echo 80${port} > /sys/class/gpio/export + echo in > /sys/class/gpio/gpio80${port}/direction sleep 0.1 done diff --git a/ixr7220h5-64o/sonic_platform/component.py b/ixr7220h5-64o/sonic_platform/component.py index c121319..64d7240 100644 --- a/ixr7220h5-64o/sonic_platform/component.py +++ b/ixr7220h5-64o/sonic_platform/component.py @@ -182,12 +182,12 @@ def install_firmware(self, image_path): if not os.path.isfile('/tmp/vme_h5'): print("ERROR: the cpld upgrade tool /tmp/vme_h5 doesn't exist ") return False - write_sysfs_file("/sys/class/gpio/export", str(10099)) - write_sysfs_file("/sys/class/gpio/export", str(10076)) - write_sysfs_file("/sys/class/gpio/gpio10099/direction", "out") - write_sysfs_file("/sys/class/gpio/gpio10076/direction", "out") - write_sysfs_file("/sys/class/gpio/gpio10099/value", str(1)) - write_sysfs_file("/sys/class/gpio/gpio10076/value", str(1)) + write_sysfs_file("/sys/class/gpio/export", str(627)) + write_sysfs_file("/sys/class/gpio/export", str(604)) + write_sysfs_file("/sys/class/gpio/gpio627/direction", "out") + write_sysfs_file("/sys/class/gpio/gpio604/direction", "out") + write_sysfs_file("/sys/class/gpio/gpio627/value", str(1)) + write_sysfs_file("/sys/class/gpio/gpio604/value", str(1)) self.CPLD_UPDATE_COMMAND[1] = 'jtag0' self.CPLD_UPDATE_COMMAND[2] = image_name try: @@ -201,10 +201,10 @@ def install_firmware(self, image_path): except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade CPLD: rc={e.returncode}") self.gpio_set("/dev/gpiochip0", 105, 0) - write_sysfs_file("/sys/class/gpio/gpio10076/value", str(0)) - write_sysfs_file("/sys/class/gpio/gpio10099/value", str(0)) - write_sysfs_file("/sys/class/gpio/unexport", str(10076)) - write_sysfs_file("/sys/class/gpio/unexport", str(10099)) + write_sysfs_file("/sys/class/gpio/gpio604/value", str(0)) + write_sysfs_file("/sys/class/gpio/gpio627/value", str(0)) + write_sysfs_file("/sys/class/gpio/unexport", str(604)) + write_sysfs_file("/sys/class/gpio/unexport", str(627)) print("\nCPUPLD firmware upgraded!\n") return True @@ -213,8 +213,8 @@ def install_firmware(self, image_path): if not os.path.isfile('/tmp/vme_h5'): print("ERROR: the cpld upgrade tool /tmp/vme_h5 doesn't exist ") return False - write_sysfs_file("/sys/class/gpio/export", str(9953)) - write_sysfs_file("/sys/class/gpio/gpio9953/value", str(1)) + write_sysfs_file("/sys/class/gpio/export", str(769)) + write_sysfs_file("/sys/class/gpio/gpio769/value", str(1)) self.CPLD_UPDATE_COMMAND[1] = 'jtag1' self.CPLD_UPDATE_COMMAND[2] = image_name try: @@ -226,8 +226,8 @@ def install_firmware(self, image_path): subprocess.run(self.CPLD_UPDATE_COMMAND, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade CPLD: rc={e.returncode}") - write_sysfs_file("/sys/class/gpio/gpio9953/value", str(0)) - write_sysfs_file("/sys/class/gpio/unexport", str(9953)) + write_sysfs_file("/sys/class/gpio/gpio769/value", str(0)) + write_sysfs_file("/sys/class/gpio/unexport", str(769)) print("\nSWPLD2 firmware upgraded!\n") return True @@ -236,8 +236,8 @@ def install_firmware(self, image_path): if not os.path.isfile('/tmp/vme_h5'): print("ERROR: the cpld upgrade tool /tmp/vme_h5 doesn't exist ") return False - write_sysfs_file("/sys/class/gpio/export", str(9953)) - write_sysfs_file("/sys/class/gpio/gpio9953/value", str(1)) + write_sysfs_file("/sys/class/gpio/export", str(769)) + write_sysfs_file("/sys/class/gpio/gpio769/value", str(1)) self.CPLD_UPDATE_COMMAND[1] = 'jtag1' self.CPLD_UPDATE_COMMAND[2] = image_name try: @@ -249,8 +249,8 @@ def install_firmware(self, image_path): subprocess.run(self.CPLD_UPDATE_COMMAND, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print(f"ERROR: Failed to upgrade CPLD: rc={e.returncode}") - write_sysfs_file("/sys/class/gpio/gpio9953/value", str(0)) - write_sysfs_file("/sys/class/gpio/unexport", str(9953)) + write_sysfs_file("/sys/class/gpio/gpio769/value", str(0)) + write_sysfs_file("/sys/class/gpio/unexport", str(769)) print("\nSWPLD3 firmware upgraded!\n") return True @@ -273,8 +273,8 @@ def install_firmware(self, image_path): print(f"ERROR: Failed to upgrade SysFPGA: rc={e.returncode}") print("\nSysFPGA firmware upgraded!\n") print("!!!The system will reboot in 10 sec!!!") - time.sleep(10) - write_sysfs_file("/sys/kernel/sys_fpga/sys_pwr", str(1)) + time.sleep(7) + self._power_cycle() return True elif self.name == "BIOS": @@ -346,3 +346,8 @@ def gpio_set(self, gpio_device, line, value): print(f"ERROR: {e.errno}, Setting line value: " + e.strerror) os.close(request.fd) + def _power_cycle(self): + os.system('sync') + os.system('sync') + time.sleep(3) + write_sysfs_file("/sys/kernel/sys_fpga/sys_pwr", str(1)) diff --git a/ixr7220h5-64o/sonic_platform/fan.py b/ixr7220h5-64o/sonic_platform/fan.py index b5bedac..1f34744 100644 --- a/ixr7220h5-64o/sonic_platform/fan.py +++ b/ixr7220h5-64o/sonic_platform/fan.py @@ -32,7 +32,7 @@ (3, 4), (1, 2)] GPIO_DIR = "/sys/class/gpio/gpio{}/" -GPIO_PORT = [9939, 9938, 9937, 9936] +GPIO_PORT = [803, 802, 801, 800] FPGA_DIR = "/sys/kernel/sys_fpga/" I2C_BUS = [25, 24, 23, 22] sonic_logger = logger.Logger('fan') diff --git a/ixr7220h5-64o/sonic_platform/fan_drawer.py b/ixr7220h5-64o/sonic_platform/fan_drawer.py index 63a82b2..8e38adf 100644 --- a/ixr7220h5-64o/sonic_platform/fan_drawer.py +++ b/ixr7220h5-64o/sonic_platform/fan_drawer.py @@ -17,7 +17,7 @@ FAN_PN_F2B = "3HE20602AA" FAN_PN_B2F = "3HE20603AA" GPIO_DIR = "/sys/class/gpio/gpio{}/" -GPIO_PORT = [9939, 9938, 9937, 9936] +GPIO_PORT = [803, 802, 801, 800] FPGA_DIR = "/sys/kernel/sys_fpga/" I2C_BUS = [25, 24, 23, 22] @@ -192,4 +192,4 @@ def get_name(self): """ return module name """ - return self._name \ No newline at end of file + return self._name